public override void setItemDataForUI(DataRow LandingPageRow, LandingPageData.Request Request) { Int32 NodeTypeId = CswConvert.ToInt32(LandingPageRow["to_nodetypeid"]); Int32 TabId = CswConvert.ToInt32(LandingPageRow["to_tabid"]); if (NodeTypeId != Int32.MinValue && TabId != Int32.MinValue) { CswNbtMetaDataNodeType NodeType = _CswNbtResources.MetaData.getNodeType(NodeTypeId); if (NodeType != null) { CswNbtMetaDataNodeTypeTab Tab = NodeType.getNodeTypeTab(TabId); if (null != Tab) { CswNbtView TabView = getTabView(Request.NodeId, Request.NodeViewId, NodeType); if (null != TabView && TabView.IsFullyEnabled()) { String DisplayText = LandingPageRow["displaytext"].ToString(); _ItemData.Text = false == String.IsNullOrEmpty(DisplayText) ? DisplayText : TabView.ViewName + " " + Tab.TabName; _ItemData.ViewId = TabView.SessionViewId.ToString(); _ItemData.ViewMode = TabView.ViewMode.ToString().ToLower(); _ItemData.Type = "view"; _ItemData.TabId = TabId.ToString(); _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + NodeType.IconFileName; _setCommonItemDataForUI(LandingPageRow); } } } } }
/// <summary> /// Checks to see if a view is visible to a given user /// </summary> public bool isVisible(CswNbtView View, ICswNbtUser User, bool IncludeEmptyViews, bool SearchableOnly, bool ForEdit = false) { return(((View.Root.ChildRelationships.Count > 0 && ( View.Root.ChildRelationships.Any(R => R.SecondType != CswEnumNbtViewRelatedIdType.NodeTypeId || _CswNbtResources.Permit.canAnyTab( CswEnumNbtNodeTypePermission.View, _CswNbtResources.MetaData.getNodeType(R.SecondId), User))) ) || IncludeEmptyViews) && View.IsFullyEnabled() && (IncludeEmptyViews || View.ViewMode != CswEnumNbtViewRenderingMode.Grid || null != View.findFirstProperty()) && (!SearchableOnly || View.IsSearchable()) && (false == ForEdit || (_CswNbtResources.CurrentNbtUser.Username == CswNbtObjClassUser.ChemSWAdminUsername || false == CswConvert.ToBoolean(View.IsSystem)))); }
/// <summary> /// Get a DataTable of all enabled views in the database /// </summary> public DataTable getAllEnabledViews(out Dictionary <CswNbtViewId, CswNbtView> AllEnabledViews) { CswStaticSelect ViewsSelect = _CswNbtResources.makeCswStaticSelect("CswNbtViewSelect.getAllViews_select", "getAllViewInfo"); Dictionary <CswNbtViewId, CswNbtView> OutEnabledViews = new Dictionary <CswNbtViewId, CswNbtView>(); CswNbtNode ChemSwAdminUser = _CswNbtResources.Nodes.makeUserNodeFromUsername(CswNbtObjClassUser.ChemSWAdminUsername); CswNbtNode ChemSwAdminRole = _CswNbtResources.Nodes.makeRoleNodeFromRoleName(CswNbtObjClassRole.ChemSWAdminRoleName); bool ExcludeCswAdmin = (_CswNbtResources.CurrentNbtUser.Username != CswNbtObjClassUser.ChemSWAdminUsername || _CswNbtResources.CurrentNbtUser.Rolename != CswNbtObjClassRole.ChemSWAdminRoleName); DataTable AllViews = ViewsSelect.getTable(); Collection <DataRow> DoomedRows = new Collection <DataRow>(); foreach (DataRow Row in AllViews.Rows) { CswNbtViewId ViewId = new CswNbtViewId(CswConvert.ToInt32(Row["nodeviewid"])); CswNbtView View = _CswNbtResources.ViewSelect.restoreView(ViewId); if (false == View.IsFullyEnabled() || (_CswNbtResources.CurrentNbtUser.Username != CswNbtObjClassUser.ChemSWAdminUsername && CswConvert.ToBoolean(Row["issystem"])) || (ExcludeCswAdmin && ((View.Visibility == CswEnumNbtViewVisibility.Role && View.VisibilityRoleId == ChemSwAdminRole.NodeId) || (View.Visibility == CswEnumNbtViewVisibility.User && View.VisibilityUserId == ChemSwAdminUser.NodeId)))) { DoomedRows.Add(Row); } else { OutEnabledViews.Add(ViewId, View); } } foreach (DataRow DoomedRow in DoomedRows) { DoomedRow.Delete(); } AllEnabledViews = OutEnabledViews; AllViews.AcceptChanges(); return(AllViews); }
public override void setItemDataForUI(DataRow LandingPageRow, LandingPageData.Request Request) { bool finishLoading = false; //this will be set to true if and only if there's a valid link to be made String DisplayText = LandingPageRow["displaytext"].ToString(); Int32 ViewId = CswConvert.ToInt32(LandingPageRow["to_nodeviewid"]); if (ViewId != Int32.MinValue) { CswNbtViewId NodeViewId = new CswNbtViewId(ViewId); CswNbtView ThisView = _CswNbtResources.ViewSelect.restoreView(NodeViewId); if (null != ThisView && ThisView.IsFullyEnabled() && ThisView.IsVisible()) { finishLoading = true; _ItemData.Text = LandingPageRow["displaytext"].ToString() != string.Empty ? LandingPageRow["displaytext"].ToString() : ThisView.ViewName; _ItemData.ViewId = NodeViewId.ToString(); _ItemData.ViewMode = ThisView.ViewMode.ToString().ToLower(); if (ThisView.Root.ChildRelationships.Count > 0 && ThisView.Root.ChildRelationships[0] != null) { _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + ThisView.Root.ChildRelationships[0].SecondIconFileName; } _ItemData.Type = "view"; } } Int32 ActionId = CswConvert.ToInt32(LandingPageRow["to_actionid"]); if (ActionId != Int32.MinValue) { CswNbtAction ThisAction = _CswNbtResources.Actions[ActionId]; if (null != ThisAction) { if (_CswNbtResources.Permit.can(ThisAction.Name)) { finishLoading = true; _ItemData.Text = false == String.IsNullOrEmpty(DisplayText) ? DisplayText : CswNbtAction.ActionNameEnumToString(ThisAction.Name); _ItemData.ActionId = ActionId.ToString(); _ItemData.ActionName = ThisAction.Name.ToString(); _ItemData.ActionUrl = ThisAction.Url; _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + ThisAction.IconFileName; _ItemData.Type = "action"; } } } Int32 ReportId = CswConvert.ToInt32(LandingPageRow["to_reportid"]); if (ReportId != Int32.MinValue) { CswPrimaryKey ReportPk = new CswPrimaryKey("nodes", ReportId); CswNbtNode ThisReportNode = _CswNbtResources.Nodes[ReportPk]; if (null != ThisReportNode) { finishLoading = true; _ItemData.Text = false == String.IsNullOrEmpty(DisplayText) ? DisplayText : ThisReportNode.NodeName; _ItemData.ReportId = ReportPk.ToString(); _ItemData.Type = "report"; _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + ThisReportNode.getNodeType().IconFileName; } } Int32 SearchId = CswConvert.ToInt32(LandingPageRow["to_searchid"]); if (SearchId != Int32.MinValue) { CswPrimaryKey SearchPk = new CswPrimaryKey("search", SearchId); CswNbtSearch Search = _CswNbtResources.SearchManager.restoreSearch(SearchPk); if (null != Search) { finishLoading = true; _ItemData.Text = Search.Name; _ItemData.ReportId = SearchPk.ToString(); _ItemData.Type = "search"; _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + "magglass.png"; } } //we only want to send the item back with a landingpageid if it contains a valid link if (finishLoading) { _setCommonItemDataForUI(LandingPageRow); } }