Пример #1
0
        /// <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);
        }
Пример #2
0
        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()