示例#1
0
 public static ViewSelect.Response getViewSelectRecent(CswNbtResources CswNbtResources)
 {
     ViewSelect.Response          Ret    = new ViewSelect.Response();
     ViewSelect.Response.Category Recent = _getCategory(ref Ret, "Recent");
     CswNbtResources.SessionDataMgr.getQuickLaunchJson(ref Recent);
     return(Ret);
 } // getViewSelectRecent()
示例#2
0
        } // _addCategory()

        /// <summary>
        /// Create a new Item object and append it to a Category in the View Select return
        /// </summary>
        private static ViewSelect.Response.Item _addViewSelectObj(ref ViewSelect.Response ViewSelectReturn, string Category, string Name, CswEnumNbtViewItemType Type, string Icon, string Id)
        {
            if (Category == string.Empty)
            {
                Category = "Uncategorized";
            }
            ViewSelect.Response.Category Cat = _getCategory(ref ViewSelectReturn, Category);

            return(_addViewSelectObj(Cat, Name, Type, Icon, Id));
        }
示例#3
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);
        }
示例#4
0
        /// <summary>
        /// Create a new Category object and append it to the outer View Select return or fetch an existing Category from the return for use.
        /// </summary>
        private static ViewSelect.Response.Category _getCategory(ref ViewSelect.Response ViewSelectReturn, string Category)
        {
            ViewSelect.Response.Category Ret = ViewSelectReturn.categories.FirstOrDefault(Cat =>
                                                                                          string.Equals(Cat.category, Category, StringComparison.InvariantCultureIgnoreCase));

            if (Ret == null)
            {
                Ret = new ViewSelect.Response.Category(Category);

                // Insertion sort on category name
                if (Category == "Uncategorized")
                {
                    // Last
                    ViewSelectReturn.categories.Add(Ret);
                }
                else if (Category == "Favorites" || Category == "Recent")
                {
                    // First
                    ViewSelectReturn.categories.Insert(0, Ret);
                }
                else
                {
                    // Alphabetical
                    Int32 insertAt = -1;
                    for (Int32 i = 0; i < ViewSelectReturn.categories.Count; i += 1)
                    {
                        string ThisCat = ViewSelectReturn.categories[i].category;
                        if (ThisCat == "Uncategorized" ||
                            (ThisCat != "Favorites" &&
                             ThisCat != "Recent" &&
                             Category.CompareTo(ThisCat) <= 0))
                        {
                            insertAt = i;
                            break;
                        }
                    } // for( Int32 i = 0; i < ret.Count; i++ )

                    if (insertAt >= 0)
                    {
                        ViewSelectReturn.categories.Insert(insertAt, Ret);
                    }
                    else
                    {
                        ViewSelectReturn.categories.Add(Ret);
                    }
                }
            }
            return(Ret);
        } // _addCategory()
示例#5
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()