/// <summary> /// Create a new Item object and append it to a Category in the View Select return /// </summary> private static ViewSelect.Response.Item _addViewSelectObj(ViewSelect.Response.Category Cat, string Name, CswEnumNbtViewItemType Type, string Icon, string Id) { ViewSelect.Response.Item Ret = new ViewSelect.Response.Item(Type) { name = Name, itemid = Id, iconurl = Icon }; Cat.items.Add(Ret); return(Ret); }
public static ViewSelect.Response getViewSelect(CswNbtResources CswNbtResources, ViewSelect.Request Request) { ViewSelect.Response ret = new ViewSelect.Response(); // Favorites and Recent ICswNbtUser User = CswNbtResources.CurrentNbtUser; if (User != null) { CswNbtObjClassUser UserOc = CswNbtResources.Nodes[User.UserId]; // Recent if (Request.IncludeRecent) { ViewSelect.Response.Category RecentCategory = _getCategory(ref ret, "Recent"); CswNbtResources.SessionDataMgr.getQuickLaunchJson(ref RecentCategory); } ViewSelect.Response.Category FavoritesCategory = _getCategory(ref ret, "Favorites"); //Add the user's stored views to Favorites foreach (CswNbtView View in UserOc.FavoriteViews.SelectedViews.Values.Where(View => View.IsFullyEnabled())) { ViewSelect.Response.Item ViewItem = _addViewSelectObj(FavoritesCategory, View.ViewName, CswEnumNbtViewItemType.View, View.IconFileName, View.ViewId.ToString()); ViewItem.mode = View.ViewMode.ToString(); } if (Request.IncludeActions) { //Add the user's stored actions to Favorites DataTable ActionsTable = UserOc.FavoriteActions.GetDataAsTable(ActionName, ActionPk); foreach (CswNbtAction Action in (from DataRow ActionRow in ActionsTable.Rows where CswConvert.ToBoolean(ActionRow[ActionSelected]) select CswNbtAction.ActionNameStringToEnum(CswConvert.ToString(ActionRow[ActionPk])) into NbtActionName select CswNbtResources.Actions[NbtActionName] into ThisAction where null != ThisAction select ThisAction)) { if (Action.ShowInList) //case 26555 - filter out actions like 'Multi Edit' or 'Edit View' { ViewSelect.Response.Item ActionItem = _addViewSelectObj(FavoritesCategory, Action.DisplayName, CswEnumNbtViewItemType.Action, CswNbtMetaDataObjectClass.IconPrefix16 + Action.IconFileName, Action.ActionId.ToString()); ActionItem.url = Action.Url; } } // foreach } // if( Request.IncludeActions ) } // if( User != null ) // Views Dictionary <CswNbtViewId, CswNbtView> Views = CswNbtResources.ViewSelect.getVisibleViews("lower(NVL(v.category, v.viewname)), lower(v.viewname)", CswNbtResources.CurrentNbtUser, false, false, Request.IsSearchable, CswEnumNbtViewRenderingMode.Any); foreach (CswNbtView View in Views.Values) { ViewSelect.Response.Item ViewItem = _addViewSelectObj(ref ret, View.Category, View.ViewName, CswEnumNbtViewItemType.View, View.IconFileName, View.ViewId.ToString()); ViewItem.mode = View.ViewMode.ToString(); } if (false == Request.IsSearchable) { // Actions if (Request.IncludeActions) { foreach (CswNbtAction Action in CswNbtResources.Actions) { if (Action.ShowInList && //Case 23687: "View By Location" Action is toast. Bye-bye "loc_use_images" config var check. CswNbtResources.Permit.can(Action.Name)) { ViewSelect.Response.Item ActionItem = _addViewSelectObj(ref ret, Action.Category, Action.DisplayName, CswEnumNbtViewItemType.Action, CswNbtMetaDataObjectClass.IconPrefix16 + Action.IconFileName, Action.ActionId.ToString()); ActionItem.url = Action.Url; } } } // Reports if (Request.IncludeReports) { CswNbtMetaDataObjectClass ReportMetaDataObjectClass = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass); CswNbtView ReportView = ReportMetaDataObjectClass.CreateDefaultView(); ReportView.ViewName = "CswViewTree.DataBinding.ReportView"; ICswNbtTree ReportTree = CswNbtResources.Trees.getTreeFromView(CswNbtResources.CurrentNbtUser, ReportView, true, false, false); for (int i = 0; i < ReportTree.getChildNodeCount(); i++) { ReportTree.goToNthChild(i); CswNbtObjClassReport ReportNode = ReportTree.getNodeForCurrentPosition(); _addViewSelectObj(ref ret, ReportNode.Category.Text, ReportNode.ReportName.Text, CswEnumNbtViewItemType.Report, CswNbtMetaDataObjectClass.IconPrefix16 + "doc.png", ReportNode.NodeId.ToString()); ReportTree.goToParentNode(); } } // Searches if (Request.IncludeSearches) { Collection <CswNbtSearch> Searches = CswNbtResources.SearchManager.getSearches(); foreach (CswNbtSearch Search in Searches) { _addViewSelectObj(ref ret, Search.Category, Search.Name, CswEnumNbtViewItemType.Search, CswNbtMetaDataObjectClass.IconPrefix16 + "magglass.png", Search.SearchId.ToString()); } } } // if( false == Request.IsSearchable ) return(ret); } // getViewSelect()