public void ChangeGroupBy(long idDashboard, DashboardViewType view, GroupItemsBy groupBy, UserCurrentSettings userSettings)
        {
            liteDashboardSettings settings = CurrentManager.Get <liteDashboardSettings>(idDashboard);

            if (settings == null)
            {
                View.DisplayUnknownDashboard();
            }
            else
            {
                View.InitializeSettingsInfo(settings);
                View.SelectedGroupBy = groupBy;
                userSettings.View    = view;

                if (userSettings.GroupBy != groupBy)
                {
                    switch (userSettings.GroupBy)
                    {
                    case GroupItemsBy.CommunityType:
                    case GroupItemsBy.Tile:
                        userSettings.IdSelectedTile = -1;
                        break;

                    case GroupItemsBy.Tag:
                        userSettings.IdSelectedTag = -1;
                        break;
                    }
                }
                userSettings.GroupBy = groupBy;
                userSettings.OrderBy = (groupBy == settings.Container.Default.GroupBy) ? settings.Container.Default.OrderBy : OrderItemsBy.LastAccess;
                View.CurrentSettings = userSettings;
                ChangeView(userSettings.View, settings, userSettings, View.CurrentOrderItems);
            }
        }
示例#2
0
 public DefaultSettings()
 {
     View                = DashboardViewType.List;
     Search              = DisplaySearchItems.Simple;
     DefaultNoticeboard  = DisplayNoticeboard.OnRight;
     TileNoticeboard     = DisplayNoticeboard.InheritsFromDefault;
     ListNoticeboard     = DisplayNoticeboard.InheritsFromDefault;
     CombinedNoticeboard = DisplayNoticeboard.InheritsFromDefault;
     AfterUserLogon      = OnLoadSettings.AlwaysDefault;
     OrderBy             = OrderItemsBy.LastAccess;
     GroupBy             = GroupItemsBy.None;
 }
示例#3
0
        public DefaultSettings(DashboardType type, DashboardSettings dSettings = null)
        {
            if (dSettings == null || (dSettings.Type == DashboardType.Portal && type != dSettings.Type))
            {
                switch (type)
                {
                case DashboardType.Portal:
                    View                = DashboardViewType.Tile;
                    Search              = DisplaySearchItems.Simple;
                    DefaultNoticeboard  = DisplayNoticeboard.OnRight;
                    TileNoticeboard     = DisplayNoticeboard.InheritsFromDefault;
                    ListNoticeboard     = DisplayNoticeboard.InheritsFromDefault;
                    CombinedNoticeboard = DisplayNoticeboard.InheritsFromDefault;
                    AfterUserLogon      = OnLoadSettings.AlwaysDefault;
                    OrderBy             = OrderItemsBy.LastAccess;
                    GroupBy             = GroupItemsBy.Tile;
                    break;

                case DashboardType.Community:
                case DashboardType.AllCommunities:
                    View                = DashboardViewType.Tile;
                    Search              = DisplaySearchItems.Hide;
                    DefaultNoticeboard  = DisplayNoticeboard.OnRight;
                    TileNoticeboard     = DisplayNoticeboard.InheritsFromDefault;
                    ListNoticeboard     = DisplayNoticeboard.InheritsFromDefault;
                    CombinedNoticeboard = DisplayNoticeboard.InheritsFromDefault;
                    AfterUserLogon      = OnLoadSettings.AlwaysDefault;
                    OrderBy             = OrderItemsBy.Name;
                    GroupBy             = GroupItemsBy.None;
                    break;
                }
            }
            else
            {
                View                = dSettings.Container.Default.View;
                Search              = dSettings.Container.Default.Search;
                DefaultNoticeboard  = dSettings.Container.Default.DefaultNoticeboard;
                TileNoticeboard     = dSettings.Container.Default.TileNoticeboard;
                ListNoticeboard     = dSettings.Container.Default.ListNoticeboard;
                CombinedNoticeboard = dSettings.Container.Default.CombinedNoticeboard;
                AfterUserLogon      = dSettings.Container.Default.AfterUserLogon;
                OrderBy             = dSettings.Container.Default.OrderBy;
                GroupBy             = dSettings.Container.Default.GroupBy;
            }
        }
        public void ChangeGroupBy(DashboardViewType view, GroupItemsBy groupBy)
        {
            liteDashboardSettings settings     = Service.DashboardSettingsGet(DashboardType.Portal, 0);
            UserCurrentSettings   userSettings = View.GetCurrentCookie();

            if (userSettings == null)
            {
                userSettings                     = new UserCurrentSettings();
                userSettings.GroupBy             = groupBy;
                userSettings.AfterUserLogon      = settings.Container.Default.AfterUserLogon;
                userSettings.DefaultNoticeboard  = settings.Container.Default.DefaultNoticeboard;
                userSettings.TileNoticeboard     = settings.Container.Default.TileNoticeboard;
                userSettings.CombinedNoticeboard = settings.Container.Default.CombinedNoticeboard;
                userSettings.ListNoticeboard     = settings.Container.Default.ListNoticeboard;
                userSettings.OrderBy             = (groupBy == settings.Container.Default.GroupBy) ? settings.Container.Default.OrderBy : OrderItemsBy.LastAccess;
                userSettings.View                = view;
                userSettings.Ascending           = (userSettings.OrderBy == OrderItemsBy.Name) ? true : false;
            }
            else
            {
                if (userSettings.GroupBy != groupBy)
                {
                    switch (userSettings.GroupBy)
                    {
                    case GroupItemsBy.CommunityType:
                    case GroupItemsBy.Tile:
                        userSettings.IdSelectedTile = -1;
                        break;

                    case GroupItemsBy.Tag:
                        userSettings.IdSelectedTag = -1;
                        break;
                    }
                }

                userSettings.GroupBy = groupBy;
                userSettings.OrderBy = (groupBy == settings.Container.Default.GroupBy) ? settings.Container.Default.OrderBy : OrderItemsBy.LastAccess;
            }
            View.SaveCurrentCookie(userSettings);
            InitializeView(view, settings, userSettings, false, false, userSettings.IdSelectedTile, userSettings.IdSelectedTag);
        }
示例#5
0
        public void GroupItemsBy()
        {
            var task = new GroupItemsBy()
            {
                Items = new TaskItem[]
                {
                    new TaskItem("A", new Dictionary <string, string> {
                        { "Y", "A1.Y" }, { "Z", "A1.Z" }, { "W", "A1.W" }
                    }),
                    new TaskItem("B", new Dictionary <string, string> {
                        { "Z", "B1.Z" }
                    }),
                    new TaskItem("A", new Dictionary <string, string> {
                        { "X", "A2.X" }, { "Z", "A2.Z" }, { "W", "A2.W" }
                    }),
                    new TaskItem("C", new Dictionary <string, string> {
                        { "X", "C1.X" }, { "Z", "C1.Z" }
                    }),
                    new TaskItem("C", new Dictionary <string, string> {
                        { "Y", "C2.Y" }, { "Z", "C2.Z" }
                    }),
                },
                GroupMetadata = new[] { "X", "Y", "Z", "U" }
            };

            bool result          = task.Execute();
            var  inspectMetadata = new[] { "X", "Y", "Z", "U", "W" };

            AssertEx.Equal(new[]
            {
                "A: X='A2.X' Y='A1.Y' Z='A1.Z;A2.Z' U='' W='A1.W'",
                "B: X='' Y='' Z='B1.Z' U='' W=''",
                "C: X='C1.X' Y='C2.Y' Z='C1.Z;C2.Z' U='' W=''",
            }, task.GroupedItems.Select(i => $"{i.ItemSpec}: {string.Join(" ", inspectMetadata.Select(m => $"{m}='{i.GetMetadata(m)}'"))}"));

            Assert.True(result);
        }
示例#6
0
        public void ShowMoreTiles(DisplayNoticeboard noticeboard, long idDashboard, Int32 tileDisplayItems, TileLayout tLayout, Boolean autoUpdateLayout, GroupItemsBy groupBy, Boolean value)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.Tile, groupBy, View.CurrentOrderItemsBy, noticeboard, -1, -1, true, value, false));
            }
            else
            {
                View.DisplayLessCommand = value;
                View.DisplayMoreCommand = !value;
                if (value)
                {
                    View.SendUserAction(0, CurrentIdModule, idDashboard, ModuleDashboard.ActionType.TileDashboardMoreTiles);
                }
                else
                {
                    View.SendUserAction(0, CurrentIdModule, idDashboard, ModuleDashboard.ActionType.TileDashboardLessTiles);
                }
                switch (groupBy)
                {
                case GroupItemsBy.CommunityType:
                    InitializeTileView(View.TileRedirectOn, noticeboard, idDashboard, tileDisplayItems, tLayout, autoUpdateLayout, groupBy, TileType.CommunityType);
                    break;

                case GroupItemsBy.Tile:
                    InitializeTileView(View.TileRedirectOn, noticeboard, idDashboard, tileDisplayItems, tLayout, autoUpdateLayout, groupBy, TileType.CombinedTags);
                    break;

                case GroupItemsBy.Tag:
                    InitializeTileView(View.TileRedirectOn, noticeboard, idDashboard, tileDisplayItems, tLayout, autoUpdateLayout, groupBy, TileType.CommunityTag);
                    break;

                case GroupItemsBy.None:
                    if (!View.IsPreview)
                    {
                        View.LoadDashboard(RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.List, GroupItemsBy.None, OrderItemsBy.LastAccess, DisplayNoticeboard.OnRight));
                    }
                    break;
                }
            }
        }
示例#7
0
        private void LoadTags(DashboardViewType tileRedirectOn, DisplayNoticeboard noticeboard, long idDashboard, List <dtoLiteTile> tiles, Int32 tileDisplayItems, GroupItemsBy groupBy)
        {
            OrderItemsBy orderby            = View.CurrentOrderItemsBy;
            Boolean      displayLessCommand = View.DisplayLessCommand;
            Language     l = CurrentManager.GetDefaultLanguage();

            displayLessCommand = displayLessCommand = (displayLessCommand) && tiles.Count() + ((noticeboard == DisplayNoticeboard.Hide) ? 0 : 1) > tileDisplayItems;
            List <dtoTileDisplay> items = null;

            if (View.IsPreview)
            {
                items = tiles.Select(t => new dtoTileDisplay(t, UserContext.Language.Id, l.Id, true)
                {
                    CommandUrl = RootObject.DashboardPreview(idDashboard, tileRedirectOn, groupBy, orderby, t.Tile.Id, t.Tile.GetAvailableIdTags().FirstOrDefault())
                }).ToList();
            }
            else
            {
                items = tiles.Select(t => new dtoTileDisplay(t, UserContext.Language.Id, l.Id)
                {
                    CommandUrl = RootObject.LoadPortalView(UserContext.CurrentUserID, tileRedirectOn, groupBy, orderby, noticeboard, t.Tile.Id, t.Tile.GetAvailableIdTags().FirstOrDefault(), true, displayLessCommand)
                }).ToList();
            }
            if (displayLessCommand)
            {
                View.LoadTiles(noticeboard, items);
                View.DisplayMoreCommand = false;
                View.DisplayLessCommand = true;
            }
            {
                View.LoadTiles(noticeboard, items.Skip(0).Take(tileDisplayItems - ((noticeboard == DisplayNoticeboard.Hide) ? 0 : 1)).ToList());
                View.DisplayMoreCommand = tiles.Count() + ((noticeboard == DisplayNoticeboard.Hide) ? 0 : 1) > tileDisplayItems;
            }
        }
示例#8
0
        private void InitializeTileView(DashboardViewType tileRedirectOn, DisplayNoticeboard noticeboard, long idDashboard, Int32 tileDisplayItems, TileLayout tLayout, Boolean autoUpdateLayout, GroupItemsBy groupBy, TileType type)
        {
            List <dtoLiteTile> tiles = (View.IsPreview) ? Service.TilesGetForDashboard(idDashboard, type, false) : Service.TilesGetForUser(UserContext.CurrentUserID, idDashboard, type);

            if (tiles == null || !tiles.Any())
            {
                View.DisplayUnableToLoadTile(RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.List, GroupItemsBy.None, OrderItemsBy.LastAccess, noticeboard));
            }
            View.CurrentTileLayout = Service.GetTileLayout(noticeboard, tiles.Count, tLayout, autoUpdateLayout);
            LoadTiles(tileRedirectOn, noticeboard, idDashboard, tiles, tileDisplayItems, groupBy);
        }
示例#9
0
        public void ShowMoreCommunities(long idDashboard, Int32 miniTileDisplayItems, TileLayout tLayout, Boolean autoUpdateLayout, GroupItemsBy groupBy, OrderItemsBy orderBy, long idCurrentTile, Boolean value, Boolean moreCommunities)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.Combined, groupBy, orderBy, View.CurrentDisplayNoticeboard, idCurrentTile, View.IdCurrentTag, true, value, moreCommunities));
            }
            else
            {
                View.DisplayLessCommand = value;
                View.DisplayMoreCommand = !value;
                if (value)
                {
                    View.SendUserAction(0, CurrentIdModule, idDashboard, ModuleDashboard.ActionType.CombinedDashboardMoreTiles);
                }
                else
                {
                    View.SendUserAction(0, CurrentIdModule, idDashboard, ModuleDashboard.ActionType.CombinedDashboardLessTiles);
                }
                dtoTileDisplay selectedTile = null;
                switch (groupBy)
                {
                case GroupItemsBy.CommunityType:
                    InitializeTileView(idDashboard, miniTileDisplayItems, tLayout, autoUpdateLayout, groupBy, orderBy, idCurrentTile, TileType.CommunityType, out selectedTile);
                    break;

                case GroupItemsBy.Tile:
                    InitializeTileView(idDashboard, miniTileDisplayItems, tLayout, autoUpdateLayout, groupBy, orderBy, idCurrentTile, TileType.CombinedTags, out selectedTile);
                    break;

                case GroupItemsBy.Tag:
                    InitializeTileView(idDashboard, miniTileDisplayItems, tLayout, autoUpdateLayout, groupBy, orderBy, idCurrentTile, TileType.CommunityTag, out selectedTile);
                    break;

                case GroupItemsBy.None:
                    View.LoadDashboard(RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.List, GroupItemsBy.None, OrderItemsBy.LastAccess, DisplayNoticeboard.OnRight));
                    break;
                }
            }
        }
示例#10
0
        private void LoadMiniTags(List <dtoLiteTile> tiles, Int32 miniTileDisplayItems, GroupItemsBy groupBy, OrderItemsBy orderBy, ref long preloadIdTag)
        {
            long    idTag = preloadIdTag;
            Boolean displayLessCommand = View.DisplayLessCommand;

            if (!tiles.Where(t => t.HasOnlyThisIdTag(idTag)).Any())
            {
                idTag = tiles.Where(t => t.HasOnlyOneTag()).Select(t => t.Tile.GetFirstIdTag()).FirstOrDefault();
            }
            View.IdCurrentTag = idTag;
            Language l = CurrentManager.GetDefaultLanguage();

            displayLessCommand = (displayLessCommand) && tiles.Where(t => !t.HasOnlyThisIdTag(idTag)).Count() > miniTileDisplayItems;
            Boolean forPreview          = View.IsPreview;
            List <dtoTileDisplay> items = tiles.Where(t => !t.HasOnlyThisIdTag(idTag)).Select(t => new dtoTileDisplay(t, UserContext.Language.Id, l.Id, forPreview)
            {
                CommandUrl = RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.Combined, groupBy, orderBy, DisplayNoticeboard.OnRight, t.Tile.Id, -1, true, displayLessCommand, false)
            }).ToList();

            if (displayLessCommand)
            {
                View.LoadMiniTiles(items);
                View.DisplayMoreCommand = false;
                View.DisplayLessCommand = true;
            }
            {
                View.LoadMiniTiles(items.Skip(0).Take(miniTileDisplayItems).ToList());
                View.DisplayMoreCommand = (tiles.Where(t => !t.HasOnlyThisIdTag(idTag)).Count() > miniTileDisplayItems);
            }
            preloadIdTag = idTag;
        }
示例#11
0
        private void LoadMiniTiles(long idDashboard, List <dtoLiteTile> tiles, Int32 miniTileDisplayItems, GroupItemsBy groupBy, OrderItemsBy orderBy, long preloadIdTile, out dtoTileDisplay selectedTile)
        {
            Boolean displayLessCommand = View.DisplayLessCommand;

            if (!tiles.Where(t => t.Tile.Id == preloadIdTile).Any())
            {
                preloadIdTile = tiles.Select(t => t.Tile.Id).FirstOrDefault();
            }
            View.IdCurrentTile = preloadIdTile;
            Language l = CurrentManager.GetDefaultLanguage();

            displayLessCommand = (displayLessCommand) && tiles.Where(t => t.Tile.Id != preloadIdTile).Count() > miniTileDisplayItems;
            List <dtoTileDisplay> items = null;
            Boolean forPreview          = View.IsPreview;

            if (forPreview)
            {
                items = tiles.Where(t => t.Tile.Id != preloadIdTile).Select(t => new dtoTileDisplay(t, UserContext.Language.Id, l.Id, forPreview)
                {
                    CommandUrl = RootObject.DashboardPreview(idDashboard, DashboardViewType.Combined, groupBy, orderBy, t.Tile.Id)
                }).ToList();
            }
            else
            {
                items = tiles.Where(t => t.Tile.Id != preloadIdTile).Select(t => new dtoTileDisplay(t, UserContext.Language.Id, l.Id)
                {
                    CommandUrl = RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.Combined, groupBy, orderBy, DisplayNoticeboard.OnRight, t.Tile.Id, -1, true, displayLessCommand, false)
                }).ToList();
            }

            if (displayLessCommand)
            {
                View.LoadMiniTiles(items);
                View.DisplayMoreCommand = false;
                View.DisplayLessCommand = true;
            }
            else
            {
                View.LoadMiniTiles(items.Skip(0).Take(miniTileDisplayItems).ToList());
                View.DisplayMoreCommand = (tiles.Where(t => t.Tile.Id != preloadIdTile).Count() > miniTileDisplayItems);
            }
            selectedTile = tiles.Where(t => t.Tile.Id == preloadIdTile).Select(t => new dtoTileDisplay(t, UserContext.Language.Id, l.Id, forPreview)).FirstOrDefault();
        }
示例#12
0
        private void InitializeTileView(long idDashboard, Int32 miniTileDisplayItems, TileLayout tLayout, Boolean autoUpdateLayout, GroupItemsBy groupBy, OrderItemsBy orderBy, long preloadIdTile, TileType type, out dtoTileDisplay selectedTile)
        {
            List <dtoLiteTile> tiles = (View.IsPreview) ? Service.TilesGetForDashboard(idDashboard, type, false) : Service.TilesGetForUser(UserContext.CurrentUserID, idDashboard, type);

            if (tiles != null)
            {
                tiles = tiles.Where(t => t.Tile.Type != TileType.DashboardUserDefined && t.Tile.Type != TileType.UserDefined).ToList();
            }
            if (tiles == null || !tiles.Any())
            {
                View.DisplayUnableToLoadTile(RootObject.LoadPortalView(UserContext.CurrentUserID, DashboardViewType.List, GroupItemsBy.None, OrderItemsBy.LastAccess, DisplayNoticeboard.OnRight));
                View.CurrentTileLayout = tLayout;
                selectedTile           = null;
            }
            else
            {
                View.CurrentTileLayout = Service.GetTileLayout(tiles.Count, tLayout, autoUpdateLayout);
                LoadMiniTiles(idDashboard, tiles, miniTileDisplayItems, groupBy, orderBy, preloadIdTile, out selectedTile);
            }
        }
示例#13
0
 public static String GroupByParameter(GroupItemsBy groupBy)
 {
     return("g=" + groupBy.ToString());
 }
示例#14
0
 public static String LoadPortalView(Int32 iduser, DashboardViewType view, GroupItemsBy groupBy, OrderItemsBy orderItemsBy, DisplayNoticeboard dNoticeboard, long idTile = -1, long idTag = -1, Boolean loadFromUrl = false, Boolean moreTiles = false, Boolean moreCommunities = false)
 {
     return(GetPortalPage(iduser, view) + "g=" + groupBy.ToString() + "&n=" + dNoticeboard.ToString() + "&o=" + orderItemsBy.ToString() + ((idTile == -1) ? "" : "&idTile=" + idTile.ToString()) + ((idTag == -1) ? "" : "&idTag=" + idTag.ToString()) + ((!loadFromUrl) ? "" : "&lfu=" + loadFromUrl.ToString()) + ((!moreTiles) ? "" : "&mt=" + moreTiles.ToString()) + ((!moreCommunities) ? "" : "&mc=" + moreCommunities.ToString()));
 }
示例#15
0
 public static String DashboardPreview(long idDashboard, DashboardViewType vType, GroupItemsBy groupBy, OrderItemsBy orderItemsBy, long idTile = -1, long idTag = -1)
 {
     return(dashboardmodulehome + "Preview.aspx?idDashboard=" + idDashboard.ToString() + "&vType=" + vType.ToString() + "&step=" + WizardDashboardStep.None.ToString() + "&g=" + groupBy.ToString() + "&o=" + orderItemsBy.ToString() + ((idTile == -1) ? "" : "&idTile=" + idTile.ToString()) + ((idTag == -1) ? "" : "&idTag=" + idTag.ToString()));
 }