http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/286acf6d/security-admin/src/main/webapp/scripts/views/hdfs/HDFSTableLayout.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/hdfs/HDFSTableLayout.js b/security-admin/src/main/webapp/scripts/views/hdfs/HDFSTableLayout.js deleted file mode 100644 index 8bb2abc..0000000 --- a/security-admin/src/main/webapp/scripts/views/hdfs/HDFSTableLayout.js +++ /dev/null @@ -1,402 +0,0 @@ -/* - * 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(function(require){ - 'use strict'; - - var Backbone = require('backbone'); - var XAEnums = require('utils/XAEnums'); - var XALinks = require('modules/XALinks'); - var XAGlobals = require('utils/XAGlobals'); - var SessionMgr = require('mgrs/SessionMgr'); - var XAUtil = require('utils/XAUtils'); - - var XABackgrid = require('views/common/XABackgrid'); - var XATableLayout = require('views/common/XATableLayout'); - var localization = require('utils/XALangSupport'); - var vFolderInfo = require('views/folders/FolderInfo'); - var HdfstablelayoutTmpl = require('hbs!tmpl/hdfs/HDFSTableLayout_tmpl'); - - require('backgrid-filter'); - require('backgrid-paginator'); - require('bootbox'); - - var HDFSTableLayout = Backbone.Marionette.Layout.extend( - /** @lends HDFSTableLayout */ - { - _viewName : 'HDFSTableLayout', - - template: HdfstablelayoutTmpl, - - templateHelpers : function(){ - return { - isSysAdmin : this.isSysAdmin, - assetId : this.assetModel.id, - assetModel : this.assetModel, - version : XAGlobals.version - }; - }, - - breadCrumbs : function(){ - return [XALinks.get('RepositoryManager'),XALinks.get('ManagePolicies',{model : this.assetModel})]; - }, - - /** Layout sub regions */ - regions: { - 'rTableList' : 'div[data-id="r_hdfstable"]', - 'rFolderInfo' : '#folderDetail' - }, - - // /** ui selector cache */ - ui: { - 'btnExport' : 'a[data-js="export"]', - 'btnDeletePolicy' : '[data-name="deletePolicy"]', - 'btnShowMore' : '[data-id="showMore"]', - 'btnShowLess' : '[data-id="showLess"]', - 'visualSearch' : '.visual_search' - }, - - /** ui events hash */ - events: function() { - var events = {}; - events['click ' + this.ui.btnExport] = 'onExport'; - events['click ' + this.ui.btnDeletePolicy] = 'onDelete'; - events['click ' + this.ui.btnShowMore] = 'onShowMore'; - events['click ' + this.ui.btnShowLess] = 'onShowLess'; - - return events; - }, - - /** - * intialize a new HDFSTableLayout Layout - * @constructs - */ - initialize: function(options) { - console.log("initialized a HDFSTableLayout Layout"); - - _.extend(this, _.pick(options,'assetModel')); - - this.collection.extraSearchParams = { -// resourceType : XAEnums.AssetType.ASSET_HDFS.value, - assetId : this.assetModel.id - }; - this.bindEvents(); - this.isSysAdmin = SessionMgr.isSystemAdmin(); - }, - - /** all events binding here */ - bindEvents : function(){ - //this.listenTo(this.collection, "remove", this.render, this); - /*this.listenTo(this.model, "change:foo", this.modelChanged, this);*/ - /*this.listenTo(communicator.vent,'someView:someEvent', this.someEventHandler, this)'*/ - //this.listenTo(this.collection, "sync", this.render, this); - // - }, - - /** on render callback */ - onRender: function() { - this.initializePlugins(); - this.addVisualSearch(); - this.renderTable(); - XAUtil.highlightDisabledPolicy(this); - }, - - /** all post render plugin initialization */ - initializePlugins: function(){ - }, - renderTable : function(){ - var that = this; - /*var TableRow = Backgrid.Row.extend({ - events: { - 'click' : 'onClick' - }, - initialize : function(){ - var that = this; - var args = Array.prototype.slice.apply(arguments); - Backgrid.Row.prototype.initialize.apply(this, args); - this.listenTo(this.model, 'model:highlightBackgridRow', function(){ - that.$el.addClass("alert"); - $("html, body").animate({scrollTop: that.$el.position().top},"linear"); - setTimeout(function () { - that.$el.removeClass("alert"); - }, 1500); - }, this); - - }, - onClick: function (e) { - if($(e.toElement).is('.icon-edit,.icon-trash,a,code')) - return; - this.$el.parent('tbody').find('tr').removeClass('tr-active'); - this.$el.toggleClass('tr-active'); - if(that.rFolderInfo){ - $(that.rFolderInfo.el).hide(); - $(that.rFolderInfo.el).html(new vFolderInfo({ - model : this.model - }).render().$el).slideDown(); - } - } - });*/ - - this.rTableList.show(new XATableLayout({ - columns: this.getColumns(), - collection: this.collection, - includeFilter : false, - gridOpts : { -// row: TableRow, - header : XABackgrid, - emptyText : 'No Policies found!' - }, - filterOpts : { - name: ['name'], - placeholder: localization.tt('plcHldr.searchByResourcePath'), - wait: 150 - } - })); - }, - - getColumns : function(){ - var that = this; - var cols = { - policyName : { - cell : "uri", - href: function(model){ - return '#!/hdfs/'+model.get('assetId')+'/policy/' + model.id; - }, - label : localization.tt("lbl.policyName"), - editable: false, - sortable : false - }, - name : { - cell : "html", - label : localization.tt("lbl.resourcePath"), - editable: false, - sortable : false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - return _.isUndefined(rawValue) ? '--': '<span title="'+rawValue+'">'+rawValue+'</span>'; - } - }) - }, - isRecursive:{ - label:localization.tt('lbl.includesAllPathsRecursively'), - cell :"html", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - var status; - _.each(_.toArray(XAEnums.BooleanValue),function(m){ - if(parseInt(rawValue) == m.value){ - status = (m.label == XAEnums.BooleanValue.BOOL_TRUE.label) ? true : false; - } - }); - return status ? '<label class="label label-success">YES</label>' : '<label class="label label">NO</label>'; - } - }), - click : false, - drag : false, - sortable : false - }, - permMapList : { - reName : 'groupName', - cell : Backgrid.HtmlCell.extend({className: 'cellWidth-1'}), - label : localization.tt("lbl.groups"), - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - if(!_.isUndefined(rawValue)) - return XAUtil.showGroups(rawValue); - else - return '--'; - } - }), - editable : false, - sortable : false - }, - auditList : { - label : localization.tt("lbl.auditLogging"), - cell: "html", - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue, model) { - return model.has('auditList') ? '<label class="label label-success">ON</label>' : '<label class="label label">OFF</label>'; - } - }), - click : false, - drag : false, - sortable : false, - editable : false - }, - /* isEncrypt:{ - label:localization.tt("lbl.encrypted"), - cell :"Switch", - editable:false, - // canHeaderFilter : true, - // headerFilterList :[{label : 'ON',value : 1},{label :'OFF' ,value:2}], - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - var status; - _.each(_.toArray(XAEnums.BooleanValue),function(m){ - if(parseInt(rawValue) == m.value){ - status = (m.label == XAEnums.BooleanValue.BOOL_TRUE.label) ? true : false; - return ; - } - }); - //You can use rawValue to custom your html, you can change this value using the name parameter. - return status; - } - }), - click : false, - drag : false, - onText : 'ON', - offText : 'OFF', - sortable : false - },*/ - resourceStatus:{ - label:localization.tt('lbl.status'), - cell :"html", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - var status; - _.each(_.toArray(XAEnums.BooleanValue),function(m){ - if(parseInt(rawValue) == m.value){ - status = (m.label == XAEnums.BooleanValue.BOOL_TRUE.label) ? true : false; - } - }); - return status ? '<label class="label label-success">Enabled</label>' : '<label class="label label-important">Disabled</label>'; - } - }), - click : false, - drag : false, - sortable : false - }, - permissions : { - cell : "html", - label : localization.tt("lbl.action"), - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue,model) { - return '<a href="#!/hdfs/'+model.get('assetId')+'/policy/'+model.id+'" class="btn btn-mini" title="Edit"><i class="icon-edit icon-large" /></a>\ - <a href="javascript:void(0);" data-name ="deletePolicy" data-id="'+model.id+'" class="btn btn-mini btn-danger" title="Delete"><i class="icon-trash icon-large" /></a>'; - //You can use rawValue to custom your html, you can change this value using the name parameter. - } - }), - editable: false, - sortable : false - - } - - }; - return this.collection.constructor.getTableCols(cols, this.collection); - }, - - onExport : function(e){ - - $(e.currentTarget).attr('href', 'service/assets/policyList/'+this.assetModel.get('name')+'?epoch=0'); - }, - onDelete :function(e){ - var that = this; - var VXResource = require('models/VXResource'); - var obj = this.collection.get($(e.currentTarget).data('id')); - var model = new VXResource(obj.attributes); - model.collection = this.collection; - XAUtil.confirmPopup({ - //msg :localize.tt('msg.confirmDelete'), - msg :'Are you sure want to delete ?', - callback : function(){ - XAUtil.blockUI(); - model.destroy({ - success: function(model, response) { - XAUtil.blockUI('unblock'); - that.collection.remove(model.get('id')); - $(that.rFolderInfo.el).hide(); - XAUtil.notifySuccess('Success', localization.tt('msg.policyDeleteMsg')); - if(that.collection.length == 0){ - that.renderTable(); - that.collection.fetch(); - } - }, - error: function (model, response, options) { - XAUtil.blockUI('unblock'); - if ( response && response.responseJSON && response.responseJSON.msgDesc){ - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', 'Error deleting Policy!'); - console.log("error"); - } - }); - } - }); - }, - onShowMore : function(e){ - var id = $(e.currentTarget).attr('policy-group-id'); - this.rTableList.$el.find('[policy-group-id="'+id+'"]').show(); - $('[data-id="showLess"][policy-group-id="'+id+'"]').show(); - $('[data-id="showMore"][policy-group-id="'+id+'"]').hide(); - }, - onShowLess : function(e){ - var id = $(e.currentTarget).attr('policy-group-id'); - this.rTableList.$el.find('[policy-group-id="'+id+'"]').slice(4).hide(); - $('[data-id="showLess"][policy-group-id="'+id+'"]').hide(); - $('[data-id="showMore"][policy-group-id="'+id+'"]').show(); - }, - addVisualSearch : function(){ - var that = this; - var searchOpt = ['Resource Path','Group','Policy Name'];//,'Start Date','End Date','Today']; - var serverAttrName = [{text : "Resource Path", label :"name"}, {text : "Group", label :"groupName"}, - {text : "Policy Name", label :"policyName"}]; - // {text : 'Start Date',label :'startDate'},{text : 'End Date',label :'endDate'}, - // {text : 'Today',label :'today'}]; - - var pluginAttr = { - placeholder :localization.tt('h.searchForPolicy'), - container : this.ui.visualSearch, - query : '', - callbacks : { - valueMatches :function(facet, searchTerm, callback) { - switch (facet) { - case 'Result': - callback(XAUtil.enumToSelectLabelValuePairs(XAEnums.AuthStatus)); - break; - case 'Login Type': - callback(XAUtil.enumToSelectLabelValuePairs(XAEnums.AuthType)); - break; - /*case 'Start Date' : - setTimeout(function () { XAUtil.displayDatepicker(that.ui.visualSearch, callback); }, 0); - break; - case 'End Date' : - setTimeout(function () { XAUtil.displayDatepicker(that.ui.visualSearch, callback); }, 0); - break; - case 'Today' : - var today = Globalize.format(new Date(),"yyyy/mm/dd"); - callback([today]); - break;*/ - } - - } - } - }; - window.vs = XAUtil.addVisualSearch(searchOpt,serverAttrName, this.collection,pluginAttr); - }, - /** on close */ - onClose: function(){ - } - - }); - - return HDFSTableLayout; -});
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/286acf6d/security-admin/src/main/webapp/scripts/views/hive/HivePolicyCreate.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/hive/HivePolicyCreate.js b/security-admin/src/main/webapp/scripts/views/hive/HivePolicyCreate.js deleted file mode 100644 index 899dd3a..0000000 --- a/security-admin/src/main/webapp/scripts/views/hive/HivePolicyCreate.js +++ /dev/null @@ -1,314 +0,0 @@ -/* - * 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(function(require){ - 'use strict'; - - var App = require('App'); - var Backbone = require('backbone'); - var XALinks = require('modules/XALinks'); - - var XAUtil = require('utils/XAUtils'); - var XAEnums = require('utils/XAEnums'); - var localization = require('utils/XALangSupport'); - var VXResourceList = require('collections/VXResourceList'); - - var HivePolicyForm = require('views/hive/HivePolicyForm'); - var HivepolicycreateTmpl = require('hbs!tmpl/hive/HivePolicyCreate_tmpl'); - - var HivePolicyCreate = Backbone.Marionette.Layout.extend( - /** @lends HivePolicyCreate */ - { - _viewName : 'HivePolicyCreate', - - template: HivepolicycreateTmpl, - templateHelpers : function(){ - return { - editPolicy : this.editPolicy - }; - }, - breadCrumbs :function(){ - if(this.model.isNew()) - return [XALinks.get('RepositoryManager'),XALinks.get('ManageHivePolicies',{model : this.assetModel}),XALinks.get('PolicyCreate')]; - else - return [XALinks.get('RepositoryManager'),XALinks.get('ManageHivePolicies',{model : this.assetModel}),XALinks.get('PolicyEdit')]; - } , - /** Layout sub regions */ - regions: { - 'rForm' :'div[data-id="r_form"]' - }, - - /** ui selector cache */ - ui: { - 'btnSave' : '[data-id="save"]', - 'btnCancel' : '[data-id="cancel"]', - 'btnDelete' : '[data-id="delete"]', - 'policyDisabledAlert' : '[data-id="policyDisabledAlert"]' - }, - - /** ui events hash */ - events: function() { - var events = {}; - events['click ' + this.ui.btnSave] = 'onSave'; - events['click ' + this.ui.btnCancel] = 'onCancel'; - events['click ' + this.ui.btnDelete] = 'onDelete'; - return events; - }, - - /** - * intialize a new HivePolicyCreate Layout - * @constructs - */ - initialize: function(options) { - var that = this; - console.log("initialized a HivePolicyCreate Layout"); - - _.extend(this, _.pick(options,'assetModel')); - this.bindEvents(); - this.checkResourceTypeWithWildCard(); - that.form = new HivePolicyForm({ - template : require('hbs!tmpl/hive/HivePolicyForm_tmpl'), - model : this.model, - assetModel : this.assetModel - }); - - this.editPolicy = this.model.has('id') ? true : false; - }, - - /** all events binding here */ - bindEvents : function(){ - /*this.listenTo(this.model, "change:foo", this.modelChanged, this);*/ - /*this.listenTo(communicator.vent,'someView:someEvent', this.someEventHandler, this)'*/ - }, - checkResourceTypeWithWildCard : function(){ - var type = this.model.get('resourceType'); - switch(this.model.get('resourceType')){ - case XAEnums.ResourceType.RESOURCE_DB.value : - if(!_.isEmpty(this.model.get("tables"))){ - if(_.isEqual(this.model.get("tables"),"*")) - type = XAEnums.ResourceType.RESOURCE_TABLE.value; - } - if(!_.isEmpty(this.model.get("udfs"))){ - if(_.isEqual(this.model.get("udfs"),"*")) - type = XAEnums.ResourceType.RESOURCE_UDF.value; - } - break; - case XAEnums.ResourceType.RESOURCE_COLUMN.value : - type = XAEnums.ResourceType.RESOURCE_TABLE.value; - break; - } - this.model.set('resourceType',type); - }, - - /** on render callback */ - onRender: function() { - XAUtil.showAlerForDisabledPolicy(this); - this.rForm.show(this.form); - this.initializePlugins(); - this.rForm.$el.dirtyFields(); - XAUtil.preventNavigation(localization.tt('dialogMsg.preventNavHivePolicyForm'), this.rForm.$el); - }, - - /** all post render plugin initialization */ - initializePlugins: function(){ - }, - popupCallBack : function(msg,validateObj){ - var that = this; - XAUtil.alertPopup({ - msg :msg, - callback : function(){ - // if(validateObj.auditLoggin) - // that.savePolicy(); - } - }); - }, - onSave : function(){ - var that =this, valid = false; - var errors = this.form.commit({validate : false}); - if(! _.isEmpty(errors)){ - return; - } - var validateObj = this.form.formValidation(); - valid = (validateObj.groupSet && validateObj.permSet) || (validateObj.userSet && validateObj.userPerm); - if(!valid){ - - if(validateObj.groupSet && (!validateObj.permSet)){ - this.popupCallBack(localization.tt('msg.addGroupPermission'),validateObj); - }else if((!validateObj.groupSet) && (validateObj.permSet)) { - this.popupCallBack(localization.tt('msg.addGroup'),validateObj); - - }else if(validateObj.userSet && (!validateObj.userPerm)){ - this.popupCallBack(localization.tt('msg.addUserPermission'),validateObj); - }else if((!validateObj.userSet) && (validateObj.userPerm)) { - this.popupCallBack(localization.tt('msg.addUser'),validateObj); - - }else if((!validateObj.auditLoggin) && (!validateObj.groupPermSet)){ - XAUtil.alertPopup({ - msg :localization.tt('msg.yourAuditLogginIsOff'), - callback : function(){ - /*if(!that.model.isNew()){ - that.model.destroy({success: function(model, response) { - XAUtil.notifySuccess('Success', localization.tt('msg.policyDeleteMsg')); - App.appRouter.navigate("#!/hive/"+that.assetModel.id+"/policies",{trigger: true}); - }}); - }else{ - XAUtil.notifyError('Error', localization.tt('msg.policyNotAddedMsg')); - App.appRouter.navigate("#!/hive/"+that.assetModel.id+"/policies",{trigger: true}); - }*/ - } - }); - }else{ - this.savePolicy(); - } - }else{ - if(validateObj.groupSet && (!validateObj.permSet)){ - this.popupCallBack(localization.tt('msg.addGroupPermission'),validateObj); - }else if((!validateObj.groupSet) && (validateObj.permSet)) { - this.popupCallBack(localization.tt('msg.addGroup'),validateObj); - - }else if(validateObj.userSet && (!validateObj.userPerm)){ - this.popupCallBack(localization.tt('msg.addUserPermission'),validateObj); - }else if((!validateObj.userSet) && (validateObj.userPerm)) { - this.popupCallBack(localization.tt('msg.addUser'),validateObj); - }else - this.savePolicy(); - } - - }, - savePolicy : function(){ - var that = this; - this.form.afterCommit(); - this.saveMethod(); - }, - saveMethod : function(){ - var that = this; - XAUtil.blockUI(); - this.model.save({},{ - wait: true, - success: function () { - XAUtil.blockUI('unblock'); - var msg = that.editPolicy ? 'Policy updated successfully' :'Policy created successfully'; - XAUtil.notifySuccess('Success', msg); - XAUtil.allowNavigation(); - if(that.editPolicy){ - App.appRouter.navigate("#!/hive/"+that.assetModel.id+"/policies",{trigger: true}); - return; - } - - App.appRouter.navigate("#!/hive/"+that.assetModel.id+"/policies",{trigger: false}); - - var view = require('views/hive/HiveTableLayout'); - var resourceListForAsset = new VXResourceList([],{ - queryParams : { - 'assetId' : that.assetModel.id - } - }); - - resourceListForAsset.fetch({ - cache : false, - data : { - // 'resourceType':XAEnums.AssetType.ASSET_HIVE.value, - 'assetId' :that.assetModel.id - } - }).done(function(){ - var newColl = resourceListForAsset; - resourceListForAsset.getLastPage({ - cache : false, - data : { - // 'resourceType':XAEnums.AssetType.ASSET_HIVE.value, - 'assetId' :that.assetModel.id - } - }).done(function(){ - var model = newColl.get(that.model.id); - if(model){ - model.trigger("model1:highlightBackgridRow"); - } - }); - App.rContent.show(new view({ - collection : resourceListForAsset, - assetModel : that.assetModel - })); - - }); - - console.log("success"); - }, - error: function (model, response, options) { - XAUtil.blockUI('unblock'); - if ( response && response.responseJSON && response.responseJSON.msgDesc){ - if( response.responseJSON.messageList && response.responseJSON.messageList.length > 0 && !_.isUndefined(response.responseJSON.messageList[0].fieldName)){ - if(response.responseJSON.messageList[0].fieldName == "parentPermission"){ - XAUtil.confirmPopup({ - msg :response.responseJSON.msgDesc, - callback : function(){ - that.model.set('checkParentPermission',XAEnums.BooleanValue.BOOL_FALSE.value); - that.saveMethod(); - } - }); - }else - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', 'Error creating Policy!'); - console.log("error"); - } - }); - }, - onDelete :function(){ - var that = this; - XAUtil.confirmPopup({ - //msg :localize.tt('msg.confirmDelete'), - msg :'Are you sure want to delete ?', - callback : function(){ - XAUtil.blockUI(); - that.model.destroy({ - success: function(model, response) { - XAUtil.blockUI('unblock'); - XAUtil.allowNavigation(); - XAUtil.notifySuccess('Success', localization.tt('msg.policyDeleteMsg')); - App.appRouter.navigate("#!/hive/"+that.assetModel.id+"/policies",{trigger: true}); - }, - error: function (model, response, options) { - XAUtil.blockUI('unblock'); - if ( response && response.responseJSON && response.responseJSON.msgDesc){ - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', 'Error deleting Policy!'); - console.log("error"); - } - }); - } - }); - }, - onCancel : function(){ - XAUtil.allowNavigation(); - App.appRouter.navigate("#!/hive/"+this.assetModel.id+"/policies",{trigger: true}); - }, - - /** on close */ - onClose: function(){ - XAUtil.allowNavigation(); - } - - }); - - return HivePolicyCreate; -}); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/286acf6d/security-admin/src/main/webapp/scripts/views/hive/HivePolicyForm.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/hive/HivePolicyForm.js b/security-admin/src/main/webapp/scripts/views/hive/HivePolicyForm.js deleted file mode 100644 index c1ac9d9..0000000 --- a/security-admin/src/main/webapp/scripts/views/hive/HivePolicyForm.js +++ /dev/null @@ -1,774 +0,0 @@ -/* - * 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(function(require){ - 'use strict'; - - var Backbone = require('backbone'); - - var XAEnums = require('utils/XAEnums'); - var localization = require('utils/XALangSupport'); - var XAUtil = require('utils/XAUtils'); - - var VXPermMapList = require('collections/VXPermMapList'); - var VXGroupList = require('collections/VXGroupList'); - var VXAuditMapList = require('collections/VXAuditMapList'); - var VXAuditMap = require('models/VXAuditMap'); - var VXPermMap = require('models/VXPermMap'); - var VXUserList = require('collections/VXUserList'); - var FormInputItemList = require('views/common/FormInputItemList'); - var UserPermissionList = require('views/common/UserPermissionList'); - - - - require('Backbone.BootstrapModal'); - require('backbone-forms.list'); - require('backbone-forms.templates'); - require('backbone-forms'); - - var HivePolicyForm = Backbone.Form.extend( - /** @lends PolicyForm */ - { - _viewName : 'PolicyForm', - - type : { - DATABASE : 1, - TABLE : 2, - COLUMN : 3, - VIEW : 4, - UDF : 5 - }, - - /** - * intialize a new PolicyForm Form View - * @constructs - */ - initialize: function(options) { - console.log("initialized a PolicyForm Form View"); - Backbone.Form.prototype.initialize.call(this, options); - - _.extend(this, _.pick(options, 'assetModel')); - this.initializeCollection(); - this.bindEvents(); - }, - - /** all events binding here */ - bindEvents : function(){ - this.on('_vAuditListToggle:change', function(form, fieldEditor){ - this.evAuditChange(form, fieldEditor); - }); - this.on('resourceType:change', function(form, fieldEditor){ - this.evResourceTypeChange(form, fieldEditor); - }); - this.on('resourceStatus:change', function(form, fieldEditor){ - this.evResourceStatusChange(form, fieldEditor); - }); - this.on('isTableInclude:change', function(form, fieldEditor){ - this.isTableInclude(form, fieldEditor); - }); - this.on('isColumnInclude:change', function(form, fieldEditor){ - this.isColumnInclude(form, fieldEditor); - }); - }, - initializeCollection: function(){ - this.permMapList = this.model.isNew() ? new VXPermMapList() : this.model.get('permMapList'); - this.auditList = this.model.isNew() ? new VXAuditMapList() : this.model.get('auditList'); - - - /*If the model passed to the fn is new return an empty collection - * otherwise return a collection that has models like - * { - * groupId : 5, - * permissionList : [4,3] - * } - * The formInputList will be passed to the forminputitemlist view. - */ - - this.formInputList = XAUtil.makeCollForGroupPermission(this.model); - this.userPermInputList = XAUtil.makeCollForUserPermission(this.model); - - }, - /** fields for the form - */ - // fields: ['name', 'description', '_vAuditListToggle', 'isEncrypt','isRecursive'], - schema :function(){ - var that = this; - //var plugginAttr = this.getPlugginAttr(true); - - return { - policyName : { - type : 'Text', - title : localization.tt("lbl.policyName") , -// validators : [{'type' :'required'}] - editorAttrs :{ maxlength: 255} - }, - databases : { - type : 'Select2Remote', - title : localization.tt("lbl.selectDatabaseName")+' *', - editorAttrs :{'data-placeholder': 'Select Databases'}, - validators : ['required'],//,{type:'regexp',regexp:/^[a-zA-Z*?][a-zA-Z0-9_'&-/\$]*[A-Za-z0-9]*$/i,message :localization.tt('validationMessages.enterValidName')}], - pluginAttr : this.getPlugginAttr(true,this.type.DATABASE), - options : function(callback, editor){ - callback(); - }, - onFocusOpen : true - - - }, - resourceType : { - type : 'Select', - title : 'Select Permission for [Tables|Views|UDF]', - // validators : ['required'], - editorAttrs :{disabled :'true','placeholder': 'Select Tables', 'class':'btn dropdown-toggle', - 'style': 'width: 89px;height: 29px;font-family: Tahoma;font-size: 14px;border-radius: 10px;border: 2px #cccccc solid;'}, - options : function(callback, editor){ - var permFor =['RESOURCE_TABLE','RESOURCE_UDF']; - var temp = _.filter(XAEnums.ResourceType,function(val,key){ - if(_.contains(permFor,key)) - return true; - }); - temp = _.sortBy(XAUtil.enumToSelectPairs(temp), function(n){ return !n.val; }); - callback(temp); - } - - }, - tables : { - type : 'Select2Remote', - title : localization.tt("lbl.permForTable"), - editorAttrs :{'data-placeholder': 'Select Tables', disabled :'disabled'}, - // fieldAttrs :{'style' :'visibility:hidden'}, - //validators : [{type:'regexp',regexp:/^[a-zA-Z*?][a-zA-Z0-9_'&-/\$]*[A-Za-z0-9]*$/i,message :localization.tt('validationMessages.enterValidName')}], - pluginAttr : this.getPlugginAttr(true,this.type.TABLE), - options : function(callback, editor){ - callback(); - } - }, - isTableInclude : { - type : 'Switch', - switchOn : true, - onText : 'include', - offText : 'exclude', - width : 89, - height : 22 - //fieldAttrs : {style : 'display:none;'} - }, - udfs : { -// type : 'Text', - type : 'Select2Remote', - title : localization.tt("lbl.permForUdf"), - editorAttrs :{'placeholder': 'Enter UDF Name'}, - // fieldAttrs :{'style' :'visibility:hidden'}, - //validators : [{type:'regexp',regexp:/^[a-zA-Z*?][a-zA-Z0-9_'&-/\$]*[A-Za-z0-9]*$/i,message :localization.tt('validationMessages.enterValidName')}], - pluginAttr : this.getPlugginAttr(false,this.type.UDF), - /*options : function(callback, editor){ - callback(); - },*/ - }, - columns : { - type : 'Select2Remote', - title : localization.tt("lbl.selectColumnName"), - //validators : [{type:'regexp',regexp:/^[a-zA-Z*?][a-zA-Z0-9_'&-/\$]*[A-Za-z0-9]*$/i,message :localization.tt('validationMessages.enterValidName')}], - editorAttrs :{'data-placeholder': 'Select Columns','disabled' :'disabled'}, - //fieldAttrs :{'disabled' :'disabled',}, - pluginAttr : this.getPlugginAttr(true,this.type.COLUMN) - }, - isColumnInclude : { - type : 'Switch', - switchOn : true, - onText : 'include', - offText : 'exclude', - width : 89, - height : 22 - - //fieldAttrs : {style : 'display:none;'} - }, - _vAuditListToggle : { - type : 'Switch', - title : localization.tt("lbl.auditLogging"), - listType : 'VNameValue', - switchOn : true - }, - isEncrypt : { - type : 'Switch', - title : localization.tt("lbl.encrypted"), - switchOn : false, - fieldAttrs : {style : 'display:none;'} - }, - permMapList : { - getValue : function(){ - console.log(this); - } - }, - resourceStatus : { - type : 'Switch', - title : localization.tt("lbl.policyStatus"), - onText : 'enabled', - offText : 'disabled', - width : 89, - height : 22, - switchOn : true - }, - description : { - type : 'TextArea', - title : localization.tt("lbl.description"), - // validators : [/^[A-Za-z ,.'-]+$/i], - template :_.template('<div class="altField" data-editor></div>') - } - }; - }, - - evAuditChange : function(form, fieldEditor){ - XAUtil.checkDirtyFieldForToggle(fieldEditor); - if(fieldEditor.getValue() == 1){ - this.model.set('auditList', new VXAuditMapList(new VXAuditMap({ - 'auditType' : XAEnums.XAAuditType.XA_AUDIT_TYPE_ALL.value,//fieldEditor.getValue()// - 'resourceId' :this.model.get('id') - - }))); - } else { - var validation = this.formValidation(); - if(validation.groupPermSet || validation.isUsers) - this.model.unset('auditList'); - else{ - XAUtil.alertPopup({ - msg :localization.tt("msg.policyNotHavingPerm"), - callback : function(){ - fieldEditor.setValue('ON'); - } - }); - } - } - console.log(fieldEditor); - }, - evResourceStatusChange : function(form, fieldEditor){ - XAUtil.checkDirtyFieldForToggle(fieldEditor); - }, - isTableInclude :function(form, fieldEditor){ - if(fieldEditor.getValue() == XAEnums.BooleanValue.BOOL_TRUE.value) - form.fields.tables.editor.$el.siblings('.select2-container').find('ul').removeClass('textFieldWarning'); - else - form.fields.tables.editor.$el.siblings('.select2-container').find('ul').addClass('textFieldWarning'); - }, - isColumnInclude :function(form, fieldEditor){ - if(fieldEditor.getValue() == XAEnums.BooleanValue.BOOL_TRUE.value) - form.fields.columns.editor.$el.siblings('.select2-container').find('ul').removeClass('textFieldWarning'); - else - form.fields.columns.editor.$el.siblings('.select2-container').find('ul').addClass('textFieldWarning'); - }, - evResourceTypeChange : function(form, fieldEditor){ - var that = this; - form.$el.find('[data-editors="tables"]').hide(); - //form.$el.find('[data-fields="views"]').hide(); - form.$el.find('[data-editors="udfs"]').hide(); - form.$el.find('[data-fields="columns"]').hide(); - form.$el.find('[data-editors="isTableInclude"]').hide(); - form.$el.find('[data-editors="isColumnInclude"]').hide(); - this.fields.tables.editor.$el.select2('val',''); - //this.fields.views.editor.$el.select2('val',''); - this.fields.udfs.editor.$el.val(''); - this.fields.columns.editor.$el.select2('val',''); - this.showFields(fieldEditor); - console.log(fieldEditor); - XAUtil.checkDirtyFieldForToggle(fieldEditor); - }, - showFields : function(fieldEditor){ - - if(parseInt(fieldEditor.getValue()) == XAEnums.ResourceType.RESOURCE_TABLE.value){ - this.$el.find('[data-editors="tables"]').show(); - this.$el.find('[data-fields="columns"]').css('display','inline-block'); - this.$el.find('[data-editors="isTableInclude"]').css('display','inline-block'); - this.$el.find('[data-editors="isColumnInclude"]').css('display','inline-block'); - if(!this.fields.resourceType.editor.$el.is(':disabled')) - this.fields.tables.editor.$el.select2('enable',true); - this.fields.tables.editor.$el.val(this.fields.tables.getValue()).trigger('change'); - //this.fields.columns.editor.$el.val(this.fields.columns.getValue()).trigger('change'); - } - if(parseInt(fieldEditor.getValue()) == XAEnums.ResourceType.RESOURCE_UDF.value){ - this.$el.find('[data-editors="tables"]').hide(); - this.$el.find('[data-fields="columns"]').hide(); - this.$el.find('[data-editors="isTableInclude"]').hide(); - this.$el.find('[data-editors="isColumnInclude"]').hide(); - this.$el.find('[data-editors="udfs"]').show(); - if(!this.fields.resourceType.editor.$el.is(':disabled')) - this.fields.udfs.editor.$el.prop('disabled',false); - } - }, - /** on render callback */ - render: function(options) { - Backbone.Form.prototype.render.call(this, options); - - - this.initializePlugins(); - this.renderSelectTagsFields(); - this.renderCustomFields(); - if(!this.model.isNew()) - this.setUpForm(); - else{ - this.fields.resourceType.editor.$el.find('option:first').prop("selected",true); - } - if(this.model.isNew() && this.fields._vAuditListToggle.editor.getValue() == 1){ - this.model.set('auditList', new VXAuditMapList(new VXAuditMap({ - 'auditType' : XAEnums.XAAuditType.XA_AUDIT_TYPE_ALL.value,//fieldEditor.getValue()// - 'resourceId' :this.model.get('id') - - }))); - } - }, - setUpForm : function(){ - var that = this; - this.setUpSwitches(); - if(!_.isEmpty(that.fields.resourceType.getValue()) || !_.isEmpty(this.fields.databases.editor.$el.val())){ - //that.fields.resourceType.editor.$el.val(that.fields.resourceType.getValue()).trigger('change'); - - this.fields.resourceType.editor.$el.prop('disabled',false); - this.showFields(that.fields.resourceType.editor); - } - if(!_.isEmpty(this.fields.databases.editor.$el.val())) - this.fields.tables.editor.$el.prop('disabled',false); - if((!_.isEmpty(this.fields.tables.editor.$el.val()))){ - this.fields.columns.editor.$el.removeAttr('disabled'); - } - if((!_.isEmpty(this.fields.tables.editor.$el.val()))){ - this.fields.tables.editor.$el.siblings('.select2-container').find('ul').addClass('textFieldWarning'); - } - if((!_.isEmpty(this.fields.columns.editor.$el.val()))){ - this.fields.columns.editor.$el.siblings('.select2-container').find('ul').addClass('textFieldWarning'); - } - }, - setUpSwitches :function(){ - var that = this; - var encryptStatus = false,auditStatus = false; - auditStatus = this.model.has('auditList') ? true : false; - this.fields._vAuditListToggle.editor.setValue(auditStatus); - - _.each(_.toArray(XAEnums.BooleanValue),function(m){ - if(parseInt(that.model.get('isEncrypt')) == m.value) - encryptStatus = (m.label == XAEnums.BooleanValue.BOOL_TRUE.label) ? true : false; - }); - this.fields.isEncrypt.editor.setValue(encryptStatus); - - if(parseInt(this.model.get('tableType')) == XAEnums.PolicyType.POLICY_EXCLUSION.value){ - this.fields.isTableInclude.editor.setValue(false); - } - if(parseInt(this.model.get('columnType')) == XAEnums.PolicyType.POLICY_EXCLUSION.value) - this.fields.isColumnInclude.editor.setValue(false); - - if(parseInt(this.model.get('resourceStatus')) != XAEnums.BooleanValue.BOOL_TRUE.value) - this.fields.resourceStatus.editor.setValue(false); - - - }, - renderSelectTagsFields :function(){ - var that = this; - this.fields.databases.editor.$el.on('change',function(e){ - console.log('change on database Name'); - that.checkMultiselectDirtyField(e, that.type.DATABASE); - if(!_.isEmpty(e.currentTarget.value)){ - that.fields.resourceType.editor.$el.attr('disabled',false); - that.fields.tables.editor.$el.attr('disabled',false); - that.fields.tables.editor.$el.select2('enable',true); - that.fields.udfs.editor.$el.prop('disabled',false); - if((that.fields.tables.editor.$el.select2('val').length ) > 0 ) //|| that.fields.views.editor.$el.select2('val').length - that.fields.columns.editor.$el.select2('enable',true); - } - else{ - that.fields.resourceType.editor.$el.attr('disabled',true); - that.fields.tables.editor.$el.select2('enable',false); - that.fields.udfs.editor.$el.prop('disabled',true); - that.fields.columns.editor.$el.select2('enable',false); - } - - }); - this.fields.tables.editor.$el.on('change',function(e){ - console.log('change on table Name'); - that.checkMultiselectDirtyField(e, that.type.TABLE); - if((!_.isEmpty(e.currentTarget.value))){ - that.fields.columns.editor.$el.select2('enable',true); - - } - else{ - that.fields.columns.editor.$el.select2('enable',false); - } - - }); - this.fields.columns.editor.$el.on('change',function(e){ - console.log('change on Column Name'); - that.checkMultiselectDirtyField(e, that.type.COLUMN); - }); - - }, - getDataParams : function(type, term){ - var dataParams = { - // dataSourceName : 'hadoopdev', - dataSourceName : this.assetModel.get('name') - // databaseName: term, - }; - if (type == this.type.DATABASE && this.fields) { - dataParams.databaseName = term; - } - if (type == this.type.TABLE && this.fields.databases) { - dataParams.databaseName = this.fields.databases.editor.$el.select2('data')[0].text; - dataParams.resourceType = this.fields.resourceType.getValue(); - dataParams.tableName = term; - } - if (type == this.type.COLUMN && this.fields.databases) { - dataParams.databaseName = this.fields.databases.editor.$el.select2('data')[0].text; - dataParams.resourceType = this.fields.resourceType.getValue(); - if(parseInt(this.fields.resourceType.getValue()) == XAEnums.ResourceType.RESOURCE_TABLE.value && this.fields.tables) - dataParams.tableName = this.fields.tables.editor.$el.select2('data')[0].text; - dataParams.columnName = term; - } - return dataParams; - }, - getPlugginAttr :function(autocomplete, searchType){ - var that =this; - var type = searchType; - if(!autocomplete) - return{tags : true,width :'220px',multiple: true,minimumInputLength: 1}; - else { - - - return { - closeOnSelect : true, - //placeholder : 'Select User', - tags:true, - multiple: true, - minimumInputLength: 1, - width :'220px', - tokenSeparators: [",", " "], - initSelection : function (element, callback) { - var data = []; - $(element.val().split(",")).each(function () { - data.push({id: this, text: this}); - }); - callback(data); - }, - createSearchChoice: function(term, data) { - if ($(data).filter(function() { - return this.text.localeCompare(term) === 0; - }).length === 0) { - return { - id : term, - text: term - }; - } - }, - /*query: function (query) { - var url = "service/assets/hive/resources"; - var data = _.extend(that.getDataParams(type, query.term)); - //var results = [ {id: query.term, path: query.term}]; - - $.get(url, data, function (resp) { - var serverRes = []; - if(resp.resultSize){ - serverRes = resp.vXStrings.map(function(m, i){ return {id : m.text, path: m.text}; }); - } - query.callback({results: serverRes}); - }, 'json'); - - //query.callback({results: results}); - },*/ - - ajax: { - url: "service/assets/hive/resources", - dataType: 'json', - params : { - timeout: 3000 - }, - cache: false, - data: function (term, page) { - return _.extend(that.getDataParams(type, term)); - - }, - results: function (data, page) { - var results = []; - if(!_.isUndefined(data)){ - if(data.resultSize != "0"){ - results = data.vXStrings.map(function(m, i){ return {id : m.value, text: m.value}; }); - } - } - return { - results : results - }; - }, - transport: function (options) { - $.ajax(options).error(function() { - console.log("ajax failed"); - this.success({ - resultSize : 0 - }); - }); - /*$.ajax.error(function(data) { - console.log("ajax failed"); - return { - results : [] - }; - });*/ - - } - - }, - formatResult : function(result){ - return result.text; - }, - formatSelection : function(result){ - return result.text; - }, - formatNoMatches : function(term){ - switch (type){ - case that.type.DATABASE :return localization.tt("msg.enterAlteastOneCharactere"); - case that.type.TABLE :return localization.tt("msg.enterAlteastOneCharactere"); - case that.type.COLUMN :return localization.tt("msg.enterAlteastOneCharactere"); - default : return "No Matches found"; - } - } - }; - } - }, - formValidation : function(){ - var groupSet = false,permSet = false,auditStatus= false,encryptStatus= false,groupPermSet = false, - userSet=false,userPerm = false,isUsers =false; - console.log('validation called..'); - var breakFlag =false; - this.formInputList.each(function(m){ - if(m.has('groupId') || m.has('_vPermList')){ - if(! breakFlag){ - groupSet = m.has('groupId') ? true : false ; - if(!m.has('_vPermList')){ - permSet = false; - }else - permSet = true; - if(groupSet && permSet) - groupPermSet = true; - else - breakFlag=true; - } - } - }); - breakFlag = false; - this.userPermInputList.each(function(m){ - if(! breakFlag){ - userSet = m.has('userId') || m.has('userName') ? true : false ;//|| userSet; - if(!m.has('_vPermList')){ - userPerm = false; - }else - userPerm = true; - if(userSet && userPerm) - isUsers = true; - else - breakFlag=true; - } - }); - auditStatus = this.fields._vAuditListToggle.editor.getValue(); - encryptStatus = this.fields.isEncrypt.editor.getValue(); - var auditLoggin = (auditStatus == XAEnums.BooleanValue.BOOL_TRUE.value) ? true : false; - var encrypted = (encryptStatus == XAEnums.BooleanValue.BOOL_TRUE.value) ? true : false; - - return {groupPermSet: groupPermSet , groupSet : groupSet,permSet : permSet,auditLoggin :auditLoggin,encrypted : encrypted, - userSet : userSet,userPerm:userPerm,isUsers:isUsers}; - }, - /** all custom field rendering */ - renderCustomFields: function(){ - var that = this; - this.groupList = new VXGroupList(); - var params = {sortBy : 'name'}; - this.groupList.setPageSize(100,{fetch:false}); - this.groupList.fetch({ - cache :true, - data : params - }).done(function(){ - that.$('[data-customfields="groupPerms"]').html(new FormInputItemList({ - collection : that.formInputList, - groupList : that.groupList, - model : that.model, - policyType : XAEnums.AssetType.ASSET_HIVE.value - - }).render().el); - }); - - this.userList = new VXUserList(); - var params = {sortBy : 'name'}; - this.userList.setPageSize(100,{fetch:false}); - this.userList.fetch({ - cache :true, - data : params - }).done(function(){ - that.$('[data-customfields="userPerms"]').html(new UserPermissionList({ - collection : that.userPermInputList, - model : that.model, - userList : that.userList, - policyType : XAEnums.AssetType.ASSET_HIVE.value - }).render().el); - }); - }, - afterCommit : function(){ - var that = this; - //TODO FIXME remove the hard coding - //this.model.set('assetId', XAGlobals.hardcoded.HiveAssetId); - this.model.set('assetId', this.assetModel.id); - var permMapList = new VXPermMapList(); - this.formInputList.each(function(m){ - if(!_.isUndefined(m.get('groupId'))){ - var uniqueID = _.uniqueId(new Date()+':'); - _.each(m.get('groupId').split(","),function(groupId){ - _.each(m.get('_vPermList'), function(perm){ - var params = { - //groupId: m.get('groupId'), - groupId: groupId, - permFor : XAEnums.XAPermForType.XA_PERM_FOR_GROUP.value, - permType : perm.permType, - permGroup : uniqueID - }; - //TODO FIXME remove the hardcoding - if(parseInt(groupId) == perm.groupId) - params = $.extend(params, {id : perm.id}); - permMapList.add(new VXPermMap(params)); - }, this); - }); - } - }, this); - - this.userPermInputList.each(function(m){ - if(!_.isUndefined(m.get('userId'))){ - var uniqueID = _.uniqueId(new Date()+':'); - _.each(m.get('userId').split(","),function(userId){ - _.each(m.get('_vPermList'), function(perm){ - var params = { - //groupId: m.get('groupId'), - userId: userId, - permFor : XAEnums.XAPermForType.XA_PERM_FOR_USER.value, - permType : perm.permType, - permGroup : uniqueID - }; - if(parseInt(userId) == perm.userId) - params = $.extend(params, {id : perm.id}); - //TODO FIXME remove the hardcoding - permMapList.add(new VXPermMap(params)); - }, this); - }); - } - }, this); - - this.model.set('permMapList', permMapList); - - var resourceType = this.model.get('resourceType'); - var resourceTypeTable = XAEnums.ResourceType.RESOURCE_TABLE.value == resourceType ? true :false; - var resourceTypeUdf = XAEnums.ResourceType.RESOURCE_UDF.value == resourceType ? true :false; - - var columns = _.isEmpty(this.model.get('columns')) ? true : false; - var perm1 = resourceTypeTable && _.isEmpty(this.model.get('tables')) && columns; - var perm3 = resourceTypeUdf && _.isEmpty(this.model.get('udfs')) ; - - if(_.isEmpty(this.model.get('resourceType'))){ - this.model.set('resourceType',XAEnums.ResourceType.RESOURCE_DB.value); - } - else{ - - if(perm1 || perm3){ //if(perm1 || perm2 || perm3){ - this.model.set('resourceType',XAEnums.ResourceType.RESOURCE_DB.value); - this.model.unset('columns'); - this.model.unset('udfs'); - }else{ - if(columns){ - if(resourceTypeTable) - this.model.set('resourceType',XAEnums.ResourceType.RESOURCE_TABLE.value); - else - this.model.set('resourceType',XAEnums.ResourceType.RESOURCE_UDF.value); - }else{ - - if(resourceTypeTable && !_.isEmpty(this.model.get('tables'))) - this.model.set('resourceType',XAEnums.ResourceType.RESOURCE_COLUMN.value); - else{ - this.model.unset('columns'); - this.model.set('resourceType',XAEnums.ResourceType.RESOURCE_DB.value); - } - } - } - } - //Set resourceType as per WildCard operator '*' - this.setResourceTypeAsPerWildCard(); - - if(this.fields.resourceType.getValue() != XAEnums.ResourceType.RESOURCE_UDF.value){ - if(!_.isEmpty(this.model.get('tables'))){ - if(this.fields.isTableInclude.editor.getValue() == XAEnums.BooleanValue.BOOL_TRUE.value) - this.model.set('tableType',XAEnums.PolicyType.POLICY_INCLUSION.value); - else - this.model.set('tableType',XAEnums.PolicyType.POLICY_EXCLUSION.value); - } - if(!_.isEmpty(this.model.get('columns'))){ - if(this.fields.isColumnInclude.editor.getValue() == XAEnums.BooleanValue.BOOL_TRUE.value) - this.model.set('columnType',XAEnums.PolicyType.POLICY_INCLUSION.value); - else - this.model.set('columnType',XAEnums.PolicyType.POLICY_EXCLUSION.value); - } - } - this.model.unset('isTableInclude'); - this.model.unset('isColumnInclude'); - - if(this.model.get('resourceStatus') != XAEnums.BooleanValue.BOOL_TRUE.value){ - this.model.set('resourceStatus', XAEnums.ActiveStatus.STATUS_DISABLED.value); - } - }, - checkMultiselectDirtyField : function(e, type){ - var elem = $(e.currentTarget),columnName='',nameList = [], newNameList = []; - switch(type){ - case 1 :columnName = 'databases';break; - case 2 :columnName = 'tables';break; - case 3 :columnName = 'columns';break; - } - if(!_.isUndefined(this.model.get(columnName)) && !_.isEqual(this.model.get(columnName),"")) - nameList = this.model.get(columnName).split(','); - if(!_.isEqual(e.currentTarget.value, "")) - newNameList = e.currentTarget.value.split(','); - XAUtil.checkDirtyField(nameList, newNameList, elem); - }, - setResourceTypeAsPerWildCard :function(){ - //Set resourceType as per WildCard operator '*' - var type = this.model.get('resourceType'); - switch(this.model.get('resourceType')){ - case XAEnums.ResourceType.RESOURCE_COLUMN.value : - if(_.isEqual(this.model.get('columns'),"*")){ - if(_.isEqual(this.model.get('tables'),"*")) - type = XAEnums.ResourceType.RESOURCE_DB.value; - else - type = XAEnums.ResourceType.RESOURCE_TABLE.value; - - } - break; - case XAEnums.ResourceType.RESOURCE_TABLE.value : - if(_.isEqual(this.model.get('tables'),"*")) - type = XAEnums.ResourceType.RESOURCE_DB.value; - break; - case XAEnums.ResourceType.RESOURCE_UDF.value : - if(_.isEqual(this.model.get('udfs'),"*")) - type = XAEnums.ResourceType.RESOURCE_DB.value; - break; - } - this.model.set('resourceType',type); - }, - - /** all post render plugin initialization */ - initializePlugins: function(){ - } - - }); - - return HivePolicyForm; -}); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/286acf6d/security-admin/src/main/webapp/scripts/views/hive/HiveTableLayout.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/hive/HiveTableLayout.js b/security-admin/src/main/webapp/scripts/views/hive/HiveTableLayout.js deleted file mode 100644 index 0747fe4..0000000 --- a/security-admin/src/main/webapp/scripts/views/hive/HiveTableLayout.js +++ /dev/null @@ -1,462 +0,0 @@ -/* - * 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(function(require){ - 'use strict'; - - var Backbone = require('backbone'); - var XAEnums = require('utils/XAEnums'); - var XALinks = require('modules/XALinks'); - var XAGlobals = require('utils/XAGlobals'); - var SessionMgr = require('mgrs/SessionMgr'); - var XAUtil = require('utils/XAUtils'); - - var VXResource = require('models/VXResource'); - - var XABackgrid = require('views/common/XABackgrid'); - var XATableLayout = require('views/common/XATableLayout'); - var localization = require('utils/XALangSupport'); - var vFolderInfo = require('views/folders/FolderInfo'); - var HivetablelayoutTmpl = require('hbs!tmpl/hive/HiveTableLayout_tmpl'); - - var HiveTableLayout = Backbone.Marionette.Layout.extend( - /** @lends HiveTableLayout */ - { - _viewName : 'HiveTableLayout', - - template: HivetablelayoutTmpl, - templateHelpers :function(){ - return { - isSysAdmin :this.isSysAdmin, - assetId : this.assetModel.id, - assetModel : this.assetModel, - version : XAGlobals.version - }; - }, - breadCrumbs : function(){ - return [XALinks.get('RepositoryManager'),XALinks.get('ManageHivePolicies',{model : this.assetModel})]; - }, - /** Layout sub regions */ - regions: { - 'rTableList' :'div[data-id="r_tableList"]', - 'rPolicyDetail' : '#policyDetail' - }, - - /** ui selector cache */ - ui: { - 'btnExport' : 'a[data-js="export"]', - 'btnDeletePolicy' : '[data-name="deletePolicy"]', - 'btnShowMore' : '[data-id="showMore"]', - 'btnShowLess' : '[data-id="showLess"]', - 'visualSearch' : '.visual_search' - }, - - /** ui events hash */ - events: function() { - var events = {}; - //events['change ' + this.ui.input] = 'onInputChange'; - events['click ' + this.ui.btnExport] = 'onExport'; - events['click ' + this.ui.btnDeletePolicy] = 'onDelete'; - events['click ' + this.ui.btnShowMore] = 'onShowMore'; - events['click ' + this.ui.btnShowLess] = 'onShowLess'; - return events; - }, - - /** - * intialize a new HiveTableLayout Layout - * @constructs - */ - initialize: function(options) { - console.log("initialized a HiveTableLayout Layout"); - - _.extend(this, _.pick(options, 'assetModel')); - this.collection.extraSearchParams = { - // resourceType : XAEnums.AssetType.ASSET_HIVE.value - assetId : this.assetModel.id - }; - this.bindEvents(); - this.isSysAdmin = SessionMgr.isSystemAdmin(); - }, - - /** all events binding here */ - bindEvents : function(){ - //this.listenTo(this.collection, "remove", this.render, this); - /*this.listenTo(communicator.vent,'someView:someEvent', this.someEventHandler, this)'*/ - }, - - /** on render callback */ - onRender: function() { - var that = this; - this.initializePlugins(); - this.addVisualSearch(); - this.renderTable(); - XAUtil.highlightDisabledPolicy(this); - }, - - /** all post render plugin initialization */ - initializePlugins: function(){ - }, - renderTable : function(){ - var that = this; - /*var tableRow = Backgrid.Row.extend({ - events: { - 'click' : 'onClick' - }, - initialize : function(){ - var that = this; - var args = Array.prototype.slice.apply(arguments); - Backgrid.Row.prototype.initialize.apply(this, args); - this.listenTo(this.model, 'model1:highlightBackgridRow', function(){ - that.$el.addClass("alert"); - $("html, body").animate({scrollTop: that.$el.position().top},"linear"); - setTimeout(function () { - that.$el.removeClass("alert"); - }, 1500); - }, this); - }, - onClick: function (e) { - if($(e.toElement).is('.icon-edit,.icon-trash,a,code')) - return; - this.$el.parent('tbody').find('tr').removeClass('tr-active'); - this.$el.toggleClass('tr-active'); - if(that.rPolicyDetail){ - $(that.rPolicyDetail.el).hide(); - $(that.rPolicyDetail.el).html(new vFolderInfo({ - model : this.model - }).render().$el).slideDown(); - } - - } - });*/ - this.rTableList.show(new XATableLayout({ - columns: this.getColumns(), - collection: this.collection, - includeFilter : false, - gridOpts : { -// row: tableRow, - header : XABackgrid, - emptyText : 'No Policies found!' - } - })); - }, - - getColumns : function(){ - var cols = { - policyName : { - cell : "uri", - href: function(model){ - return '#!/hive/'+model.get('assetId')+'/policy/' + model.id; - }, - label : localization.tt("lbl.policyName"), - editable: false, - sortable : false - }, - databases : { - cell :'html', - label : localization.tt("lbl.databaseName")+'(s)', - editable:false, - sortable : false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - return _.isUndefined(rawValue) ? '--': '<span title="'+rawValue+'">'+rawValue+'</span>'; - } - }) - }, - tables : { - label : localization.tt("lbl.tableName")+'(s)', - cell :'html', - editable:false, - sortable : false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - return _.isUndefined(rawValue) ? '--': '<span title="'+rawValue+'">'+rawValue+'</span>'; - } - }) - }, - tableType:{ - label:localization.tt('lbl.tableType'), - cell :"html", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue, model) { - var isInclude; - if(_.isUndefined(rawValue) || !_.isEmpty(model.get('udfs'))) - return '--'; - _.each(_.toArray(XAEnums.PolicyType),function(m){ - if(parseInt(rawValue) == m.value){ - isInclude = (m.label == XAEnums.PolicyType.POLICY_INCLUSION.label) ? true : false; - } - }); - return isInclude ? '<label class="label label-success">Include</label>' : '<label class="label label">Exclude</label>'; - } - }), - click : false, - drag : false, - sortable : false - }, - udfs : { - label : localization.tt("lbl.udfName")+'(s)', - editable:false, - cell :'string', - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { return rawValue ? rawValue : '--';} - }), - sortable : false - }, - columns : { - label : localization.tt("lbl.columnName")+'(s)', - cell :'html', - placeholder : 'Column Name', - editable:false, - sortable : false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - return _.isUndefined(rawValue) ? '--': '<span title="'+rawValue+'">'+rawValue+'</span>'; - } - }) - - }, - columnType:{ - label:localization.tt('lbl.columnType'), - cell :"html", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue, model) { - if(_.isUndefined(rawValue) || !_.isEmpty(model.get('udfs'))) - return '--'; - var isInclude; - _.each(_.toArray(XAEnums.PolicyType),function(m){ - if(parseInt(rawValue) == m.value){ - isInclude = (m.label == XAEnums.PolicyType.POLICY_INCLUSION.label) ? true : false; - } - }); - return isInclude ? '<label class="label label-success">Include</label>' : '<label class="label labe">Exclude</label>'; - } - }), - click : false, - drag : false, - sortable : false - - }, - permMapList : { - reName : 'groupName', - cell : Backgrid.HtmlCell.extend({className: 'cellWidth-1'}), - label : localization.tt("lbl.group"), - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - if(!_.isUndefined(rawValue)) - return XAUtil.showGroups(rawValue); - else - return '--'; - } - }), - editable : false, - sortable : false - }, - auditList : { - label : localization.tt("lbl.auditLogging"), - cell: "html", - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue, model) { - return model.has('auditList') ? '<label class="label label-success">ON</label>' : '<label class="label label">OFF</label>'; - } - }), - click : false, - drag : false, - sortable : false, - editable : false - }, - /*isEncrypt:{ - label:localization.tt("lbl.encrypted"), - cell :"Switch", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - var status; - _.each(_.toArray(XAEnums.BooleanValue),function(m){ - if(parseInt(rawValue) == m.value){ - status = (m.label == XAEnums.BooleanValue.BOOL_TRUE.label) ? true : false; - return ; - } - }); - //You can use rawValue to custom your html, you can change this value using the name parameter. - return status; - } - }), - click : false, - drag : false, - onText : 'ON', - offText : 'OFF', - sortable : false - },*/ - resourceStatus:{ - label:localization.tt('lbl.status'), - cell :"html", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - var status; - _.each(_.toArray(XAEnums.BooleanValue),function(m){ - if(parseInt(rawValue) == m.value){ - status = (m.label == XAEnums.BooleanValue.BOOL_TRUE.label) ? true : false; - } - }); - return status ? '<label class="label label-success">Enabled</label>' : '<label class="label label-important">Disabled</label>'; - } - }), - click : false, - drag : false, - sortable : false - }, -/* policyType:{ - label:localization.tt('lbl.policyType'), - cell :"html", - editable:false, - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue) { - var isInclude; - _.each(_.toArray(XAEnums.PolicyType),function(m){ - if(parseInt(rawValue) == m.value){ - isInclude = (m.label == XAEnums.PolicyType.POLICY_INCLUSION.label) ? true : false; - } - }); - return isInclude ? '<label class="label label-success">Include</label>' : '<label class="label label-important">Exclude</label>'; - } - }), - click : false, - drag : false, - sortable : false - },*/ - permissions : { - cell : "html", - label : localization.tt("lbl.action"), - formatter: _.extend({}, Backgrid.CellFormatter.prototype, { - fromRaw: function (rawValue,model) { - return '<a href="#!/hive/'+model.get('assetId')+'/policy/'+model.id+'" class="btn btn-mini" title="Edit"><i class="icon-edit icon-large" /></a>\ - <a href="javascript:void(0);" data-name ="deletePolicy" data-id="'+model.id+'" class="btn btn-mini btn-danger" title="Delete"><i class="icon-trash icon-large" /></a>'; - //You can use rawValue to custom your html, you can change this value using the name parameter. - } - }), - editable:false, - sortable : false - } - - - }; - return this.collection.constructor.getTableCols(cols, this.collection); - }, - - onExport : function(e){ - $(e.currentTarget).attr('href', 'service/assets/policyList/'+this.assetModel.get('name')+'?epoch=0'); - //$(e.currentTarget).attr('href', 'service/assets/hive?epoch=0'); - }, - onDelete :function(e){ - var that = this; - var obj = this.collection.get($(e.currentTarget).data('id')); - var model = new VXResource(obj.attributes); - model.collection = this.collection; - XAUtil.confirmPopup({ - //msg :localize.tt('msg.confirmDelete'), - msg :'Are you sure want to delete ?', - callback : function(){ - XAUtil.blockUI(); - model.destroy({ - success: function(model, response) { - XAUtil.blockUI('unblock'); - that.collection.remove(model.get('id')); - $(that.rPolicyDetail.el).hide(); - XAUtil.notifySuccess('Success', localization.tt('msg.policyDeleteMsg')); - if(that.collection.length == 0){ - that.renderTable(); - that.collection.fetch(); - } - }, - error: function (model, response, options) { - XAUtil.blockUI('unblock'); - if ( response && response.responseJSON && response.responseJSON.msgDesc){ - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', 'Error deleting Policy!'); - console.log("error"); - } - }); - } - }); - }, - onShowMore : function(e){ - var id = $(e.currentTarget).attr('policy-group-id'); - this.rTableList.$el.find('[policy-group-id="'+id+'"]').show(); - $('[data-id="showLess"][policy-group-id="'+id+'"]').show(); - $('[data-id="showMore"][policy-group-id="'+id+'"]').hide(); - }, - onShowLess : function(e){ - var id = $(e.currentTarget).attr('policy-group-id'); - this.rTableList.$el.find('[policy-group-id="'+id+'"]').slice(4).hide(); - $('[data-id="showLess"][policy-group-id="'+id+'"]').hide(); - $('[data-id="showMore"][policy-group-id="'+id+'"]').show(); - }, - addVisualSearch : function(){ - var that = this; - var searchOpt = ['Database Name(s)','Table Name(s)','Column Name(s)','UDF Name(s)','Group','Policy Name'];//,'Start Date','End Date','Today']; - var serverAttrName = [{text : "Database Name(s)", label :"databases"}, {text : "Table Name(s)", label :"tables"}, - {text : "Column Name(s)", label :"columns"}, {text : "UDF Name(s)", label :"udfs"}, - {text : "Group", label :"groupName"},{text : "Policy Name", label :"policyName"}]; - // {text : 'Start Date',label :'startDate'},{text : 'End Date',label :'endDate'}, - // {text : 'Today',label :'today'}]; - - var pluginAttr = { - placeholder :localization.tt('h.searchForPolicy'), - container : this.ui.visualSearch, - query : '', - callbacks : { - valueMatches :function(facet, searchTerm, callback) { - switch (facet) { - case 'Result': - callback(XAUtil.enumToSelectLabelValuePairs(XAEnums.AuthStatus)); - break; - case 'Login Type': - callback(XAUtil.enumToSelectLabelValuePairs(XAEnums.AuthType)); - break; - /* case 'Start Date' : - setTimeout(function () { XAUtil.displayDatepicker(that.ui.visualSearch, callback); }, 0); - break; - case 'End Date' : - setTimeout(function () { XAUtil.displayDatepicker(that.ui.visualSearch, callback); }, 0); - break; - case 'Today' : - var today = Globalize.format(new Date(),"yyyy/mm/dd"); - callback([today]); - break;*/ - } - - } - } - }; - XAUtil.addVisualSearch(searchOpt,serverAttrName, this.collection,pluginAttr); - }, - - /** on close */ - onClose: function(){ - } - - }); - - return HiveTableLayout; -}); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/286acf6d/security-admin/src/main/webapp/scripts/views/knox/KnoxPolicyCreate.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/knox/KnoxPolicyCreate.js b/security-admin/src/main/webapp/scripts/views/knox/KnoxPolicyCreate.js deleted file mode 100644 index cfb838c..0000000 --- a/security-admin/src/main/webapp/scripts/views/knox/KnoxPolicyCreate.js +++ /dev/null @@ -1,301 +0,0 @@ -/* - * 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(function(require){ - 'use strict'; - - var App = require('App'); - var Backbone = require('backbone'); - var XALinks = require('modules/XALinks'); - - var XAUtil = require('utils/XAUtils'); - var XAEnums = require('utils/XAEnums'); - var localization = require('utils/XALangSupport'); - var VXResourceList = require('collections/VXResourceList'); - - var KnoxPolicyForm = require('views/knox/KnoxPolicyForm'); - var KnoxPolicyCreateTmpl = require('hbs!tmpl/knox/KnoxPolicyCreate_tmpl'); - - var KnoxPolicyCreate = Backbone.Marionette.Layout.extend( - /** @lends KnoxPolicyCreate */ - { - _viewName : 'KnoxPolicyCreate', - - template: KnoxPolicyCreateTmpl, - templateHelpers : function(){ - return { - editPolicy : this.editPolicy - }; - }, - breadCrumbs :function(){ - if(this.model.isNew()) - return [XALinks.get('RepositoryManager'),XALinks.get('ManageKnoxPolicies',{model : this.assetModel}),XALinks.get('PolicyCreate')]; - else - return [XALinks.get('RepositoryManager'),XALinks.get('ManageKnoxPolicies',{model : this.assetModel}),XALinks.get('PolicyEdit')]; - } , - /** Layout sub regions */ - regions: { - 'rForm' :'div[data-id="r_form"]' - }, - - /** ui selector cache */ - ui: { - 'btnSave' : '[data-id="save"]', - 'btnCancel' : '[data-id="cancel"]', - 'btnDelete' : '[data-id="delete"]', - 'policyDisabledAlert' : '[data-id="policyDisabledAlert"]' - }, - - /** ui events hash */ - events: function() { - var events = {}; - events['click ' + this.ui.btnSave] = 'onSave'; - events['click ' + this.ui.btnCancel] = 'onCancel'; - events['click ' + this.ui.btnDelete] = 'onDelete'; - return events; - }, - - /** - * intialize a new KnoxPolicyCreate Layout - * @constructs - */ - initialize: function(options) { - var that = this; - console.log("initialized a KnoxPolicyCreate Layout"); - - _.extend(this, _.pick(options,'assetModel')); - this.bindEvents(); - - that.form = new KnoxPolicyForm({ - template : require('hbs!tmpl/knox/KnoxPolicyForm_tmpl'), - model : this.model, - assetModel : this.assetModel - }); - - this.editPolicy = this.model.has('id') ? true : false; - }, - - /** all events binding here */ - bindEvents : function(){ - /*this.listenTo(this.model, "change:foo", this.modelChanged, this);*/ - /*this.listenTo(communicator.vent,'someView:someEvent', this.someEventHandler, this)'*/ - }, - - /** on render callback */ - onRender: function() { - XAUtil.showAlerForDisabledPolicy(this); - this.rForm.show(this.form); - this.initializePlugins(); - this.rForm.$el.dirtyFields(); - XAUtil.preventNavigation(localization.tt('dialogMsg.preventNavKnoxPolicyForm'), this.rForm.$el); - }, - - /** all post render plugin initialization */ - initializePlugins: function(){ - }, - popupCallBack : function(msg,validateObj){ - var that = this; - XAUtil.alertPopup({ - msg :msg, - callback : function(){ - // if(validateObj.auditLoggin) - // that.savePolicy(); - } - }); - }, - onSave : function(){ - var that =this, valid = false; - var errors = this.form.commit({validate : false}); - if(! _.isEmpty(errors)){ - return; - } - var validateObj = this.form.formValidation(); - valid = (validateObj.groupSet && validateObj.permSet && validateObj.groupIPSet) || (validateObj.userSet && validateObj.userPerm && validateObj.userIPSet); - if(!valid){ - if(this.validateGroupPermission(validateObj)) { - if((!validateObj.auditLoggin) && !(validateObj.groupPermSet || validateObj.userSet)){ - XAUtil.alertPopup({ - msg :localization.tt('msg.yourAuditLogginIsOff'), - callback : function(){} - }); - }else{ - this.savePolicy(); - } - } - }else{ - if(this.validateGroupPermission(validateObj)) - this.savePolicy(); - } - - }, - validateGroupPermission : function(validateObj){ - if((!validateObj.groupSet) && (validateObj.permSet)) { - this.popupCallBack(localization.tt('msg.addGroup'),validateObj); - }else if(validateObj.groupIPSet && (!validateObj.groupSet)){ - this.popupCallBack(localization.tt('msg.addGroup'),validateObj); - /*}else if(validateObj.groupSet && (!validateObj.groupIPSet)){ - this.popupCallBack(localization.tt('msg.enterIPForGroupPerm'),validateObj); - }else if(!validateObj.groupIPSet && (validateObj.groupSet && validateObj.permSet)){ - this.popupCallBack(localization.tt('msg.enterIPForGroupPerm'),validateObj);*/ - }else if(validateObj.groupIPSet && (!validateObj.permSet)){ - this.popupCallBack(localization.tt('msg.addGroupPermission'),validateObj); - }else if(validateObj.groupSet && (!validateObj.permSet)){ - this.popupCallBack(localization.tt('msg.addGroupPermission'),validateObj); - /*}else if(validateObj.groupIPSet && !validateObj.groupSet){ - this.popupCallBack(localization.tt('msg.addGroup'),validateObj); - }else if(validateObj.groupIPSet && !validateObj.permSet){ - this.popupCallBack(localization.tt('msg.addGroupPermission'),validateObj);*/ - - }else if(validateObj.userIPSet && (!validateObj.userSet)){ - this.popupCallBack(localization.tt('msg.addUser'),validateObj); - }else if(validateObj.userPerm && (!validateObj.userSet)) { - this.popupCallBack(localization.tt('msg.addUser'),validateObj); - /*}else if(!validateObj.userIPSet && validateObj.userSet){ - this.popupCallBack(localization.tt('msg.enterIPForUserPerm'),validateObj); - }else if(!validateObj.userIPSet && (validateObj.userSet && validateObj.userPerm)){ - this.popupCallBack(localization.tt('msg.enterIPForUserPerm'),validateObj);*/ - }else if(validateObj.userIPSet && (!validateObj.userPerm)){ - this.popupCallBack(localization.tt('msg.addUserPermission'),validateObj); - }else if(validateObj.userSet && (!validateObj.userPerm)){ - this.popupCallBack(localization.tt('msg.addUserPermission'),validateObj); - } - else - return true; - }, - savePolicy : function(){ - var that = this; - this.form.afterCommit(); - this.saveMethod(); - }, - saveMethod : function(){ - var that = this; - XAUtil.blockUI(); - this.model.save({},{ - wait: true, - success: function () { - XAUtil.blockUI('unblock'); - var msg = that.editPolicy ? 'Policy updated successfully' :'Policy created successfully'; - XAUtil.notifySuccess('Success', msg); - XAUtil.allowNavigation(); - if(that.editPolicy){ - App.appRouter.navigate("#!/knox/"+that.assetModel.id+"/policies",{trigger: true}); - return; - } - - App.appRouter.navigate("#!/knox/"+that.assetModel.id+"/policies",{trigger: false}); - - var view = require('views/knox/KnoxTableLayout'); - var resourceListForAsset = new VXResourceList([],{ - queryParams : { - 'assetId' : that.assetModel.id - } - }); - - resourceListForAsset.fetch({ - cache : false, - data : { - // 'resourceType':XAEnums.AssetType.ASSET_HIVE.value, - 'assetId' :that.assetModel.id - } - }).done(function(){ - var newColl = resourceListForAsset; - resourceListForAsset.getLastPage({ - cache : false, - data : { - // 'resourceType':XAEnums.AssetType.ASSET_HIVE.value, - 'assetId' :that.assetModel.id - } - }).done(function(){ - var model = newColl.get(that.model.id); - if(model){ - model.trigger("model1:highlightBackgridRow"); - } - }); - App.rContent.show(new view({ - collection : resourceListForAsset, - assetModel : that.assetModel - })); - - }); - - console.log("success"); - }, - error: function (model, response, options) { - XAUtil.blockUI('unblock'); - if ( response && response.responseJSON && response.responseJSON.msgDesc){ - if( response.responseJSON.messageList && response.responseJSON.messageList.length > 0 && !_.isUndefined(response.responseJSON.messageList[0].fieldName)){ - if(response.responseJSON.messageList[0].fieldName == "parentPermission"){ - XAUtil.confirmPopup({ - msg :response.responseJSON.msgDesc, - callback : function(){ - that.model.set('checkParentPermission',XAEnums.BooleanValue.BOOL_FALSE.value); - that.saveMethod(); - } - }); - }else - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', 'Error creating Policy!'); - console.log("error"); - } - }); - }, - onDelete :function(){ - var that = this; - XAUtil.confirmPopup({ - //msg :localize.tt('msg.confirmDelete'), - msg :'Are you sure want to delete ?', - callback : function(){ - XAUtil.blockUI(); - that.model.destroy({ - success: function(model, response) { - XAUtil.blockUI('unblock'); - XAUtil.allowNavigation(); - XAUtil.notifySuccess('Success', localization.tt('msg.policyDeleteMsg')); - App.appRouter.navigate("#!/knox/"+that.assetModel.id+"/policies",{trigger: true}); - }, - error: function (model, response, options) { - XAUtil.blockUI('unblock'); - if ( response && response.responseJSON && response.responseJSON.msgDesc){ - XAUtil.notifyError('Error', response.responseJSON.msgDesc); - }else - XAUtil.notifyError('Error', 'Error deleting Policy!'); - console.log("error"); - } - }); - } - }); - }, - onCancel : function(){ - XAUtil.allowNavigation(); - App.appRouter.navigate("#!/knox/"+this.assetModel.id+"/policies",{trigger: true}); - }, - - /** on close */ - onClose: function(){ - XAUtil.allowNavigation(); - } - - }); - - return KnoxPolicyCreate; -});
