// Licensed Materials - Property of IBM // // IBM Cognos Products: cogadmin // // (C) Copyright IBM Corp. 2005, 2011 // // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // // Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved. // Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated). //---------------------------------------------------------- com.cognos.admin.ObjectFactory("com.cognos.admin.extension"); /* This is a implementation of the extensive event handler. The impl need to have a method named "doAction" to * work as a mapping. * @param: env, context of the behaviour controller framework. * */ com.cognos.admin.extension.Privileges = function (env) { this.env = env; this.meta = this.env.context.getPublicVariables("meta"); this.state = this.env.state; this.privileges = this.state.getState("privileges"); this.fragment = this.env.fragment; this.tools = com.cognos.admin.util.Tools; if (this.meta && this.privileges){ this.populatePrivileges(); } this.isDirty = false; }; com.cognos.admin.extension.Privileges.VERSION = "0.1.0"; com.cognos.admin.extension.Privileges.GRANT_ICON_NAME = "g"; com.cognos.admin.extension.Privileges.DENY_ICON_NAME = "deny"; com.cognos.admin.extension.Privileges.MIXED_ICON_NAME = "mixed"; com.cognos.admin.extension.Privileges.DISPLAY_ICON_NAME = "grant"; com.cognos.admin.extension.Privileges.NONE_ICON_NAME = "none"; com.cognos.admin.extension.Privileges.prototype = { /* * init the privileges section, if any missing privilege, fill the gap with unset privilege */ populatePrivileges : function () { for (var i=0; i 0){ cb.setState(com.cognos.admin.util.Tools.ThreeCheckbox.MIXED); } if (nums[names[k]][com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N] > 0){ cbp.setState(com.cognos.admin.util.Tools.ThreeCheckbox.MIXED); } } } } } } }, /* * the payload will trace the route from root till you find the destination(s), and return all the items along this route. */ walkItems : function (func,items,lists,payload,scope){ var payl = []; if (items){ for (var j=0; j -1 && scopeList[_F_Array.indexOf(nameList,current.name)] == 'package'){ flagList.push(current.flag); altText += self.getAltText(current.name,current.flag); } } this.walkPrivileges (getFlag,'privilege'); elt.src = com.cognos.admin.WEBCONTENT + this.switchIcon(iconList[0],this.adjustFlag(flagList)); dojo.attr(elt,"alt",altText); this.setIsDirty(true); } }, getAltText: function(name,flag){ var returnText = ""; var caption = this.lookupItem({"key":"name","value":name},"caption",[name]); if (flag == com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_Y){ returnText = ADM.formatString(ADM.CAP.IDS_ADMNEW_CAP_GRANT,[caption+" "])+","; } else if (flag == com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N){ returnText = ADM.formatString(ADM.CAP.IDS_ADMNEW_CAP_DENY,[caption+" "])+","; } return returnText; }, switchIcon : function (initSrc,flag){ if (!initSrc) throw new Error ("Cogadmin/Privilege: Icon's initial src cannot be empty."); var src = initSrc; var regOrigIcon = new RegExp("_" + com.cognos.admin.extension.Privileges.DISPLAY_ICON_NAME + ".gif","i"); switch (flag){ case com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_Y: src = src.replace(regOrigIcon, "_" + com.cognos.admin.extension.Privileges.GRANT_ICON_NAME + ".gif"); break; case com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N: src = src.replace(regOrigIcon,"_" + com.cognos.admin.extension.Privileges.DENY_ICON_NAME + ".gif"); break; case com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_M: src = src.replace(regOrigIcon,"_" + com.cognos.admin.extension.Privileges.MIXED_ICON_NAME + ".gif"); break; default: var reg = new RegExp("access_(.)*_" + com.cognos.admin.extension.Privileges.DISPLAY_ICON_NAME + ".gif","i"); src = src.replace(reg,"access_" + com.cognos.admin.extension.Privileges.NONE_ICON_NAME + ".gif"); } return src; }, getIsDirty : function () {return this.isDirty;}, setIsDirty : function (flag) { this.isDirty = flag; this.state.setState("isDirty",this.isDirty); }, adjustFlag : function (flags){ var flag; if (flags) { for (var i=0; i -1){ _F_log("D","Unset Entries:"); _F_log("D",this.privileges[_F_Array.indexOf(isUnset,true)].key) } return _F_Array.indexOf(isUnset,true) > -1; }, removeUnsetEntries : function (){ this.lists = []; var self = this; function checkUnset(key,position){ if (privilege = self.privileges[position].privilege){ var isUnset = true; for (var i=0; i0){ this.state.removeState(com.cognos.admin.util.ClientState.GROUP_ACTION_ROWS,this.lists[0],true); } this.fragment.raiseEvent("fragment.refresh"); } }, getTooltipParam : function (tag,currentName){ if (tag.src.indexOf("access_none.gif") != -1) return; var grant = []; var deny = []; var blank = []; var ret = []; var list = this.getItemList("",[currentName]); var currentKey = this.tools.getKey(tag); for (var i=0; i actionName."); return false; //not handled here } } };