ranger-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From omal...@apache.org
Subject [12/44] ARGUS-1. Initial code commit (Selvamohan Neethiraj via omalley)
Date Thu, 14 Aug 2014 20:50:23 GMT
http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/modules/XALinks.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/XALinks.js b/security-admin/src/main/webapp/scripts/modules/XALinks.js
new file mode 100644
index 0000000..713307e
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/modules/XALinks.js
@@ -0,0 +1,238 @@
+/**
+ * 
+ * Common module for Links used.
+ * All hrefs should be used from this file.
+ *    
+*/
+define(function(require) {
+	'use strict';
+	var XALinks     = {};
+	var defaults = {
+		href : 'javascript:void(0)',
+		text : '',
+		title : 'Title'
+	};
+	var links = {
+			/* Main Menu links START */
+			
+			Dashboard : { 
+				href : '#', 
+				text : 'h.dashboard',
+				title: 'h.dashboard'
+			},
+			PolicyManager :{
+				href : '#!/policymanager', 
+				text : 'h.policyManager',
+				title: 'h.policyManager'
+			},
+			RepositoryManager :{
+				href : '#!/policymanager', 
+				text : 'h.repositoryManager',
+				title: 'h.repositoryManager'
+			},
+			Users : { 
+				href : '#!/users/usertab',
+				text : 'h.usersOrGroups',
+				title: 'h.usersOrGroups'
+			},
+			Groups : { 
+				href : '#!/users/grouptab',
+				text : 'h.usersOrGroups',
+				title: 'h.usersOrGroups'
+			},
+			Configs: { 
+				href : '#!/configs',
+				text : 'h.configs',
+				title: 'h.configs'
+			},
+			ManageTables: { 
+				href : '#!/managetables',
+				text : 'h.managetables',
+				title: 'h.managetables'
+			},
+			addPolicyForTable: { 
+				href : '#!/addpolicyfortable',
+				text : 'h.addpolicyfortable',
+				title: 'h.addpolicyfortable'
+			},
+			ManageFolders: { 
+				href : '#!/managefolders',
+				title: 'h.managefolders',
+				text: 'h.managefolders'
+			},
+			addPolicyForFolder: { 
+				href : '#!/addpolicyforfolder',
+				title: 'h.addpolicyforfolder',
+				text: 'h.addpolicyforfolder'
+			},
+			HDFSFolders: { 
+				href : '#!/hdfs',
+				text : 'h.managePolices',
+				title: 'h.managePolices'
+			},
+			PolicyCreate: { 
+				href : '#!/policy/create',
+				text: 'h.createPolicy',
+				title: 'h.createPolicy'
+			},
+			PolicyEdit: { 
+				href : '#!/policy/create',
+				text: 'h.editPolicy',
+				title: 'h.editPolicy'
+			},
+			HivePolicyListing : {
+				href : '#!/hive',
+				title: 'h.managetables',
+				text: 'h.manageTables'
+			},
+			/*
+			 * Asset related
+			 */
+			/*AssetCreate: { 
+				href : '#!/asset/create',
+				text: 'lbl.createAsset',
+				title: 'lbl.createAsset'
+			},*/
+			/*
+			 * Reports Related
+			 */
+			UserAccessReport: { 
+				href : '#!/reports/userAccess',
+				text: 'lbl.userAccessReport',
+				title: 'lbl.userAccessReport'
+			},
+			AuditReport: { 
+				href : '#!/reports/audit',
+				text: 'lbl.auditReport',
+				title: 'lbl.auditReport'
+			},
+			UserProfile :{
+				href : '#!/userprofile', 
+				text : 'h.userProfile',
+				title: 'h.userProfile'
+			},
+			
+			/*
+			 * User OR Groups Related
+			 */
+			UserCreate : {
+					href : '#!/user/create',
+					text : 'lbl.userCreate',
+					title: 'lbl.userCreate'
+			},
+			UserEdit : {
+				href : 'javascript:void(0);',
+				text : 'lbl.userEdit',
+				title: 'lbl.userEdit'
+			},
+			GroupCreate : {
+				href : '#!/group/create',
+				text : 'lbl.groupCreate',
+				title: 'lbl.groupCreate'
+			},
+			GroupEdit : {
+				href : 'javascript:void(0);',
+				text : 'lbl.groupEdit'
+			},
+			SessionDetail : {
+				href : '#!/reports/audit/loginSession',
+				text : 'lbl.sessionDetail'
+			},
+			AssetCreate : function(options){
+				var href = '#!/asset/create';
+				if(_.has(options,'model')){
+					href =  '#!/asset/create/'+options.model.get('assetType');
+				}
+				return {
+					href : href,
+					text : 'lbl.createAsset',
+					title: 'lbl.createAsset'
+				};
+			},
+			AssetEdit : function(options){
+				var href = "javascript:void(0);";
+				if(_.has(options,'model')){
+					href =  '#!/asset/'+options.model.get('id');
+				}
+				if(_.has(options,'id')){
+					href =  '#!/asset/'+options.id;
+				}
+				return {
+					href : href,
+					text : 'lbl.editAsset',
+					title: 'lbl.editAsset'
+				};
+			},
+			ManagePolicies : function(options){
+				var href = "javascript:void(0);";
+				if(_.has(options,'model')){
+					href =  '#!/hdfs/'+options.model.id+"/policies";
+				}
+				return {
+					href : href,
+					text : options.model.get('name') +' Policies',
+					title: options.model.get('name') +' Policies'
+				};
+			},
+			ManageHivePolicies : function(options){
+				var href = "javascript:void(0);";
+				if(_.has(options,'model')){
+					href =  '#!/hive/'+options.model.id+"/policies";
+				}
+				return {
+					href : href,
+					text : options.model.get('name') +' Policies',
+					title: options.model.get('name') +' Policies'
+				};
+			},
+			ManageHbasePolicies : function(options){
+				var href = "javascript:void(0);";
+				if(_.has(options,'model')){
+					href =  '#!/hbase/'+options.model.id+"/policies";
+				}
+				return {
+					href : href,
+					text : options.model.get('name') +' Policies',
+					title: options.model.get('name') +' Policies'
+				};
+			},
+			ManageKnoxPolicies : function(options){
+				var href = "javascript:void(0);";
+				if(_.has(options,'model')){
+					href =  '#!/knox/'+options.model.id+"/policies";
+				}
+				return {
+					href : href,
+					text : options.model.get('name') +' Policies',
+					title: options.model.get('name') +' Policies'
+				};
+			}
+	};      
+       
+	
+	XALinks.get = function(type, options){
+		if(! _.has(links, type)){
+			throw new Error("Link " + type + " not found in XALinks Module!");
+		}
+		var opts = {};
+		// in some case we will get model directly as options
+		if( options && !_.has(options,'model') &&  options instanceof Backbone.Model){
+			opts['model'] = options;
+		} else {
+			opts = options;
+		}
+
+		if(typeof links[type] === 'function'){
+			return links[type](opts||{});
+		}
+
+		return links[type];
+	};
+	
+	
+	
+	
+	return XALinks;
+
+});
+

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/XAOverrides.js b/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
new file mode 100644
index 0000000..0315cac
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/modules/XAOverrides.js
@@ -0,0 +1,429 @@
+define(function(require){
+
+	var App 			= require('App');
+	var vBreadCrumbs 	= require('views/common/BreadCrumbs');
+	var XAEnums			= require('utils/XAEnums');
+	
+	require('backgrid');
+	require('jquery-toggles');
+	/**
+	HtmlCell renders any html code
+
+	@class Backgrid.HtmlCell
+	@extends Backgrid.Cell
+	*/
+	var HtmlCell = Backgrid.HtmlCell = Backgrid.Cell.extend({
+	
+		 /** @property */
+		 className: "html-cell",
+	
+		 render: function () {
+		     this.$el.empty();
+		     var rawValue = this.model.get(this.column.get("name"));
+		     var formattedValue = this.formatter.fromRaw(rawValue, this.model);
+		     this.$el.append(formattedValue);
+		     this.delegateEvents();
+		     return this;
+		 }
+	});
+	
+	/**
+	SwitchCell renders Switch Button
+
+	@class Backgrid.SwitchCell
+	@extends Backgrid.Cell
+	*/
+	
+	var SwitchCell = Backgrid.SwitchCell = Backgrid.Cell.extend({
+		
+		 /** @property */
+		 className: "switch-cell",
+	
+		 initialize: function (options) {
+			    UriCell.__super__.initialize.apply(this, arguments);
+			    this.switchStatus = options.switchStatus || false;
+			    this.click = this.column.get('click') || false;
+			    this.drag = this.column.get('drag') || false;
+			    this.onText = this.column.get('onText') || 'ON';
+			    this.offText = this.column.get('offText') || 'OFF';
+			    if (this.column.get("cellClass")) this.$el.addClass(this.column.get("cellClass"));
+		  },
+			  
+		 render: function () {
+		     this.$el.empty();
+		     if(this.model.get(this.column.get("name")) != undefined){
+		    	 rawValue = (this.model.get(this.column.get("name")));
+		    	 this.switchStatus = this.formatter.fromRaw(rawValue, this.model);
+		     }
+		     
+		     this.$el.append('<div class="toggle-xa"><div  class="toggle"></div></div>');
+		     this.$el.find('.toggle').toggles({on : this.switchStatus,click :this.click,drag:this.drag,
+   	    	 								text : {on :this.onText ,off : this.offText}
+		     });
+		     this.delegateEvents();
+		     return this;
+		 }
+	});
+
+	var UriCell = Backgrid.UriCell = Backgrid.Cell.extend({
+
+		  className: "uri-cell",
+		  title: null,
+		  target: "_blank",
+
+		  initialize: function (options) {
+		    UriCell.__super__.initialize.apply(this, arguments);
+		    this.title = options.title || this.title;
+		    this.target = options.target || this.target;
+		  },
+
+		  render: function () {
+		    this.$el.empty();
+		    var rawValue = this.model.get(this.column.get("name"));
+		    var href = _.isFunction(this.column.get("href")) ? this.column.get('href')(this.model) : this.column.get('href');
+		    var klass = this.column.get("klass");
+		    var formattedValue = this.formatter.fromRaw(rawValue, this.model);
+		    this.$el.append($("<a>", {
+		      tabIndex: -1,
+		      href: href,
+		      title: this.title || formattedValue,
+		      'class' : klass 
+		    }).text(formattedValue));
+		    
+		    if(this.column.has("iconKlass")){
+		    	var iconKlass = this.column.get("iconKlass");
+		    	var iconTitle = this.column.get("iconTitle");
+		    	this.$el.find('a').append('<i class="'+iconKlass+'" title="'+iconTitle+'"></i>');
+		    }
+		    this.delegateEvents();
+		    return this;
+		  }
+
+	});
+	
+	 /**
+    Renders a checkbox for Provision Table Cell.
+    @class Backgrid.SelectCell
+    @extends Backgrid.Cell
+ */
+	 Backgrid.SelectCell = Backgrid.Cell.extend({
+	
+	   /** @property */
+	   className: "select-cell",
+	
+	   /** @property */
+	   tagName: "td",
+	
+	   /** @property */
+	   events: {
+	     //"keydown input[type=checkbox]": "onKeydown",
+	     "change input[type=checkbox]": "onChange",
+	     "click input[type=checkbox]": "enterEditMode"
+	   },
+	
+	   /**
+	      Initializer. If the underlying model triggers a `select` event, this cell
+	      will change its checked value according to the event's `selected` value.
+	
+	      @param {Object} options
+	      @param {Backgrid.Column} options.column
+	      @param {Backbone.Model} options.model
+	   */
+	   initialize: function (options) {
+	
+	     this.column = options.column;
+	     if (!(this.column instanceof Backgrid.Column)) {
+	       this.column = new Backgrid.Column(this.column);
+	     }
+	
+	     if(!this.column.has("enabledVal")){
+	     	this.column.set("enabledVal", "true"); // it is not a boolean value for EPM
+	     	this.column.set("disabledVal", "false");
+	     }
+	
+	     var column = this.column, model = this.model, $el = this.$el;
+	     this.listenTo(column, "change:renderable", function (column, renderable) {
+	       $el.toggleClass("renderable", renderable);
+	     });
+	
+	     if (Backgrid.callByNeed(column.renderable(), column, model)) $el.addClass("renderable");
+	
+	     this.listenTo(model, "change:" + column.get("name"), function () {
+	   	if (!$el.hasClass("editor")) this.render();
+	     });
+	
+	     this.listenTo(model, "backgrid:select", function (model, selected) {
+	       this.$el.find("input[type=checkbox]").prop("checked", selected).change();
+	     });
+	
+	
+	   },
+	
+	   /**
+	      Focuses the checkbox.
+	   */
+	   enterEditMode: function () {
+	     this.$el.find("input[type=checkbox]").focus();
+	   },
+	
+	   /**
+	      Unfocuses the checkbox.
+	   */
+	   exitEditMode: function () {
+	     this.$el.find("input[type=checkbox]").blur();
+	   },
+	
+	   /**
+	      When the checkbox's value changes, this method will trigger a Backbone
+	      `backgrid:selected` event with a reference of the model and the
+	      checkbox's `checked` value.
+	   */
+	   onChange: function () {
+	     var checked = this.$el.find("input[type=checkbox]").prop("checked");
+	     //this.$el.parent().toggleClass("selected", checked);
+	     if(checked)
+	    	 this.model.set(this.column.get("name"), XAEnums.ActivationStatus.ACT_STATUS_ACTIVE.value);
+	     else
+	    	 this.model.set(this.column.get("name"), XAEnums.ActivationStatus.ACT_STATUS_DISABLED.value);
+	     this.model.trigger("backgrid:selected", this.model, checked);
+	   },
+	
+	   /**
+	      Renders a checkbox in a table cell.
+	   */
+	   render: function () {
+	     var model = this.model, column = this.column;
+		  var val = (model.get(column.get("name")) === column.get("enabledVal") || 
+				  		model.get(column.get("name")) === XAEnums.ActivationStatus.ACT_STATUS_ACTIVE.value) ? true : false;
+	     
+	     // this.$el.empty().append('<input tabindex="-1" type="checkbox" />');
+	     this.$el.empty();
+	
+	     // this.$el.find("input[type=checkbox]").prop('checked', val);
+	     this.$el.append($("<input>", {
+	       tabIndex: -1,
+	       type: "checkbox",
+	       checked: val
+	     }));
+	     this.delegateEvents();
+	     return this;
+	   }
+	  });
+
+
+	
+	
+	
+	 /**
+	   * SELECT2
+	   *
+	   * Renders Select2 - jQuery based replacement for select boxes
+	   *
+	   * Requires an 'options.values' value on the schema.
+	   *  Can be an array of options, a function that calls back with the array of options, a string of HTML
+	   *  or a Backbone collection. If a collection, the models must implement a toString() method
+	   */
+	  var Form =  require('backbone-forms');
+	  require('select2');
+	  Form.editors.Select2 = Form.editors.Select.extend({		 
+	    initialize : function(options){
+	      this.pluginAttr = _.extend( {'width' : 'resolve'}, options.schema.pluginAttr || {});
+	      Form.editors.Select.prototype.initialize.call(this,options);
+	    },
+	 
+		render: function() {
+			var self = this;
+			this.setOptions(this.schema.options);
+			setTimeout(function () {
+			    self.$el.select2(self.pluginAttr);
+			},0);			
+
+			return this;
+		}
+	 
+	  });
+	  
+	  /**
+	   * TOGGLE SWITCH
+	   * https://github.com/simontabor/jquery-toggles
+	   *
+	   */
+	  Form.editors.Switch = Form.editors.Base.extend({
+			ui : {
+				
+			},
+			  events: {
+			    'click':  function(event) {
+			  this.trigger('change', this);
+			},
+			'focus':  function(event) {
+			  this.trigger('focus', this);
+			},
+			'blur':   function(event) {
+			  this.trigger('blur', this);
+			    }
+			  },
+			
+			  initialize: function(options) {
+			    Form.editors.Base.prototype.initialize.call(this, options);
+				this.template = _.template('<div class="toggle-xa"><div  class="toggle"></div></div>');			
+			    //this.$el.attr('type', 'checkbox');
+		    	this.switchOn = _.has(this.schema,'switchOn') ?  this.schema.switchOn : false;
+		    	this.onText = _.has(this.schema,'onText') ?  this.schema.onText : 'ON';
+		    	this.offText = _.has(this.schema,'offText') ?  this.schema.offText : 'OFF';
+		    	this.width = _.has(this.schema,'width') ?  this.schema.width : 50;
+		    	this.height = _.has(this.schema,'height') ?  this.schema.height : 20;
+			  },
+			
+			  /**
+			   * Adds the editor to the DOM
+			   */
+			  render: function() {
+			  	this.$el.html( this.template );
+			    this.$el.find('.toggle').toggles({
+			    	on:this.switchOn,
+			    	text : {on : this.onText, off : this.offText },
+			    	width: this.width,
+			    	height: this.height
+			    });
+			
+			    return this;
+			  },
+			
+			  getValue: function() {
+				  return this.$el.find('.toggle-slide').hasClass('active')? XAEnums.BooleanValue.BOOL_TRUE.value :  XAEnums.BooleanValue.BOOL_FALSE.value ;
+				  //return this.$el.find('.active').text() == "ON" ? true : false;
+			  },
+			
+			  setValue: function(switchOn) {
+				  this.$el.find('.toggle').toggles({on:switchOn,text : {on : this.onText, off : this.offText }});
+				  /*if(switchOn){
+					  this.$el.find('.active').removeClass('active');
+					  this.$el.find('.toggle-on').addClass('active');
+				  }else{
+					  this.$el.find('.active').removeClass('active');
+					  this.$el.find('.toggle-off').addClass('active');
+				  }*/
+				  return true;
+			  },
+			
+			  focus: function() {
+			    if (this.hasFocus) return;
+			
+			    this.$el.focus();
+			  },
+			
+			  blur: function() {
+			    if (!this.hasFocus) return;
+			
+			    this.$el.blur();
+			  }
+			
+			});
+	  
+	  
+	  	
+	//Scroll to top functionality on all views -- if the scroll height is > 500 px.
+	 $(window).scroll(function() {
+		if ($(this).scrollTop() > 300) {
+				$('#back-top').show();
+				$('#back-top').tooltip();
+			} else {
+				$('#back-top').hide();
+			}
+		});
+
+		$('#back-top').click(function() {
+			$('body,html').animate({
+				scrollTop : 0
+			}, 800);
+			return false;
+		});
+	  	
+	  	
+	  
+	  
+	  /*
+		 * Backbone.View override for implementing Breadcrumbs
+		 */
+		Backbone.View = (function(View) {
+		  // Define the new constructor
+		  Backbone.View = function(options) {
+		    // Call the original constructor
+		    View.apply(this, arguments);
+		    // Add the render callback
+		    if(this.breadCrumbs){
+		    	var breadCrumbsArr = [];
+		    	if(_.isFunction(this.breadCrumbs))
+		    		breadCrumbsArr = this.breadCrumbs();
+		    	else
+		    		breadCrumbsArr = this.breadCrumbs;
+		    		
+		    	if(App.rBreadcrumbs.currentView)
+		    		App.rBreadcrumbs.close();
+			    App.rBreadcrumbs.show(new vBreadCrumbs({breadcrumb:breadCrumbsArr}));
+		    }
+		  };
+		  // 1lone static properties
+		  _.extend(Backbone.View, View);
+		  // Clone prototype
+		  Backbone.View.prototype = (function(Prototype) {
+		    Prototype.prototype = View.prototype;
+		    return new Prototype;
+		  })(function() {});
+		  // Update constructor in prototype
+		  Backbone.View.prototype.constructor = Backbone.View;
+		  return Backbone.View;
+		})(Backbone.View);
+		
+		
+		/*
+		 * Override val() of jquery to trim values
+		 */
+		(function ($) {
+			var originalVal = $.fn.val;
+			 $.fn.val = function(value) { 
+			 	if (_.isUndefined(value)) 
+					return originalVal.call(this); 
+			 	else { 
+			 		return originalVal.call(this,(_.isString(value))? $.trim(value):value); 
+			 	}
+			}; 
+		})(jQuery);
+		
+		/***************   Block UI   ************************/
+		/*! Copyright 2011, Ben Lin (http://dreamerslab.com/)
+		* Licensed under the MIT License (LICENSE.txt).
+		*
+		* Version: 1.1.1
+		*
+		* Requires: jQuery 1.2.6+
+		* https://github.com/dreamerslab/jquery.msg/
+		*/
+		;(function($,window){var get_win_size=function(){if(window.innerWidth!=undefined)return[window.innerWidth,window.innerHeight];else{var B=document.body;var D=document.documentElement;return[Math.max(D.clientWidth,B.clientWidth),Math.max(D.clientHeight,B.clientHeight)]}};$.fn.center=function(opt){var $w=$(window);var scrollTop=$w.scrollTop();return this.each(function(){var $this=$(this);var configs=$.extend({against:"window",top:false,topPercentage:0.5,resize:true},opt);var centerize=function(){var against=configs.against;var against_w_n_h;var $against;if(against==="window")against_w_n_h=get_win_size();else if(against==="parent"){$against=$this.parent();against_w_n_h=[$against.width(),$against.height()];scrollTop=0}else{$against=$this.parents(against);against_w_n_h=[$against.width(),$against.height()];scrollTop=0}var x=(against_w_n_h[0]-$this.outerWidth())*0.5;var y=(against_w_n_h[1]-$this.outerHeight())*configs.topPercentage+scrollTop;if(configs.top)y=configs.top+scrollTop;$this.cs
 s({"left":x,"top":y})};centerize();if(configs.resize===true)$w.resize(centerize)})}})(jQuery,window);
+		
+		/* Copyright 2011, Ben Lin (http://dreamerslab.com/)
+		* Licensed under the MIT License (LICENSE.txt).
+		*
+		* Version: 1.0.7
+		*
+		* Requires: 
+		* jQuery 1.3.0+, 
+		* jQuery Center plugin 1.0.0+ https://github.com/dreamerslab/jquery.center
+		*/
+		;(function(d,e){var a={},c=0,f,b=[function(){}];d.msg=function(){var g,k,j,l,m,i,h;j=[].shift.call(arguments);l={}.toString.call(j);m=d.extend({afterBlock:function(){},autoUnblock:true,center:{topPercentage:0.4},css:{},clickUnblock:true,content:"Please wait...",fadeIn:200,fadeOut:300,bgPath:"",klass:"black-on-white",method:"appendTo",target:"body",timeOut:2400,z:1000},a);l==="[object Object]"&&d.extend(m,j);i={unblock:function(){g=d("#jquery-msg-overlay").fadeOut(m.fadeOut,function(){b[m.msgID](g);g.remove();});clearTimeout(f);}};h={unblock:function(o,n){var p=o===undefined?0:o;m.msgID=n===undefined?c:n;setTimeout(function(){i.unblock();},p);},replace:function(n){if({}.toString.call(n)!=="[object String]"){throw"$.msg('replace'); error: second argument has to be a string";}d("#jquery-msg-content").empty().html(n).center(m.center);},overwriteGlobal:function(o,n){a[o]=n;}};c--;m.msgID=m.msgID===undefined?c:m.msgID;b[m.msgID]=m.beforeUnblock===undefined?function(){}:m.beforeUnblock;i
 f(l==="[object String]"){h[j].apply(h,arguments);}else{g=d('<div id="jquery-msg-overlay" class="'+m.klass+'" style="position:absolute; z-index:'+m.z+"; top:0px; right:0px; left:0px; height:"+d(e).height()+'px;"><img src="'+m.bgPath+'blank.gif" id="jquery-msg-bg" style="width: 100%; height: 100%; top: 0px; left: 0px;"/><div id="jquery-msg-content" class="jquery-msg-content" style="position:absolute;">'+m.content+"</div></div>");g[m.method](m.target);k=d("#jquery-msg-content").center(m.center).css(m.css).hide();g.hide().fadeIn(m.fadeIn,function(){k.fadeIn("fast").children().andSelf().bind("click",function(n){n.stopPropagation();});m.afterBlock.call(h,g);m.clickUnblock&&g.bind("click",function(n){n.stopPropagation();i.unblock();});if(m.autoUnblock){f=setTimeout(i.unblock,m.timeOut);}});}return this;};})(jQuery,document);
+		
+		/*
+		 * BASICS
+			**********
+			
+			dirtyFields is a jQuery plugin that makes a user aware of which form elements have been updated on an HTML form and can reset the form values back to their previous state.
+			
+			The main website for the plugin (which includes documentation, demos, and a download file) is currently at:
+	
+			http://www.thoughtdelimited.org/dirtyFields/index.cfm
+		 * 
+		 */
+		
+		(function(e){function t(t,n,r){var i=n.data("dF").dirtyFieldsDataProperty;var s=e.inArray(t,i);if(r=="dirty"&&s==-1){i.push(t);n.data("dF").dirtyFieldsDataProperty=i}else if(r=="clean"&&s>-1){i.splice(s,1);n.data("dF").dirtyFieldsDataProperty=i}}function n(t){if(t.data("dF").dirtyFieldsDataProperty.length>0){t.addClass(t.data("dF").dirtyFormClass);if(e.isFunction(t.data("dF").formChangeCallback)){t.data("dF").formChangeCallback.call(t,true,t.data("dF").dirtyFieldsDataProperty)}}else{t.removeClass(t.data("dF").dirtyFormClass);if(e.isFunction(t.data("dF").formChangeCallback)){t.data("dF").formChangeCallback.call(t,false,t.data("dF").dirtyFieldsDataProperty)}}}function r(t,n,r,i){if(i.data("dF").denoteDirtyFields){var s=i.data("dF").fieldOverrides;var o=n.attr("id");var u=false;for(var a in s){if(o==a){if(r=="changed"){e("#"+s[a]).addClass(i.data("dF").dirtyFieldClass)}else{e("#"+s[a]).removeClass(i.data("dF").dirtyFieldClass)}u=true}}if(u==false){var f=i.data("dF")[t];var l=f.split(
 "-");switch(l[0]){case"next":if(r=="changed"){n.next(l[1]).addClass(i.data("dF").dirtyFieldClass)}else{n.next(l[1]).removeClass(i.data("dF").dirtyFieldClass)}break;case"previous":if(r=="changed"){n.prev(l[1]).addClass(i.data("dF").dirtyFieldClass)}else{n.prev(l[1]).removeClass(i.data("dF").dirtyFieldClass)}break;case"closest":if(r=="changed"){n.closest(l[1]).addClass(i.data("dF").dirtyFieldClass)}else{n.closest(l[1]).removeClass(i.data("dF").dirtyFieldClass)}break;case"self":if(r=="changed"){n.addClass(i.data("dF").dirtyFieldClass)}else{n.removeClass(i.data("dF").dirtyFieldClass)}break;default:if(l[0]=="id"||l[0]=="name"){switch(l[1]){case"class":if(r=="changed"){e("."+n.attr(l[0]),i).addClass(i.data("dF").dirtyFieldClass)}else{e("."+n.attr(l[0]),i).removeClass(i.data("dF").dirtyFieldClass)}break;case"title":if(r=="changed"){e("*[title='"+n.attr(l[0])+"']",i).addClass(i.data("dF").dirtyFieldClass)}else{e("*[title='"+n.attr(l[0])+"']",i).removeClass(i.data("dF").dirtyFieldClass)}brea
 k;case"for":if(r=="changed"){e("label[for='"+n.attr(l[0])+"']",i).addClass(i.data("dF").dirtyFieldClass)}else{e("label[for='"+n.attr(l[0])+"']",i).removeClass(i.data("dF").dirtyFieldClass)}break}}break}}}}function i(i,s){var o=i.attr("name");var u=false;if(s.data("dF").trimText){var a=jQuery.trim(i.val())}else{var a=i.val()}if(i.hasClass(s.data("dF").ignoreCaseClass)){var a=a.toUpperCase();var f=i.data(s.data("dF").startingValueDataProperty).toUpperCase()}else{var f=i.data(s.data("dF").startingValueDataProperty)}if(a!=f){r("textboxContext",i,"changed",s);t(o,s,"dirty");u=true}else{r("textboxContext",i,"unchanged",s);t(o,s,"clean")}if(e.isFunction(s.data("dF").fieldChangeCallback)){s.data("dF").fieldChangeCallback.call(i,i.data(s.data("dF").startingValueDataProperty),u)}if(s.data("dF").denoteDirtyForm){n(s)}}function s(i,s){var o=i.attr("name");var u=false;if(s.data("dF").denoteDirtyOptions==false&&i.attr("multiple")!=true){if(i.hasClass(s.data("dF").ignoreCaseClass)){var a=i.val().t
 oUpperCase();var f=i.data(s.data("dF").startingValueDataProperty).toUpperCase()}else{var a=i.val();var f=i.data(s.data("dF").startingValueDataProperty)}if(a!=f){r("selectContext",i,"changed",s);t(o,s,"dirty");u=true}else{r("selectContext",i,"unchanged",s);t(o,s,"clean")}}else{var l=false;i.children("option").each(function(t){var n=e(this);var r=n.is(":selected");if(r!=n.data(s.data("dF").startingValueDataProperty)){if(s.data("dF").denoteDirtyOptions){n.addClass(s.data("dF").dirtyOptionClass)}l=true}else{if(s.data("dF").denoteDirtyOptions){n.removeClass(s.data("dF").dirtyOptionClass)}}});if(l){r("selectContext",i,"changed",s);t(o,s,"dirty");u=true}else{r("selectContext",i,"unchanged",s);t(o,s,"clean")}}if(e.isFunction(s.data("dF").fieldChangeCallback)){s.data("dF").fieldChangeCallback.call(i,i.data(s.data("dF").startingValueDataProperty),u)}if(s.data("dF").denoteDirtyForm){n(s)}}function o(i,s){var o=i.attr("name");var u=false;var a=i.attr("type");e(":"+a+"[name='"+o+"']",s).each(fun
 ction(t){var n=e(this);var i=n.is(":checked");if(i!=n.data(s.data("dF").startingValueDataProperty)){r("checkboxRadioContext",n,"changed",s);u=true}else{r("checkboxRadioContext",n,"unchanged",s)}});if(u){t(o,s,"dirty")}else{t(o,s,"clean")}if(e.isFunction(s.data("dF").fieldChangeCallback)){s.data("dF").fieldChangeCallback.call(i,i.data(s.data("dF").startingValueDataProperty),u)}if(s.data("dF").denoteDirtyForm){n(s)}}e.fn.dirtyFields=function(t){var n=e.extend({},e.fn.dirtyFields.defaults,t);return this.each(function(){var t=e(this);t.data("dF",n);t.data("dF").dirtyFieldsDataProperty=new Array;e("input[type='text'],input[type='file'],input[type='password'],textarea",t).not("."+t.data("dF").exclusionClass).each(function(n){e.fn.dirtyFields.configureField(e(this),t,"text")});e("select",t).not("."+t.data("dF").exclusionClass).each(function(n){e.fn.dirtyFields.configureField(e(this),t,"select")});e(":checkbox,:radio",t).not("."+t.data("dF").exclusionClass).each(function(n){e.fn.dirtyFields
 .configureField(e(this),t,"checkRadio")});e.fn.dirtyFields.setStartingValues(t)})};e.fn.dirtyFields.defaults={checkboxRadioContext:"next-span",denoteDirtyOptions:false,denoteDirtyFields:true,denoteDirtyForm:false,dirtyFieldClass:"dirtyField",dirtyFieldsDataProperty:"dirtyFields",dirtyFormClass:"dirtyForm",dirtyOptionClass:"dirtyOption",exclusionClass:"dirtyExclude",fieldChangeCallback:"",fieldOverrides:{none:"none"},formChangeCallback:"",ignoreCaseClass:"dirtyIgnoreCase",preFieldChangeCallback:"",selectContext:"id-for",startingValueDataProperty:"startingValue",textboxContext:"id-for",trimText:false};e.fn.dirtyFields.configureField=function(t,n,r,u){if(!t.hasClass(n.data("dF").exclusionClass)){if(typeof u!="undefined"){n.data("dF").fieldOverrides[t.attr("id")]=u}switch(r){case"text":t.change(function(){if(e.isFunction(n.data("dF").preFieldChangeCallback)){if(n.data("dF").preFieldChangeCallback.call(t,t.data(n.data("dF").startingValueDataProperty))==false){return false}}i(t,n)});break
 ;case"select":t.change(function(){if(e.isFunction(n.data("dF").preFieldChangeCallback)){if(n.data("dF").preFieldChangeCallback.call(t,t.data(n.data("dF").startingValueDataProperty))==false){return false}}s(t,n)});break;case"checkRadio":t.change(function(){if(e.isFunction(n.data("dF").preFieldChangeCallback)){if(n.data("dF").preFieldChangeCallback.call(t,t.data(n.data("dF").startingValueDataProperty))==false){return false}}o(t,n)});break}}};e.fn.dirtyFields.formSaved=function(t){e.fn.dirtyFields.setStartingValues(t);e.fn.dirtyFields.markContainerFieldsClean(t)};e.fn.dirtyFields.markContainerFieldsClean=function(t){var n=new Array;t.data("dF").dirtyFieldsDataProperty=n;e("."+t.data("dF").dirtyFieldClass,t).removeClass(t.data("dF").dirtyFieldClass);if(t.data("dF").denoteDirtyOptions){e("."+t.data("dF").dirtyOptionClass,t).removeClass(t.data("dF").dirtyOptionClass)}if(t.data("dF").denoteDirtyForm){t.removeClass(t.data("dF").dirtyFormClass)}};e.fn.dirtyFields.setStartingValues=function(t
 ,n){e("input[type='text'],input[type='file'],input[type='password'],:checkbox,:radio,textarea",t).not("."+t.data("dF").exclusionClass).each(function(n){var r=e(this);if(r.attr("type")=="radio"||r.attr("type")=="checkbox"){e.fn.dirtyFields.setStartingCheckboxRadioValue(r,t)}else{e.fn.dirtyFields.setStartingTextValue(r,t)}});e("select",t).not("."+t.data("dF").exclusionClass).each(function(n){e.fn.dirtyFields.setStartingSelectValue(e(this),t)})};e.fn.dirtyFields.setStartingTextValue=function(t,n){return t.not("."+n.data("dF").exclusionClass).each(function(){var t=e(this);t.data(n.data("dF").startingValueDataProperty,t.val())})};e.fn.dirtyFields.setStartingCheckboxRadioValue=function(t,n){return t.not("."+n.data("dF").exclusionClass).each(function(){var t=e(this);var r;if(t.is(":checked")){t.data(n.data("dF").startingValueDataProperty,true)}else{t.data(n.data("dF").startingValueDataProperty,false)}})};e.fn.dirtyFields.setStartingSelectValue=function(t,n){return t.not("."+n.data("dF").ex
 clusionClass).each(function(){var t=e(this);if(n.data("dF").denoteDirtyOptions==false&&t.attr("multiple")!=true){t.data(n.data("dF").startingValueDataProperty,t.val())}else{var r=new Array;t.children("option").each(function(t){var i=e(this);if(i.is(":selected")){i.data(n.data("dF").startingValueDataProperty,true);r.push(i.val())}else{i.data(n.data("dF").startingValueDataProperty,false)}});t.data(n.data("dF").startingValueDataProperty,r)}})};e.fn.dirtyFields.rollbackTextValue=function(t,n,r){if(typeof r=="undefined"){r=true}return t.not("."+n.data("dF").exclusionClass).each(function(){var t=e(this);t.val(t.data(n.data("dF").startingValueDataProperty));if(r){i(t,n)}})};e.fn.dirtyFields.updateTextState=function(t,n){return t.not("."+n.data("dF").exclusionClass).each(function(){i(e(this),n)})};e.fn.dirtyFields.rollbackCheckboxRadioState=function(t,n,r){if(typeof r=="undefined"){r=true}return t.not("."+n.data("dF").exclusionClass).each(function(){var t=e(this);if(t.data(n.data("dF").star
 tingValueDataProperty)){t.attr("checked",true)}else{t.attr("checked",false)}if(r){o(t,n)}})};e.fn.dirtyFields.updateCheckboxRadioState=function(t,n){return t.not("."+n.data("dF").exclusionClass).each(function(){o(e(this),n)})};e.fn.dirtyFields.rollbackSelectState=function(t,n,r){if(typeof r=="undefined"){r=true}return t.not("."+n.data("dF").exclusionClass).each(function(){var t=e(this);if(n.data("dF").denoteDirtyOptions==false&&t.attr("multiple")!=true){t.val(t.data(n.data("dF").startingValueDataProperty))}else{t.children("option").each(function(t){var r=e(this);if(r.data(n.data("dF").startingValueDataProperty)){r.attr("selected",true)}else{r.attr("selected",false)}})}if(r){s(t,n)}})};e.fn.dirtyFields.updateSelectState=function(t,n){return t.not("."+n.data("dF").exclusionClass).each(function(){s(e(this),n)})};e.fn.dirtyFields.rollbackForm=function(t){e("input[type='text'],input[type='file'],input[type='password'],:checkbox,:radio,textarea",t).not("."+t.data("dF").exclusionClass).eac
 h(function(n){$object=e(this);if($object.attr("type")=="radio"||$object.attr("type")=="checkbox"){e.fn.dirtyFields.rollbackCheckboxRadioState($object,t,false)}else{e.fn.dirtyFields.rollbackTextValue($object,t,false)}});e("select",t).not("."+t.data("dF").exclusionClass).each(function(n){e.fn.dirtyFields.rollbackSelectState(e(this),t,false)});e.fn.dirtyFields.markContainerFieldsClean(t)};e.fn.dirtyFields.updateFormState=function(t){e("input[type='text'],input[type='file'],input[type='password'],:checkbox,:radio,textarea",t).not("."+t.data("dF").exclusionClass).each(function(n){$object=e(this);if($object.attr("type")=="radio"||$object.attr("type")=="checkbox"){e.fn.dirtyFields.updateCheckboxRadioState($object,t)}else{e.fn.dirtyFields.updateTextState($object,t)}});e("select",t).not("."+t.data("dF").exclusionClass).each(function(n){$object=e(this);e.fn.dirtyFields.updateSelectState($object,t)})};e.fn.dirtyFields.getDirtyFieldNames=function(e){return e.data("dF").dirtyFieldsDataProperty};
 })(jQuery)
+});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/modules/globalize/message/.en.js.swp
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/globalize/message/.en.js.swp b/security-admin/src/main/webapp/scripts/modules/globalize/message/.en.js.swp
new file mode 100644
index 0000000..ebcffc3
Binary files /dev/null and b/security-admin/src/main/webapp/scripts/modules/globalize/message/.en.js.swp differ

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
new file mode 100644
index 0000000..bd7be2b
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
@@ -0,0 +1,320 @@
+/**
+ * Never Delete any key without seraching it in all View and Template files
+ */
+/*(function( window, undefined ) {
+
+var Globalize;
+
+if ( typeof require !== "undefined" &&
+	typeof exports !== "undefined" &&
+	typeof module !== "undefined" ) {
+	// Assume CommonJS
+	Globalize = require( "../globalize.js" );
+} else {
+	// Global variable
+	Globalize = window.Globalize;
+}
+*/
+define(function(require) {
+	'use strict';
+	Globalize = require( "globalize" );
+
+	Globalize.addCultureInfo( "en", {
+        messages:                  {
+        	// Form labels, Table headers etc
+			lbl : {
+				// Common
+				// Accounts
+				// MSLinks
+				/*
+				 * Menu related
+				 */
+				home 						: 'Home',
+				name 						: 'Name',
+				password					: 'Password',
+				passwordConfirm				: 'Password Confirm',
+				listOfPolicies 				: 'List of Policies',
+				addNewPolicy 				: 'Add New Policy',
+				resource					: 'Resource',
+				action						: 'Action',
+				result						: 'Result',
+				enforcer					: 'Enforcer',
+				date						: 'Date',
+				resourcePath 				: 'Resource Path',
+				includesAllPathsRecursively : 'Recursive',
+				groups 						: 'Groups',
+				group 						: 'Groups',
+				auditLogging 				: 'Audit Logging',
+				encrypted 					: 'Encrypt',
+				resourceType 				: 'Resource Type',
+				description 				: 'Description',
+				groupPermissions			: 'Group Permissions',
+				userPermissions				: 'User Permissions',
+				selectGroup					: 'Select Group',
+				admin						: 'Admin',
+				execute						: 'Execute',
+				create 						: 'Create',
+				write						: 'Write',
+				deletes						: 'Delete',
+				read						: 'Read',
+				select						: 'Select',
+				update						: 'Update',
+				drop						: 'Drop',
+				alter						: 'Alter',
+				index						: 'Index',
+				lock						: 'Lock',
+				all							: 'All',
+				databaseName				: 'Database Name',
+				tableName					: 'Table Name',
+				columnName					: 'Column Name',
+				columnFamilies				: 'Column Families',
+				selectDatabaseName			: 'Select Database Name',
+				selectTableName				: 'Select Table Name',
+				selectColumnName			: 'Select Column Name',
+				enterColumnName				: 'Enter Column Name',
+				selectColumnFamilies		: 'Select Column Familes',
+				resourceInformation 		: 'Resource Information',
+				database					: 'Database'	,
+				table						: 'Table',
+				column						: 'Column',
+				policyInfo					: 'Policy Information',
+				createdBy 					: 'Created By',
+				createdOn					: 'Created On',
+				updatedBy					: 'Updated By',
+				updatedOn					: 'Updated On',
+				groupName					: 'Group Name',
+				permissions					: 'Permissions',
+				permissionGranted			: 'Permission Granted',
+				createAccount 				: 'Create Account',
+				editAccount 				: 'Edit Account ',
+				selectFolder 				: 'Select Folder',		
+				exports						: 'Export Policies',
+				userName					: 'User Name',
+				authToLocal					: 'authToLocal',
+				dataNode					:'dataNode',
+				nameNode					:'nameNode',
+				secNamenode					:'secNamenode',
+				userAccessReport				: 'User Access Report',
+				auditReport					: 'Audit Report',
+				createAsset					: 'Create Repository',
+				editAsset					: 'Edit Repository',
+				assetType					: 'Repository Type',
+				selectUser					: 'Select User',
+				listOfHDFSPolicies 			: 'List of HDFS Policies',
+				listOfHIVEPolicies 			: 'List of HIVE Policies',
+				listOfHBASEPolicies 		: 'List of HBASE Policies',
+				listOfKNOXPolicies 			: 'List of KNOX Policies',
+				listOfSTORMPolicies 		: 'List of STORM Policies',
+				users						: 'Users',
+				repository					: 'Repository',
+				repositoryDetails 			: 'Repository Details',
+				createRepository			: 'Create Repository',
+				
+				firstName					: 'First Name',
+				lastName					: 'Last Name',
+				email 						: 'Email',
+				emailAddress    			: 'Email Address',
+				newPassword     			: 'New Password',
+				reEnterPassword 			: 'Re-enter New Password',
+				oldPassword					: 'Old Password',
+				
+				customerName 				: 'Customer Name',
+				accountCode						: 'Account Code',
+				accountStatus					: 'Account Status',
+				ActiveStatus_STATUS_ENABLED 	: 'Enabled',
+				ActiveStatus_STATUS_DISABLED 	: 'Disabled',
+				commonNameForCertificate 		: 'Common Name For Certificate',
+				status							: 'Status',
+				userListing						: 'User List',
+				userInfo						: 'User Info',
+				userEdit						: 'User Edit',
+				userCreate						: 'User Create',
+				groupEdit						: 'Group Edit',
+				groupCreate						: 'Group Create',
+				addNewUser						: 'Add New User',
+				addNewGroup						: 'Add New Group',
+				selectUserDefinedFunction		: 'Select UDF',
+				selectView						: 'Select View',
+				udfName							: 'UDF Name',
+				viewName						: 'View Name',
+				permForTable					: 'Permission For Tables',
+				permForView					 	: 'Permission For Views',
+				permForUdf						: 'Permission For User Defined Function',
+				policyStatus					: 'Policy Status',
+				httpResponseCode				: 'Http Response Code',
+				repositoryName					: 'Repository Name',
+				agentId							: 'Agent Id',
+				agentIp							: 'Agent IP',
+				createDate						: 'Export Date',
+				attributeName 					: 'Attribute Name',
+				policyType						: 'Policy Type',
+				previousValue					: 'Previous Value',
+				newValue						: 'New Value',
+				udf								: 'UDF',
+				tableType						: 'Table Type',
+				columnType						: 'Column Type',
+				accountName						: 'Account Name',
+				createdDate						: 'Created Date',
+				sessionId						: 'Session Id',
+				operation						: 'Operation',
+				auditType						: 'Audit Type',
+				user							: 'User',
+				actions							: 'Actions',
+				loginId							: 'Login Id',
+				loginType						: 'Login Type',
+				ip								: 'IP',
+				userAgent						: 'User Agent',
+				loginTime						: 'Login Time',
+				sessionDetail					: 'Session Detail',
+				ok								: 'OK',
+				id								: 'ID',
+				type							: 'Type',
+				resourceId						: 'Resource ID',
+				eventTime						: 'Event Time',
+				resourceName					: 'Resource Name',
+				repoType						: 'Repository Type',
+				accessType						: 'Access Type',
+				aclEnforcer						: 'Access Enforcer',	
+				active							: 'Active',
+				selectRole						: 'Select Role',
+				role							: 'Role',
+				userSource						: 'User Source',
+				groupSource						: 'Group Source',
+				policyName						: 'Policy Name',
+				allow							: 'Allow',
+				selectTopologyName				: 'Select Topology Name',
+				selectServiceName				: 'Select Service Name',
+				topologyName					: 'Topology Name',
+				serivceName						: 'Service Name',
+				ipAddress						: 'IP Address',
+					
+			},
+			btn : {
+				add							: 'Add',
+				save						: 'Save',
+				cancel 						: 'Cancel',
+				addMore						: 'Add More..'
+				
+				
+			},
+			// h1, h2, h3, fieldset, title
+			h : {
+				welcome						: 'Welcome',
+				logout 						: 'Logout',
+				xaSecure					: 'XA Secure',
+				hortonWorksInc				: 'Hortonworks Inc.',
+				listOfPlugins				: 'See third-party tools/resources used and their respective authors.',
+				
+	
+				// Menu
+				dashboard					: 'Dashboard',
+				policyManager 				: 'Policy Manager',
+				usersOrGroups 				: 'Users/Groups',
+				reports 					: 'Reports',
+				config 						: 'Config',
+				accounts					: 'Accounts',
+				analytics					: 'Analytics',
+				audit						: 'Audit',
+				repositoryManager			: 'Manage Repository',
+				hdfs  						: 'HDFS',
+				hive  						: 'Hive',
+				createPolicy 				: 'Create Policy',
+				editPolicy	 				: 'Edit Policy',
+				managePolices 				: 'Manage Polices',
+				manageTables				: 'Manage Table',
+				userProfile					: 'User Profile',
+				users						: 'Users',
+				agents						: 'Agents',
+				repository					: 'Repository',
+				policy						: 'Policy',
+				groups						: 'Groups',
+				admin						: 'Admin',
+				bigData						: 'Big Data',
+				loginSession				: 'Login Sessions',
+				operationDiff				: 'Operation ',
+				searchForYourAccessAudit 	:"Search for your access audits...",
+				searchForYourAccessLog 		:"Search for your access logs...",
+				searchForYourLoginSession 	:"Search for your login sessions...",
+				searchForYourAgent 			:"Search for your agents...",
+				searchForPolicy				:"Search for your policy...",
+				searchForYourUser 			:"Search for your users...",
+				searchForYourGroup 			:"Search for your groups...",
+				access						: 'Access'
+				
+				
+			},
+			msg : {
+				deletePolicyValidationMsg : 'Policy does not have any settings for the specific resource. Policy will be deleted. Press [Ok] to continue. Press [Cancel] to edit the policy.',
+				areYouSureWantToDelete	  : 'Are you sure want to delete ?',
+				policyDeleteMsg 		  : 'Policy deleted successfully',
+				policyNotAddedMsg		  : 'Policy not added!',
+				addGroupPermission		  : 'Please add permission(s) for the selected Group, else group will not be added.',
+				addGroup		  		  : 'Please select group for the selected permission, else group will not be added.',
+				addUserPermission		  : 'Please add permission(s) for the selected User, else User will not be added.',
+				addUser		  		 	  : 'Please select User for the selected permission, else User will not be added.',
+				enterAlteastOneCharactere : 'Enter alteast one character.',
+				permsAlreadyExistForSelectedUser : 'Permission already exists for selected user.',
+				permsAlreadyExistForSelectedGroup : 'Permission already exists for selected group.',
+				youDontHavePermission 	  : 'You don\'t have permission for the resource !!',
+				myProfileError			  :'Your password does not match. Please try again with proper password',
+				myProfileSuccess		  :'Profile Edited successfully',
+				userNameAlreadyExist		  : 'User name already exists',
+				groupNameAlreadyExist		  : 'Group name already exists',
+				yourAuditLogginIsOff 	  :'You must have at least one or more user/group access defined for the policy.',
+				policyNotHavingPerm		  : 'The policy does not have any permissions so audit logging cannot be turned off',
+				areSureWantToLogout		  : 'Are you sure want to logout ?',
+				groupDoesNotExistAnymore  : 'Group does not exist anymore..',
+				userDoesNotExistAnymore   : 'User does not exist anymore..',
+				repoDoesNotExistAnymore   : 'Repository does not exist anymore..'
+				
+				
+				
+			},
+			plcHldr : {
+				search 						:'Search',
+				searchByResourcePath		:'Search by resource path'
+			},
+			dialogMsg :{
+				preventNavPolicyForm : 'HDFS policy form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavHivePolicyForm : 'HIVE policy form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavHbasePolicyForm : 'HBASE policy form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavKnoxPolicyForm : 'KNOX policy form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavStormPolicyForm : 'STORM policy form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavRepositoryForm : 'Repository form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavUserForm : 'User form edit is in progress. Kindly save/cancel changes before navigating away!',
+				preventNavGroupForm : 'Group form edit is in progress. Kindly save/cancel changes before navigating away!'
+				
+			},	
+			validationMessages : {
+				required 					: "* This field is required",
+				onlyLetterNumberUnderscore :'* Only Alpha Numeric and underscore characters are allowed',
+				alphaNumericUnderscoreDotComma :'* Only Alpha Numeric,underscore,comma,hypen,dot and space characters are allowed',
+				oldPasswordError :'Your password does not match. Please try again with proper password',
+				oldPasswordRepeatError :'You can not use old password.',
+				newPasswordError :'Invalid Password.Minimum 8 characters with min one alphabet and one numeric.',
+				emailIdError				: 'Please enter valid email address.',
+				enterValidName				: 'Please enter valid name.',
+				passwordError	            :'Invalid Password.Minimum 8 characters with min one alphabet and one numeric.'
+			},
+			serverMsg : {
+				
+				// UserMgr
+				userMgrPassword : 'The password you\'ve provided is incorrect. Please try again with correct password',
+				userMgrInvalidUser : 'Invalid user provided',
+				userMgrNewPassword : 'Invalid new password',
+				userMgrOldPassword : ' You can not use old password.',
+				userMgrEmailChange : 'Email address cannot be changed. Please send a request to change using feedback',
+				userMgrInvalidEmail : 'Invalid email address',
+				userMgrWrongPassword : 'Password doesnot match. Please try again with proper password',
+				userMgrWrongUser : 'User access denied. User not found.',
+				fsDefaultNameValidationError:"Please provide  fs.default.name in  format 'hdfs://hostname:portNumber' .",
+				fsDefaultNameEmptyError:'Please provide  fs.default.name.',
+				userAlreadyExistsError : 'User already exists',
+				repositoryNameAlreadyExistsError  : 'Repository name already exists'
+				
+			}
+			
+
+        }
+    });
+});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/routers/Router.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/routers/Router.js b/security-admin/src/main/webapp/scripts/routers/Router.js
new file mode 100644
index 0000000..e7500a1
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/routers/Router.js
@@ -0,0 +1,66 @@
+define([
+	'backbone',
+	'backbone.marionette'
+],
+function(Backbone){
+    'use strict';
+
+	return Backbone.Marionette.AppRouter.extend({
+		/** Backbone routes hash */
+		appRoutes: {
+			""							: "policyManagerAction",//"dashboardAction",
+			"!/policymanager"			: "policyManagerAction",
+
+			/* HDFS related */
+			"!/hdfs"					: "hdfsManageAction",
+			"!/hdfs/:id/policies"		: "hdfsManageAction",
+			"!/policy/:assetId/create"	: "policyCreateAction",
+			"!/policy/:id/edit"			: "policyEditAction",
+			"!/hdfs/:assetId/policy/:id": "policyViewAction",
+			
+			/****** Hive related **********************/
+			"!/hive"						: "hiveManageAction",
+			"!/hive/:id/policies"			: "hiveManageAction",
+			"!/hive/:assetId/policy/create"	: "hivePolicyCreateAction",
+			"!/hive/:assetId/policy/:id"	: "hivePolicyEditAction",
+			
+			/****** HBASE related **********************/
+			"!/hbase"						: "hbaseManageAction",
+			"!/hbase/:id/policies"			: "hbaseManageAction",
+			"!/hbase/:assetId/policy/create": "hbasePolicyCreateAction",
+			"!/hbase/:assetId/policy/:id"	: "hbasePolicyEditAction",
+			
+			/****** KNOX related ************************/
+			"!/knox/:id/policies"			: "knoxManageAction",
+			"!/knox/:assetId/policy/create"	: "knoxPolicyCreateAction",
+			"!/knox/:assetId/policy/:id"	: "knoxPolicyEditAction",
+			
+			/****** STORM related ************************/
+			"!/storm/:id/policies"			: "stormManageAction",
+			"!/storm/:assetId/policy/create": "stormPolicyCreateAction",
+			"!/storm/:assetId/policy/:id"	: "stormPolicyEditAction",
+			
+			/****** Asset related **********************/
+			"!/asset"					: "policyManagerAction",
+			"!/asset/create/:assetType" : "assetCreateAction",
+			"!/asset/:id"				: "assetEditAction",
+			
+			/****** Analytics Report related **********************/
+			"!/reports/userAccess"		: "userAccessReportAction",
+			
+			/****** Audit Report related **********************/
+			"!/reports/audit/:tab"					: "auditReportAction",
+			"!/reports/audit/loginSession/:paramName/:id"	: "loginSessionDetail",
+			
+			/****** User Profile related **********************/
+			"!/userprofile"		: "userProfileAction",
+			
+			"!/users/:tab"		: "userManagerAction",
+			"!/user/create"		: "userCreateAction",
+			"!/user/:id"		: "userEditAction",
+			
+			"!/group/create"	: "groupCreateAction",
+			"!/group/:id"		: "groupEditAction"
+		}
+	});
+});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/utils/XAEnums.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAEnums.js b/security-admin/src/main/webapp/scripts/utils/XAEnums.js
new file mode 100644
index 0000000..c4b7f67
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/utils/XAEnums.js
@@ -0,0 +1,318 @@
+/*
+ * Copyright (c) 2014 XASecure
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * XASecure ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with XASecure
+ */
+
+define(function(require) {
+
+	var $ = require('jquery');
+	var XAEnums = {};
+
+	mergeParams = function(defaults, params) {
+		if (!params) {
+			return defaults;
+		}
+		defaults || (defaults = {});
+		$.extend(true, defaults, params);
+		return defaults;
+	};
+
+	XAEnums.AccessResult = mergeParams(XAEnums.AccessResult, {
+		ACCESS_RESULT_DENIED:{value:0, label:'Denied', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_DENIED', tt: 'lbl.AccessResult_ACCESS_RESULT_DENIED'},
+		ACCESS_RESULT_ALLOWED:{value:1, label:'Allowed', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_ALLOWED', tt: 'lbl.AccessResult_ACCESS_RESULT_ALLOWED'}
+	});
+	
+	XAEnums.UserSource = mergeParams(XAEnums.UserSource, {
+		XA_PORTAL_USER:{value:0, label:'Allowed', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_ALLOWED', tt: 'lbl.AccessResult_ACCESS_RESULT_ALLOWED'},
+		XA_USER:{value:1, label:'Denied', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_DENIED', tt: 'lbl.AccessResult_ACCESS_RESULT_DENIED'}
+	});
+	
+	XAEnums.GroupSource = mergeParams(XAEnums.GroupSource, {
+		XA_PORTAL_GROUP:{value:0, label:'Allowed', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_ALLOWED', tt: 'lbl.AccessResult_ACCESS_RESULT_ALLOWED'},
+		XA_GROUP:{value:1, label:'Denied', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_DENIED', tt: 'lbl.AccessResult_ACCESS_RESULT_DENIED'}
+	});
+	
+	XAEnums.UserRoles = mergeParams(XAEnums.UserRoles, {
+		ROLE_SYS_ADMIN:{value:0, label:'Admin', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_ALLOWED', tt: 'lbl.AccessResult_ACCESS_RESULT_ALLOWED'},
+		ROLE_USER:{value:1, label:'User', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_DENIED', tt: 'lbl.AccessResult_ACCESS_RESULT_DENIED'}
+	});
+	
+	XAEnums.UserTypes = mergeParams(XAEnums.UserTypes, {
+		USER_INTERNAL:{value:0, label:'Internal', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_ALLOWED', tt: 'lbl.AccessResult_ACCESS_RESULT_ALLOWED'},
+		USER_EXTERNAL:{value:1, label:'External', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_DENIED', tt: 'lbl.AccessResult_ACCESS_RESULT_DENIED'}
+	});
+	
+	XAEnums.GroupTypes = mergeParams(XAEnums.GroupTypes, {
+		GROUP_INTERNAL:{value:0, label:'Internal', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_ALLOWED', tt: 'lbl.AccessResult_ACCESS_RESULT_ALLOWED'},
+		GROUP_EXTERNAL:{value:1, label:'External', rbkey:'xa.enum.AccessResult.ACCESS_RESULT_DENIED', tt: 'lbl.AccessResult_ACCESS_RESULT_DENIED'}
+	});
+	
+	XAEnums.ActivationStatus = mergeParams(XAEnums.ActivationStatus, {
+		ACT_STATUS_DISABLED:{value:0, label:'Disabled', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_DISABLED', tt: 'lbl.ActivationStatus_ACT_STATUS_DISABLED'},
+		ACT_STATUS_ACTIVE:{value:1, label:'Active', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_ACTIVE', tt: 'lbl.ActivationStatus_ACT_STATUS_ACTIVE'},
+		ACT_STATUS_PENDING_APPROVAL:{value:2, label:'Pending Approval', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_PENDING_APPROVAL', tt: 'lbl.ActivationStatus_ACT_STATUS_PENDING_APPROVAL'},
+		ACT_STATUS_PENDING_ACTIVATION:{value:3, label:'Pending Activation', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_PENDING_ACTIVATION', tt: 'lbl.ActivationStatus_ACT_STATUS_PENDING_ACTIVATION'},
+		ACT_STATUS_REJECTED:{value:4, label:'Rejected', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_REJECTED', tt: 'lbl.ActivationStatus_ACT_STATUS_REJECTED'},
+		ACT_STATUS_DEACTIVATED:{value:5, label:'Deactivated', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_DEACTIVATED', tt: 'lbl.ActivationStatus_ACT_STATUS_DEACTIVATED'},
+		ACT_STATUS_PRE_REGISTRATION:{value:6, label:'Registration Pending', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_PRE_REGISTRATION', tt: 'lbl.ActivationStatus_ACT_STATUS_PRE_REGISTRATION'},
+		ACT_STATUS_NO_LOGIN:{value:7, label:'No login privilege', rbkey:'xa.enum.ActivationStatus.ACT_STATUS_NO_LOGIN', tt: 'lbl.ActivationStatus_ACT_STATUS_NO_LOGIN'}
+	});
+
+	XAEnums.ActiveStatus = mergeParams(XAEnums.ActiveStatus, {
+		STATUS_DISABLED:{value:0, label:'Disabled', rbkey:'xa.enum.ActiveStatus.STATUS_DISABLED', tt: 'lbl.ActiveStatus_STATUS_DISABLED'},
+		STATUS_ENABLED:{value:1, label:'Enabled', rbkey:'xa.enum.ActiveStatus.STATUS_ENABLED', tt: 'lbl.ActiveStatus_STATUS_ENABLED'},
+		STATUS_DELETED:{value:2, label:'Deleted', rbkey:'xa.enum.ActiveStatus.STATUS_DELETED', tt: 'lbl.ActiveStatus_STATUS_DELETED'}
+	});
+
+	XAEnums.AssetType = mergeParams(XAEnums.AssetType, {
+		ASSET_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.AssetType.ASSET_UNKNOWN', tt: 'lbl.AssetType_ASSET_UNKNOWN'},
+		ASSET_HDFS:{value:1, label:'HDFS', rbkey:'xa.enum.AssetType.ASSET_HDFS', tt: 'lbl.AssetType_ASSET_HDFS'},
+		ASSET_HBASE:{value:2, label:'HBase', rbkey:'xa.enum.AssetType.ASSET_HBASE', tt: 'lbl.AssetType_ASSET_HBASE'},
+		ASSET_HIVE:{value:3, label:'Hive', rbkey:'xa.enum.AssetType.ASSET_HIVE', tt: 'lbl.AssetType_ASSET_HIVE'},
+		ASSET_AGENT:{value:4, label:'Agent', rbkey:'xa.enum.AssetType.ASSET_KNOX', tt: 'lbl.AssetType_ASSET_KNOX'},
+		ASSET_KNOX:{value:5, label:'Knox', rbkey:'xa.enum.AssetType.ASSET_KNOX', tt: 'lbl.AssetType_ASSET_KNOX'},
+		ASSET_STORM:{value:6, label:'Storm', rbkey:'xa.enum.AssetType.ASSET_STORM', tt: 'lbl.AssetType_ASSET_STORM'}
+	});
+
+	XAEnums.AuthStatus = mergeParams(XAEnums.AuthStatus, {
+		AUTH_STATUS_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_UNKNOWN', tt: 'lbl.AuthStatus_AUTH_STATUS_UNKNOWN'},
+		AUTH_STATUS_SUCCESS:{value:1, label:'Success', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_SUCCESS', tt: 'lbl.AuthStatus_AUTH_STATUS_SUCCESS'},
+		AUTH_STATUS_WRONG_PASSWORD:{value:2, label:'Wrong Password', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_WRONG_PASSWORD', tt: 'lbl.AuthStatus_AUTH_STATUS_WRONG_PASSWORD'},
+		AUTH_STATUS_DISABLED:{value:3, label:'Account Disabled', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_DISABLED', tt: 'lbl.AuthStatus_AUTH_STATUS_DISABLED'},
+		AUTH_STATUS_LOCKED:{value:4, label:'Locked', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_LOCKED', tt: 'lbl.AuthStatus_AUTH_STATUS_LOCKED'},
+		AUTH_STATUS_PASSWORD_EXPIRED:{value:5, label:'Password Expired', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_PASSWORD_EXPIRED', tt: 'lbl.AuthStatus_AUTH_STATUS_PASSWORD_EXPIRED'},
+		AUTH_STATUS_USER_NOT_FOUND:{value:6, label:'User not found', rbkey:'xa.enum.AuthStatus.AUTH_STATUS_USER_NOT_FOUND', tt: 'lbl.AuthStatus_AUTH_STATUS_USER_NOT_FOUND'}
+	});
+
+	XAEnums.AuthType = mergeParams(XAEnums.AuthType, {
+		AUTH_TYPE_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.AuthType.AUTH_TYPE_UNKNOWN', tt: 'lbl.AuthType_AUTH_TYPE_UNKNOWN'},
+		AUTH_TYPE_PASSWORD:{value:1, label:'Username/Password', rbkey:'xa.enum.AuthType.AUTH_TYPE_PASSWORD', tt: 'lbl.AuthType_AUTH_TYPE_PASSWORD'}
+	});
+
+	XAEnums.BooleanValue = mergeParams(XAEnums.BooleanValue, {
+		BOOL_NONE:{value:0, label:'None', rbkey:'xa.enum.BooleanValue.BOOL_NONE', tt: 'lbl.BooleanValue_BOOL_NONE'},
+		BOOL_TRUE:{value:1, label:'True', rbkey:'xa.enum.BooleanValue.BOOL_TRUE', tt: 'lbl.BooleanValue_BOOL_TRUE'},
+		BOOL_FALSE:{value:2, label:'False', rbkey:'xa.enum.BooleanValue.BOOL_FALSE', tt: 'lbl.BooleanValue_BOOL_FALSE'}
+	});
+
+	XAEnums.ClassTypes = mergeParams(XAEnums.ClassTypes, {
+		CLASS_TYPE_NONE:{value:0, label:'None', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_NONE', tt: 'lbl.ClassTypes_CLASS_TYPE_NONE'},
+		CLASS_TYPE_MESSAGE:{value:1, label:'Message', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_MESSAGE', modelName:'VXMessage', type:'vXMessage', tt: 'lbl.ClassTypes_CLASS_TYPE_MESSAGE'},
+		CLASS_TYPE_USER_PROFILE:{value:2, label:'User Profile', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_USER_PROFILE', modelName:'VXPortalUser', type:'vXPortalUser', tt: 'lbl.ClassTypes_CLASS_TYPE_USER_PROFILE'},
+		CLASS_TYPE_AUTH_SESS:{value:3, label:'Authentication Session', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_AUTH_SESS', modelName:'VXAuthSession', type:'vXAuthSession', tt: 'lbl.ClassTypes_CLASS_TYPE_AUTH_SESS'},
+		CLASS_TYPE_DATA_OBJECT:{value:4, label:'CLASS_TYPE_DATA_OBJECT', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_DATA_OBJECT', modelName:'VXDataObject', type:'vXDataObject', tt: 'lbl.ClassTypes_CLASS_TYPE_DATA_OBJECT'},
+		CLASS_TYPE_NAMEVALUE:{value:5, label:'CLASS_TYPE_NAMEVALUE', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_NAMEVALUE', tt: 'lbl.ClassTypes_CLASS_TYPE_NAMEVALUE'},
+		CLASS_TYPE_LONG:{value:6, label:'CLASS_TYPE_LONG', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_LONG', modelName:'VXLong', type:'vXLong', tt: 'lbl.ClassTypes_CLASS_TYPE_LONG'},
+		CLASS_TYPE_PASSWORD_CHANGE:{value:7, label:'CLASS_TYPE_PASSWORD_CHANGE', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE', modelName:'VXPasswordChange', type:'vXPasswordChange', tt: 'lbl.ClassTypes_CLASS_TYPE_PASSWORD_CHANGE'},
+		CLASS_TYPE_STRING:{value:8, label:'CLASS_TYPE_STRING', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_STRING', modelName:'VXString', type:'vXString', tt: 'lbl.ClassTypes_CLASS_TYPE_STRING'},
+		CLASS_TYPE_ENUM:{value:9, label:'CLASS_TYPE_ENUM', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_ENUM', tt: 'lbl.ClassTypes_CLASS_TYPE_ENUM'},
+		CLASS_TYPE_ENUM_ELEMENT:{value:10, label:'CLASS_TYPE_ENUM_ELEMENT', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_ENUM_ELEMENT', tt: 'lbl.ClassTypes_CLASS_TYPE_ENUM_ELEMENT'},
+		CLASS_TYPE_RESPONSE:{value:11, label:'Response', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_RESPONSE', modelName:'VXResponse', type:'vXResponse', tt: 'lbl.ClassTypes_CLASS_TYPE_RESPONSE'},
+		CLASS_TYPE_XA_ASSET:{value:1000, label:'Asset', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_ASSET', modelName:'VXAsset', type:'vXAsset', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_ASSET'},
+		CLASS_TYPE_XA_RESOURCE:{value:1001, label:'Resource', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_RESOURCE', modelName:'VXResource', type:'vXResource', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_RESOURCE'},
+		CLASS_TYPE_XA_GROUP:{value:1002, label:'XA Group', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP', modelName:'VXGroup', type:'vXGroup', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_GROUP'},
+		CLASS_TYPE_XA_USER:{value:1003, label:'XA User', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_USER', modelName:'VXUser', type:'vXUser', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_USER'},
+		CLASS_TYPE_XA_GROUP_USER:{value:1004, label:'XA Group of Users', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_USER', modelName:'VXGroupUser', type:'vXGroupUser', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_GROUP_USER'},
+		CLASS_TYPE_XA_GROUP_GROUP:{value:1005, label:'XA Group of groups', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_GROUP', modelName:'VXGroupGroup', type:'vXGroupGroup', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_GROUP_GROUP'},
+		CLASS_TYPE_XA_PERM_MAP:{value:1006, label:'XA permissions for resource', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_PERM_MAP', modelName:'VXPermMap', type:'vXPermMap', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_PERM_MAP'},
+		CLASS_TYPE_XA_AUDIT_MAP:{value:1007, label:'XA audits for resource', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_AUDIT_MAP', modelName:'VXAuditMap', type:'vXAuditMap', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_AUDIT_MAP'},
+		CLASS_TYPE_XA_CRED_STORE:{value:1008, label:'XA credential store', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_CRED_STORE', modelName:'VXCredentialStore', type:'vXCredentialStore', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_CRED_STORE'},
+		CLASS_TYPE_XA_POLICY_EXPORT_AUDIT:{value:1009, label:'XA Policy Export Audit', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_POLICY_EXPORT_AUDIT', modelName:'VXPolicyExportAudit', type:'vXPolicyExportAudit', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_POLICY_EXPORT_AUDIT'},
+		CLASS_TYPE_TRX_LOG:{value:1010, label:'Transaction log', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_TRX_LOG', tt: 'lbl.ClassTypes_CLASS_TYPE_TRX_LOG'},
+		CLASS_TYPE_XA_ACCESS_AUDIT:{value:1011, label:'Access Audit', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_ACCESS_AUDIT', modelName:'VXAccessAudit', type:'vXAccessAudit', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_ACCESS_AUDIT'},
+		CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE:{value:1012, label:'Transaction log attribute', rbkey:'xa.enum.ClassTypes.CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE', tt: 'lbl.ClassTypes_CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE'}
+	});
+
+	XAEnums.DataType = mergeParams(XAEnums.DataType, {
+		DATA_TYPE_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.DataType.DATA_TYPE_UNKNOWN', tt: 'lbl.DataType_DATA_TYPE_UNKNOWN'},
+		DATA_TYPE_INTEGER:{value:1, label:'Integer', rbkey:'xa.enum.DataType.DATA_TYPE_INTEGER', tt: 'lbl.DataType_DATA_TYPE_INTEGER'},
+		DATA_TYPE_DOUBLE:{value:2, label:'Double', rbkey:'xa.enum.DataType.DATA_TYPE_DOUBLE', tt: 'lbl.DataType_DATA_TYPE_DOUBLE'},
+		DATA_TYPE_STRING:{value:3, label:'String', rbkey:'xa.enum.DataType.DATA_TYPE_STRING', tt: 'lbl.DataType_DATA_TYPE_STRING'},
+		DATA_TYPE_BOOLEAN:{value:4, label:'Boolean', rbkey:'xa.enum.DataType.DATA_TYPE_BOOLEAN', tt: 'lbl.DataType_DATA_TYPE_BOOLEAN'},
+		DATA_TYPE_DATE:{value:5, label:'Date', rbkey:'xa.enum.DataType.DATA_TYPE_DATE', tt: 'lbl.DataType_DATA_TYPE_DATE'},
+		DATA_TYPE_STRING_ENUM:{value:6, label:'String enumeration', rbkey:'xa.enum.DataType.DATA_TYPE_STRING_ENUM', tt: 'lbl.DataType_DATA_TYPE_STRING_ENUM'},
+		DATA_TYPE_LONG:{value:7, label:'Long', rbkey:'xa.enum.DataType.DATA_TYPE_LONG', tt: 'lbl.DataType_DATA_TYPE_LONG'},
+		DATA_TYPE_INTEGER_ENUM:{value:8, label:'Integer enumeration', rbkey:'xa.enum.DataType.DATA_TYPE_INTEGER_ENUM', tt: 'lbl.DataType_DATA_TYPE_INTEGER_ENUM'}
+	});
+
+	XAEnums.DeviceType = mergeParams(XAEnums.DeviceType, {
+		DEVICE_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.DeviceType.DEVICE_UNKNOWN', tt: 'lbl.DeviceType_DEVICE_UNKNOWN'},
+		DEVICE_BROWSER:{value:1, label:'Browser', rbkey:'xa.enum.DeviceType.DEVICE_BROWSER', tt: 'lbl.DeviceType_DEVICE_BROWSER'},
+		DEVICE_IPHONE:{value:2, label:'iPhone', rbkey:'xa.enum.DeviceType.DEVICE_IPHONE', tt: 'lbl.DeviceType_DEVICE_IPHONE'},
+		DEVICE_IPAD:{value:3, label:'iPad', rbkey:'xa.enum.DeviceType.DEVICE_IPAD', tt: 'lbl.DeviceType_DEVICE_IPAD'},
+		DEVICE_IPOD:{value:4, label:'iPod', rbkey:'xa.enum.DeviceType.DEVICE_IPOD', tt: 'lbl.DeviceType_DEVICE_IPOD'},
+		DEVICE_ANDROID:{value:5, label:'Android', rbkey:'xa.enum.DeviceType.DEVICE_ANDROID', tt: 'lbl.DeviceType_DEVICE_ANDROID'}
+	});
+
+	XAEnums.DiffLevel = mergeParams(XAEnums.DiffLevel, {
+		DIFF_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.DiffLevel.DIFF_UNKNOWN', tt: 'lbl.DiffLevel_DIFF_UNKNOWN'},
+		DIFF_LOW:{value:1, label:'Low', rbkey:'xa.enum.DiffLevel.DIFF_LOW', tt: 'lbl.DiffLevel_DIFF_LOW'},
+		DIFF_MEDIUM:{value:2, label:'Medium', rbkey:'xa.enum.DiffLevel.DIFF_MEDIUM', tt: 'lbl.DiffLevel_DIFF_MEDIUM'},
+		DIFF_HIGH:{value:3, label:'High', rbkey:'xa.enum.DiffLevel.DIFF_HIGH', tt: 'lbl.DiffLevel_DIFF_HIGH'}
+	});
+
+	XAEnums.FileType = mergeParams(XAEnums.FileType, {
+		FILE_FILE:{value:0, label:'File', rbkey:'xa.enum.FileType.FILE_FILE', tt: 'lbl.FileType_FILE_FILE'},
+		FILE_DIR:{value:1, label:'Directory', rbkey:'xa.enum.FileType.FILE_DIR', tt: 'lbl.FileType_FILE_DIR'}
+	});
+
+	XAEnums.FreqType = mergeParams(XAEnums.FreqType, {
+		FREQ_NONE:{value:0, label:'None', rbkey:'xa.enum.FreqType.FREQ_NONE', tt: 'lbl.FreqType_FREQ_NONE'},
+		FREQ_MANUAL:{value:1, label:'Manual', rbkey:'xa.enum.FreqType.FREQ_MANUAL', tt: 'lbl.FreqType_FREQ_MANUAL'},
+		FREQ_HOURLY:{value:2, label:'Hourly', rbkey:'xa.enum.FreqType.FREQ_HOURLY', tt: 'lbl.FreqType_FREQ_HOURLY'},
+		FREQ_DAILY:{value:3, label:'Daily', rbkey:'xa.enum.FreqType.FREQ_DAILY', tt: 'lbl.FreqType_FREQ_DAILY'},
+		FREQ_WEEKLY:{value:4, label:'Weekly', rbkey:'xa.enum.FreqType.FREQ_WEEKLY', tt: 'lbl.FreqType_FREQ_WEEKLY'},
+		FREQ_BI_WEEKLY:{value:5, label:'Bi Weekly', rbkey:'xa.enum.FreqType.FREQ_BI_WEEKLY', tt: 'lbl.FreqType_FREQ_BI_WEEKLY'},
+		FREQ_MONTHLY:{value:6, label:'Monthly', rbkey:'xa.enum.FreqType.FREQ_MONTHLY', tt: 'lbl.FreqType_FREQ_MONTHLY'}
+	});
+
+	XAEnums.MimeType = mergeParams(XAEnums.MimeType, {
+		MIME_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.MimeType.MIME_UNKNOWN', tt: 'lbl.MimeType_MIME_UNKNOWN'},
+		MIME_TEXT:{value:1, label:'Text', rbkey:'xa.enum.MimeType.MIME_TEXT', tt: 'lbl.MimeType_MIME_TEXT'},
+		MIME_HTML:{value:2, label:'Html', rbkey:'xa.enum.MimeType.MIME_HTML', tt: 'lbl.MimeType_MIME_HTML'},
+		MIME_PNG:{value:3, label:'png', rbkey:'xa.enum.MimeType.MIME_PNG', tt: 'lbl.MimeType_MIME_PNG'},
+		MIME_JPEG:{value:4, label:'jpeg', rbkey:'xa.enum.MimeType.MIME_JPEG', tt: 'lbl.MimeType_MIME_JPEG'}
+	});
+
+	XAEnums.NumberFormat = mergeParams(XAEnums.NumberFormat, {
+		NUM_FORMAT_NONE:{value:0, label:'None', rbkey:'xa.enum.NumberFormat.NUM_FORMAT_NONE', tt: 'lbl.NumberFormat_NUM_FORMAT_NONE'},
+		NUM_FORMAT_NUMERIC:{value:1, label:'Numeric', rbkey:'xa.enum.NumberFormat.NUM_FORMAT_NUMERIC', tt: 'lbl.NumberFormat_NUM_FORMAT_NUMERIC'},
+		NUM_FORMAT_ALPHA:{value:2, label:'Alphabhet', rbkey:'xa.enum.NumberFormat.NUM_FORMAT_ALPHA', tt: 'lbl.NumberFormat_NUM_FORMAT_ALPHA'},
+		NUM_FORMAT_ROMAN:{value:3, label:'Roman', rbkey:'xa.enum.NumberFormat.NUM_FORMAT_ROMAN', tt: 'lbl.NumberFormat_NUM_FORMAT_ROMAN'}
+	});
+
+	XAEnums.ObjectStatus = mergeParams(XAEnums.ObjectStatus, {
+		OBJ_STATUS_ACTIVE:{value:0, label:'Active', rbkey:'xa.enum.ObjectStatus.OBJ_STATUS_ACTIVE', tt: 'lbl.ObjectStatus_OBJ_STATUS_ACTIVE'},
+		OBJ_STATUS_DELETED:{value:1, label:'Deleted', rbkey:'xa.enum.ObjectStatus.OBJ_STATUS_DELETED', tt: 'lbl.ObjectStatus_OBJ_STATUS_DELETED'},
+		OBJ_STATUS_ARCHIVED:{value:2, label:'Archived', rbkey:'xa.enum.ObjectStatus.OBJ_STATUS_ARCHIVED', tt: 'lbl.ObjectStatus_OBJ_STATUS_ARCHIVED'}
+	});
+
+	XAEnums.PasswordResetStatus = mergeParams(XAEnums.PasswordResetStatus, {
+		PWD_RESET_ACTIVE:{value:0, label:'Active', rbkey:'xa.enum.PasswordResetStatus.PWD_RESET_ACTIVE', tt: 'lbl.PasswordResetStatus_PWD_RESET_ACTIVE'},
+		PWD_RESET_USED:{value:1, label:'Used', rbkey:'xa.enum.PasswordResetStatus.PWD_RESET_USED', tt: 'lbl.PasswordResetStatus_PWD_RESET_USED'},
+		PWD_RESET_EXPIRED:{value:2, label:'Expired', rbkey:'xa.enum.PasswordResetStatus.PWD_RESET_EXPIRED', tt: 'lbl.PasswordResetStatus_PWD_RESET_EXPIRED'},
+		PWD_RESET_DISABLED:{value:3, label:'Disabled', rbkey:'xa.enum.PasswordResetStatus.PWD_RESET_DISABLED', tt: 'lbl.PasswordResetStatus_PWD_RESET_DISABLED'}
+	});
+
+	XAEnums.PolicyType = mergeParams(XAEnums.PolicyType, {
+		POLICY_INCLUSION:{value:0, label:'Inclusion', rbkey:'xa.enum.PolicyType.POLICY_INCLUSION', tt: 'lbl.PolicyType_POLICY_INCLUSION'},
+		POLICY_EXCLUSION:{value:1, label:'Exclusion', rbkey:'xa.enum.PolicyType.POLICY_EXCLUSION', tt: 'lbl.PolicyType_POLICY_EXCLUSION'}
+	});
+
+	XAEnums.PriorityType = mergeParams(XAEnums.PriorityType, {
+		PRIORITY_NORMAL:{value:0, label:'Normal', rbkey:'xa.enum.PriorityType.PRIORITY_NORMAL', tt: 'lbl.PriorityType_PRIORITY_NORMAL'},
+		PRIORITY_LOW:{value:1, label:'Low', rbkey:'xa.enum.PriorityType.PRIORITY_LOW', tt: 'lbl.PriorityType_PRIORITY_LOW'},
+		PRIORITY_MEDIUM:{value:2, label:'Medium', rbkey:'xa.enum.PriorityType.PRIORITY_MEDIUM', tt: 'lbl.PriorityType_PRIORITY_MEDIUM'},
+		PRIORITY_HIGH:{value:3, label:'High', rbkey:'xa.enum.PriorityType.PRIORITY_HIGH', tt: 'lbl.PriorityType_PRIORITY_HIGH'}
+	});
+
+	XAEnums.ProgressStatus = mergeParams(XAEnums.ProgressStatus, {
+		PROGRESS_PENDING:{value:0, label:'Pending', rbkey:'xa.enum.ProgressStatus.PROGRESS_PENDING', tt: 'lbl.ProgressStatus_PROGRESS_PENDING'},
+		PROGRESS_IN_PROGRESS:{value:1, label:'In Progress', rbkey:'xa.enum.ProgressStatus.PROGRESS_IN_PROGRESS', tt: 'lbl.ProgressStatus_PROGRESS_IN_PROGRESS'},
+		PROGRESS_COMPLETE:{value:2, label:'Complete', rbkey:'xa.enum.ProgressStatus.PROGRESS_COMPLETE', tt: 'lbl.ProgressStatus_PROGRESS_COMPLETE'},
+		PROGRESS_ABORTED:{value:3, label:'Aborted', rbkey:'xa.enum.ProgressStatus.PROGRESS_ABORTED', tt: 'lbl.ProgressStatus_PROGRESS_ABORTED'},
+		PROGRESS_FAILED:{value:4, label:'Failed', rbkey:'xa.enum.ProgressStatus.PROGRESS_FAILED', tt: 'lbl.ProgressStatus_PROGRESS_FAILED'}
+	});
+
+	XAEnums.RelationType = mergeParams(XAEnums.RelationType, {
+		REL_NONE:{value:0, label:'None', rbkey:'xa.enum.RelationType.REL_NONE', tt: 'lbl.RelationType_REL_NONE'},
+		REL_SELF:{value:1, label:'Self', rbkey:'xa.enum.RelationType.REL_SELF', tt: 'lbl.RelationType_REL_SELF'}
+	});
+
+	XAEnums.ResourceType = mergeParams(XAEnums.ResourceType, {
+		RESOURCE_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.ResourceType.RESOURCE_UNKNOWN', tt: 'lbl.ResourceType_RESOURCE_UNKNOWN'},
+		RESOURCE_PATH:{value:1, label:'Path', rbkey:'xa.enum.ResourceType.RESOURCE_PATH', tt: 'lbl.ResourceType_RESOURCE_PATH'},
+		RESOURCE_DB:{value:2, label:'Database', rbkey:'xa.enum.ResourceType.RESOURCE_DB', tt: 'lbl.ResourceType_RESOURCE_DB'},
+		RESOURCE_TABLE:{value:3, label:'Table', rbkey:'xa.enum.ResourceType.RESOURCE_TABLE', tt: 'lbl.ResourceType_RESOURCE_TABLE'},
+		RESOURCE_COL_FAM:{value:4, label:'Column Family', rbkey:'xa.enum.ResourceType.RESOURCE_COL_FAM', tt: 'lbl.ResourceType_RESOURCE_COL_FAM'},
+		RESOURCE_COLUMN:{value:5, label:'Column', rbkey:'xa.enum.ResourceType.RESOURCE_COLUMN', tt: 'lbl.ResourceType_RESOURCE_COLUMN'},
+		RESOURCE_VIEW:{value:6, label:'VIEW', rbkey:'xa.enum.ResourceType.RESOURCE_VIEW', tt: 'lbl.ResourceType_RESOURCE_VIEW'},
+		RESOURCE_UDF:{value:7, label:'UDF', rbkey:'xa.enum.ResourceType.RESOURCE_UDF', tt: 'lbl.ResourceType_RESOURCE_UDF'},
+		RESOURCE_VIEW_COL:{value:8, label:'View Column', rbkey:'xa.enum.ResourceType.RESOURCE_VIEW_COL', tt: 'lbl.ResourceType_RESOURCE_VIEW_COL'},
+		RESOURCE_TOPOLOGY:{value:9, label:'Topology', rbkey:'xa.enum.ResourceType.RESOURCE_TOPOLOGY', tt: 'lbl.RESOURCE_TOPOLOGY'},
+		RESOURCE_SERVICE:{value:10, label:'Service', rbkey:'xa.enum.ResourceType.RESOURCE_SERVICE', tt: 'lbl.RESOURCE_SERVICE'},
+	});
+
+	XAEnums.ResponseStatus = mergeParams(XAEnums.ResponseStatus, {
+		STATUS_SUCCESS:{value:0, label:'Success', rbkey:'xa.enum.ResponseStatus.STATUS_SUCCESS', tt: 'lbl.ResponseStatus_STATUS_SUCCESS'},
+		STATUS_ERROR:{value:1, label:'Error', rbkey:'xa.enum.ResponseStatus.STATUS_ERROR', tt: 'lbl.ResponseStatus_STATUS_ERROR'},
+		STATUS_VALIDATION:{value:2, label:'Validation Error', rbkey:'xa.enum.ResponseStatus.STATUS_VALIDATION', tt: 'lbl.ResponseStatus_STATUS_VALIDATION'},
+		STATUS_WARN:{value:3, label:'Warning', rbkey:'xa.enum.ResponseStatus.STATUS_WARN', tt: 'lbl.ResponseStatus_STATUS_WARN'},
+		STATUS_INFO:{value:4, label:'Information', rbkey:'xa.enum.ResponseStatus.STATUS_INFO', tt: 'lbl.ResponseStatus_STATUS_INFO'},
+		STATUS_PARTIAL_SUCCESS:{value:5, label:'Partial Success', rbkey:'xa.enum.ResponseStatus.STATUS_PARTIAL_SUCCESS', tt: 'lbl.ResponseStatus_STATUS_PARTIAL_SUCCESS'}
+	});
+
+	XAEnums.UserSource = mergeParams(XAEnums.UserSource, {
+		USER_APP:{value:0, label:'Application', rbkey:'xa.enum.UserSource.USER_APP', tt: 'lbl.UserSource_USER_APP'},
+		USER_GOOGLE:{value:1, label:'Google', rbkey:'xa.enum.UserSource.USER_GOOGLE', tt: 'lbl.UserSource_USER_GOOGLE'},
+		USER_FB:{value:2, label:'FaceBook', rbkey:'xa.enum.UserSource.USER_FB', tt: 'lbl.UserSource_USER_FB'}
+	});
+
+	XAEnums.XAAuditType = mergeParams(XAEnums.XAAuditType, {
+		XA_AUDIT_TYPE_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_UNKNOWN', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_UNKNOWN'},
+		XA_AUDIT_TYPE_ALL:{value:1, label:'All', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_ALL', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_ALL'},
+		XA_AUDIT_TYPE_READ:{value:2, label:'Read', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_READ', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_READ'},
+		XA_AUDIT_TYPE_WRITE:{value:3, label:'Write', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_WRITE', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_WRITE'},
+		XA_AUDIT_TYPE_CREATE:{value:4, label:'Create', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_CREATE', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_CREATE'},
+		XA_AUDIT_TYPE_DELETE:{value:5, label:'Delete', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_DELETE', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_DELETE'},
+		XA_AUDIT_TYPE_LOGIN:{value:6, label:'Login', rbkey:'xa.enum.XAAuditType.XA_AUDIT_TYPE_LOGIN', tt: 'lbl.XAAuditType_XA_AUDIT_TYPE_LOGIN'}
+	});
+
+	XAEnums.XAGroupType = mergeParams(XAEnums.XAGroupType, {
+		XA_GROUP_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.XAGroupType.XA_GROUP_UNKNOWN', tt: 'lbl.XAGroupType_XA_GROUP_UNKNOWN'},
+		XA_GROUP_USER:{value:1, label:'User', rbkey:'xa.enum.XAGroupType.XA_GROUP_USER', tt: 'lbl.XAGroupType_XA_GROUP_USER'},
+		XA_GROUP_GROUP:{value:2, label:'Group', rbkey:'xa.enum.XAGroupType.XA_GROUP_GROUP', tt: 'lbl.XAGroupType_XA_GROUP_GROUP'},
+		XA_GROUP_ROLE:{value:3, label:'Role', rbkey:'xa.enum.XAGroupType.XA_GROUP_ROLE', tt: 'lbl.XAGroupType_XA_GROUP_ROLE'}
+	});
+
+	XAEnums.XAPermForType = mergeParams(XAEnums.XAPermForType, {
+		XA_PERM_FOR_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.XAPermForType.XA_PERM_FOR_UNKNOWN', tt: 'lbl.XAPermForType_XA_PERM_FOR_UNKNOWN'},
+		XA_PERM_FOR_USER:{value:1, label:'Permission for Users', rbkey:'xa.enum.XAPermForType.XA_PERM_FOR_USER', tt: 'lbl.XAPermForType_XA_PERM_FOR_USER'},
+		XA_PERM_FOR_GROUP:{value:2, label:'Permission for Groups', rbkey:'xa.enum.XAPermForType.XA_PERM_FOR_GROUP', tt: 'lbl.XAPermForType_XA_PERM_FOR_GROUP'}
+	});
+
+	XAEnums.XAPermType = mergeParams(XAEnums.XAPermType, {
+		XA_PERM_TYPE_UNKNOWN:{value:0, label:'Unknown', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_UNKNOWN', tt: 'lbl.XAPermType_XA_PERM_TYPE_UNKNOWN'},
+		XA_PERM_TYPE_RESET:{value:1, label:'Reset', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_RESET', tt: 'lbl.XAPermType_XA_PERM_TYPE_RESET'},
+		XA_PERM_TYPE_READ:{value:2, label:'Read', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_READ', tt: 'lbl.XAPermType_XA_PERM_TYPE_READ'},
+		XA_PERM_TYPE_WRITE:{value:3, label:'Write', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_WRITE', tt: 'lbl.XAPermType_XA_PERM_TYPE_WRITE'},
+		XA_PERM_TYPE_CREATE:{value:4, label:'Create', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_CREATE', tt: 'lbl.XAPermType_XA_PERM_TYPE_CREATE'},
+		XA_PERM_TYPE_DELETE:{value:5, label:'Delete', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_DELETE', tt: 'lbl.XAPermType_XA_PERM_TYPE_DELETE'},
+		XA_PERM_TYPE_ADMIN:{value:6, label:'Admin', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ADMIN', tt: 'lbl.XAPermType_XA_PERM_TYPE_ADMIN'},
+		XA_PERM_TYPE_OBFUSCATE:{value:7, label:'Obfuscate', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_OBFUSCATE', tt: 'lbl.XAPermType_XA_PERM_TYPE_OBFUSCATE'},
+		XA_PERM_TYPE_MASK:{value:8, label:'Mask', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_MASK', tt: 'lbl.XAPermType_XA_PERM_TYPE_MASK'},
+		XA_PERM_TYPE_EXECUTE:{value:9, label:'Execute', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_EXECUTE', tt: 'lbl.XAPermType_XA_PERM_TYPE_EXECUTE'},
+		XA_PERM_TYPE_SELECT:{value:10, label:'Select', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_SELECT', tt: 'lbl.XAPermType_XA_PERM_TYPE_SELECT'},
+		XA_PERM_TYPE_UPDATE:{value:11, label:'Update', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_UPDATE', tt: 'lbl.XAPermType_XA_PERM_TYPE_UPDATE'},
+		XA_PERM_TYPE_DROP:{value:12, label:'Drop', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_DROP', tt: 'lbl.XAPermType_XA_PERM_TYPE_DROP'},
+		XA_PERM_TYPE_ALTER:{value:13, label:'Alter', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALTER', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALTER'},
+		XA_PERM_TYPE_INDEX:{value:14, label:'Index', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_INDEX', tt: 'lbl.XAPermType_XA_PERM_TYPE_INDEX'},
+		XA_PERM_TYPE_LOCK:{value:15, label:'Lock', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_LOCK', tt: 'lbl.XAPermType_XA_PERM_TYPE_LOCK'},
+		XA_PERM_TYPE_ALL:{value:16, label:'All', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALL', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALL'},
+		XA_PERM_TYPE_ALLOW:{value:17, label:'Allow', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_SUBMIT_TOPOLOGY:{value:18, label:'Submit Topology', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_FILE_UPLOAD:{value:19, label:'File Upload', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_GET_NIMBUS:{value:20, label:'Get Nimbus Conf', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_GET_CLUSTER_INFO:{value:21, label:'Get Cluster Info', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_FILE_DOWNLOAD:{value:22, label:'File Download', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_KILL_TOPOLOGY:{value:23, label:'Kill Topology', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_REBALANCE:{value:24, label:'Rebalance', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_ACTIVATE:{value:25, label:'Activate', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_DEACTIVATE:{value:26, label:'Deactivate', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_GET_TOPOLOGY_CONF:{value:27, label:'Get Topology Conf', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_GET_TOPOLOGY:{value:28, label:'Get Topology', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_GET_USER_TOPOLOGY:{value:29, label:'Get User Topology', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_GET_TOPOLOGY_INFO:{value:30, label:'Get Topology Info', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL:{value:31, label:'Upload New Credential', rbkey:'xa.enum.XAPermType.XA_PERM_TYPE_ALLOW', tt: 'lbl.XAPermType_XA_PERM_TYPE_ALLOW'},
+		
+        
+	});
+
+	return XAEnums;
+});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAGlobals.js b/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
new file mode 100644
index 0000000..9e26fac
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2014 XASecure
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * XASecure. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with XASecure.
+ */
+
+define(function(require){
+	'use strict';
+	
+	var XAGlobals = {};
+	
+	XAGlobals.settings = {};
+	XAGlobals.settings.PAGE_SIZE = 25;
+	XAGlobals.settings.AUDIT_REPORT_POLLING = 100000;
+	XAGlobals.settings.uploadDefaultOpts = {
+		disableImageResize: false,
+		maxFileSize: 5000000,
+		autoUpload : false
+		//maxNumberOfFiles : 2
+	};
+	XAGlobals.settings.MAX_VALUE = 2147483647;
+
+	XAGlobals.keys = {};
+	XAGlobals.keys.ENTER_KEY = 13;
+	XAGlobals.keys.ESC_KEY = 27;
+
+	//XAGlobals.baseURL = '../';
+	XAGlobals.baseURL = 'service/';
+
+	XAGlobals.version = 0;//0 : production version 1: any other
+	XAGlobals.AppTabs = {
+			Dashboard 			: { value:1, valStr: 'Dashboard'},
+			PolicyManager		: { value:2, valStr: 'Policy'},
+			Users 				: { value:3, valStr: 'Users'},
+//			Reports 			: { value:4, valStr: 'Reports'},
+			Config 				: { value:5, valStr: 'Config'},
+			Assets				: { value:6, valStr: 'Assets'},
+			Analytics			: { value:7, valStr: 'Analytics'},
+			Audit				: { value:8, valStr: 'Analytics'},
+			None				: { value:9, valStr: 'None'}
+		};
+
+	XAGlobals.BooleanValue = {
+		BOOL_TRUE:{value:"true", label:'True'},
+		BOOL_FALSE:{value:"false", label:'False'}
+	};
+	XAGlobals.hardcoded = {};
+	XAGlobals.hardcoded.HDFSAssetId = 1;
+	XAGlobals.hardcoded.HBaseAssetId = 2;
+	XAGlobals.hardcoded.HiveAssetId = 3;
+	
+	return XAGlobals;
+});

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/7defc061/security-admin/src/main/webapp/scripts/utils/XALangSupport.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XALangSupport.js b/security-admin/src/main/webapp/scripts/utils/XALangSupport.js
new file mode 100644
index 0000000..0750a26
--- /dev/null
+++ b/security-admin/src/main/webapp/scripts/utils/XALangSupport.js
@@ -0,0 +1,132 @@
+/**
+ * 
+ * Loads different languages as required.Uses Globalize plugin   
+ */
+
+define(['require','modules/Vent','globalize','modules/globalize/message/en'],function(require,vent){
+
+    var localization ={};
+
+    function setCulture(culture){
+        if(typeof culture !== 'undefined'){
+            localization.culture =culture;
+        }else{
+            localization.culture ="en";
+        }
+        Globalize.culture(localization.culture);
+    }
+
+	localization.setDefaultCulture = function(){
+		setCulture();
+	}
+    localization.tt = function(label){
+        var ret = label;
+  
+        var str = localization.localize(label, localization.culture);
+        if(typeof str !== 'undefined'){
+        	return str;
+        }
+        
+        if(localization.culture !== 'en' ){
+        	if(typeof localization.culture !== 'undefined')
+        		ret = (typeof localization.localize(label,"en") === 'undefined') ? label : localization.localize(label,"en");
+        	else{
+        		 ret = localization.localize(label,"en");
+        	}
+        }
+        return ret;
+    },
+    localization.localize = function(key , culture){
+    	return localization.byString(Globalize.findClosestCulture( culture ).messages, key ) || Globalize.cultures[ "default" ].messages[ key ];
+    }
+    
+    localization.byString = function(o, s) {
+        s = s.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
+        s = s.replace(/^\./, '');           // strip a leading dot
+        var a = s.split('.');
+        while (a.length) {
+            var n = a.shift();
+            if (n in o) {
+                o = o[n];
+            } else {
+                return;
+            }
+        }
+        return o;
+    }
+    
+    localization.getMonthsAbbr = function(){
+		return Globalize.culture().calendars.standard.months.namesAbbr;
+    }
+
+    localization.getDaysOfWeek = function(label){
+		return Globalize.culture().calendars.standard.days.namesAbbr;
+    }
+
+    localization.chooseCulture = function(culture){
+		var dfd = $.Deferred();
+		dfd.done(function(validationMessages){
+			require([ 'validationEngine'],function(){
+				setCulture(culture);
+				validationMessages.setupMessages();
+				vent.trigger('Layouts:rerender');
+			});
+		});
+        switch(culture){
+            case "pt-BR" : 
+                 require(['gblMessages/message/pt-BR'], function() {
+					 require([ 'validationEngineEn' ],function(validationMessages){
+						 dfd.resolve(validationMessages);
+						 console.log('Language Changed to pt-BR');
+					 });
+					 $.fn.datepicker.dates['pt-BR'] = {
+								days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
+								daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
+								daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
+								months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
+								monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
+								today: "Hoje",
+								clear: "Limpar"
+					};
+					bootbox.setLocale('pt-BR'); 
+                });
+                break;
+			case "es" : 
+                 require(['gblMessages/message/es'], function() {
+					 require([ 'validationEngineEn' ],function(validationMessages){
+						 dfd.resolve(validationMessages);
+						 console.log('Language Changed to es');
+					 });
+					 $.fn.datepicker.dates['es'] = {
+								days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"],
+								daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"],
+								daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"],
+								months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
+								monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
+								today: "Hoy"
+					};
+					bootbox.setLocale('es'); 
+                });
+                break;
+            default : 
+                 require(['gblMessages/message/en'], function() {
+					 require([ 'validationEngineEn' ],function(validationMessages){
+						 dfd.resolve(validationMessages);
+						 console.log('Language Changed to en');
+					 });
+					 bootbox.setLocale('en');
+                });
+                break;
+        }
+    }
+    
+    localization.formatDate = function(val,format){
+    	if(!val) return "";
+		var XAUtil = require('utils/XAUtils');
+		var valDate = XAUtil.DBToDateObj(val);
+    	return Globalize.format( valDate,format,localization.culture);
+    }
+    
+	//window.localization = localization;
+    return localization;
+})


Mime
View raw message