public void RemovePageByLocation(string MenuLocation, GridPage replacePage) { GridPage foundPage = null; foreach (var page in this.Children) { if (page.Location == MenuLocation) { foundPage = page; break; } else if (page.Children.Count > 0) { var p = GetPageByLocation(MenuLocation, page); if (p != null) { page.Children.Remove(p); return; } } } if (foundPage != null) { this.Children.Remove(foundPage); } }
private string GetTranslatedString(ITranslator translator, string name, GridPage page, bool isTooltip) { string retVal = translator.GetTranslatedString(name); if (retVal == "UNKNOWN CHARACTER") { return(isTooltip ? page.MenuToolTip : page.MenuTitle); } return(retVal); }
public void ReplacePage(string MenuItem, GridPage replacePage) { foreach (var page in this.Children) { if (page.MenuID == MenuItem) { page.FromOSD(replacePage.ToOSD()); return; } else if (page.Children.Count > 0) { var p = GetPage(MenuItem, page); if (p != null) { p.FromOSD(replacePage.ToOSD()); return; } } } }
public GridPage GetParent(GridPage item, GridPage toCheck) { if (toCheck == null) { toCheck = this; } foreach (var p in toCheck.Children) { if (item.Location == p.Location) { return(toCheck); } else if (p.Children.Count > 0) { var pp = GetParent(item, p); if (pp != null) { return(pp); } } } return(null); }
public GridPage GetPageByLocation(string item, GridPage rootPage) { if (rootPage == null) { rootPage = this; } foreach (var page in rootPage.Children) { if (page.Location == item) { return(page); } else if (page.Children.Count > 0) { var p = GetPageByLocation(item, page); if (p != null) { return(p); } } } return(null); }
public Dictionary<string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary<string, object>(); #region Find pages List<Dictionary<string, object>> pages = new List<Dictionary<string, object>>(); IGenericsConnector generics = Aurora.DataManager.DataManager.RequestPlugin<IGenericsConnector>(); GridPage rootPage = generics.GetGeneric<GridPage>(UUID.Zero, "WebPages", "Root"); rootPage.Children.Sort((a, b) => a.MenuPosition.CompareTo(b.MenuPosition)); List<GridPage> allPages = new List<GridPage>(rootPage.Children); foreach (GridPage page in rootPage.Children) allPages.AddRange(page.Children); allPages.RemoveAll((a) => !a.ShowInMenu); string MenuItem = requestParameters.ContainsKey("MenuItem") ? requestParameters["MenuItem"].ToString() : ""; foreach (GridPage page in allPages) { pages.Add(new Dictionary<string, object> { { "Value", page.Location }, { "Name", page.Location }, { "PageSelected", MenuItem == page.Location ? "selected=\"selected\"" : "" } }); } vars.Add("PagesList", pages); #endregion if (requestParameters.ContainsKey("DeleteItem")) { rootPage.RemovePageByLocation(MenuItem, null); generics.AddGeneric(UUID.Zero, "WebPages", "Root", rootPage.ToOSD()); response = "<h3>Successfully updated menu</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 0);" + "</script>"; return null; } if (requestParameters.ContainsKey("AddItem")) { //generics.AddGeneric(UUID.Zero, "WebPages", "Root", rootPage.ToOSD()); vars.Add("EdittingPageID", -2); vars.Add("DisplayEdit", true); } if (requestParameters.ContainsKey("SelectItem")) { GridPage page = rootPage.GetPageByLocation(MenuItem); vars.Add("PageTitle", page.MenuTitle); vars.Add("PageTooltip", page.MenuToolTip); vars.Add("PageID", page.MenuID); vars.Add("PagePosition", page.MenuPosition); vars.Add("PageLocation", page.Location); vars.Add("EdittingPageID", page.MenuID); vars.Add("RequiresLoginYes", page.LoggedInRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresLoginNo", !page.LoggedInRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresLogoutYes", page.LoggedOutRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresLogoutNo", !page.LoggedOutRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresAdminYes", page.AdminRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresAdminNo", !page.AdminRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresAdminLevel", page.AdminLevelRequired); vars.Add("DisplayInMenuYes", page.ShowInMenu ? "selected=\"selected\"" : ""); vars.Add("DisplayInMenuNo", !page.ShowInMenu ? "selected=\"selected\"" : ""); vars.Add("DisplayEdit", true); pages = new List<Dictionary<string, object>> { new Dictionary<string, object> { { "Value", "Top Level" }, { "Name", translator.GetTranslatedString("TopLevel") }, { "PageSelected", "" } } }; GridPage parent = rootPage.GetParent(page); foreach (GridPage p in allPages) { pages.Add(new Dictionary<string, object> { { "Value", p.Location }, { "Name", p.Location }, { "PageSelected", parent.Location == p.Location ? "selected=\"selected\"" : "" } }); } vars.Add("ParentPagesList", pages); } else { vars.Add("PageTitle", ""); vars.Add("PageTooltip", ""); vars.Add("PageID", ""); vars.Add("PagePosition", ""); vars.Add("PageLocation", ""); if(!vars.ContainsKey("EdittingPageID")) vars.Add("EdittingPageID", ""); vars.Add("RequiresLoginYes", ""); vars.Add("RequiresLoginNo", ""); vars.Add("RequiresLogoutYes", ""); vars.Add("RequiresLogoutNo", ""); vars.Add("RequiresAdminYes", ""); vars.Add("RequiresAdminNo", ""); vars.Add("RequiresAdminLevel", "1"); pages = new List<Dictionary<string, object>> { new Dictionary<string, object> { { "Value", "Top Level" }, { "Name", translator.GetTranslatedString("TopLevel") }, { "PageSelected", "" } } }; foreach (GridPage p in allPages) { pages.Add(new Dictionary<string, object> { { "Value", p.Location }, { "Name", p.Location }, { "PageSelected", "" } }); } vars.Add("ParentPagesList", pages); } if (requestParameters.ContainsKey("SaveMenuItem")) { string edittingPageID = requestParameters["EdittingPageID"].ToString(); string PageTitle = requestParameters["PageTitle"].ToString(); string PageTooltip = requestParameters["PageTooltip"].ToString(); string PagePosition = requestParameters["PagePosition"].ToString(); string PageID = requestParameters["PageID"].ToString(); string PageLocation = requestParameters["PageLocation"].ToString(); bool RequiresLogin = bool.Parse(requestParameters["RequiresLogin"].ToString()); bool RequiresLogout = bool.Parse(requestParameters["RequiresLogout"].ToString()); bool RequiresAdmin = bool.Parse(requestParameters["RequiresAdmin"].ToString()); bool DisplayInMenu = bool.Parse(requestParameters["DisplayInMenu"].ToString()); string ParentMenuItem = requestParameters["ParentMenuItem"].ToString(); int RequiredAdminLevel = int.Parse(requestParameters["RequiredAdminLevel"].ToString()); GridPage page = rootPage.GetPage(edittingPageID); bool add = page == null; if (page == null) page = new GridPage { MenuID = PageLocation, ShowInMenu = true }; page.Location = PageLocation; page.MenuID = PageID; page.MenuPosition = int.Parse(PagePosition); page.MenuTitle = PageTitle; page.MenuToolTip = PageTooltip; page.LoggedInRequired = RequiresLogin; page.LoggedOutRequired = RequiresLogout; page.AdminRequired = RequiresAdmin; page.AdminLevelRequired = RequiredAdminLevel; page.ShowInMenu = DisplayInMenu; GridPage parent = rootPage.GetPageByLocation(ParentMenuItem); if (parent != page) { if (!add) rootPage.RemovePage(edittingPageID, page); if (parent != null) parent.Children.Add(page); else //Top Level rootPage.Children.Add(page); response = "<h3>Successfully updated menu</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 0);" + "</script>"; } else response = "<h3>" + translator.GetTranslatedString("CannotSetParentToChild") + "</h3>"; generics.AddGeneric(UUID.Zero, "WebPages", "Root", rootPage.ToOSD()); return null; } vars.Add("PageTitleText", translator.GetTranslatedString("PageTitleText")); vars.Add("PageTooltipText", translator.GetTranslatedString("PageTooltipText")); vars.Add("PagePositionText", translator.GetTranslatedString("PagePositionText")); vars.Add("PageIDText", translator.GetTranslatedString("PageIDText")); vars.Add("PageLocationText", translator.GetTranslatedString("PageLocationText")); vars.Add("SaveMenuItemChanges", translator.GetTranslatedString("SaveMenuItemChanges")); vars.Add("RequiresLoginText", translator.GetTranslatedString("RequiresLoginText")); vars.Add("RequiresLogoutText", translator.GetTranslatedString("RequiresLogoutText")); vars.Add("RequiresAdminText", translator.GetTranslatedString("RequiresAdminText")); vars.Add("RequiresAdminLevelText", translator.GetTranslatedString("RequiresAdminLevelText")); vars.Add("DisplayInMenu", translator.GetTranslatedString("DisplayInMenu")); vars.Add("SelectItem", translator.GetTranslatedString("SelectItem")); vars.Add("DeleteItem", translator.GetTranslatedString("DeleteItem")); vars.Add("AddItem", translator.GetTranslatedString("AddItem")); vars.Add("PageManager", translator.GetTranslatedString("PageManager")); vars.Add("ParentText", translator.GetTranslatedString("ParentText")); vars.Add("Yes", translator.GetTranslatedString("Yes")); vars.Add("No", translator.GetTranslatedString("No")); return vars; }
public GridPage GetParent(GridPage page) { return(GetParent(page, null)); }
private static void InitializeDefaults() { _rootPage = new GridPage(); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "home", Location = "home.html", MenuPosition = 0, MenuTitle = "MenuHome", MenuToolTip = "TooltipsMenuHome" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "news", Location = "news_list.html", MenuPosition = 1, MenuTitle = "MenuNews", MenuToolTip = "TooltipsMenuNews" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "world", Location = "world.html", MenuPosition = 2, MenuTitle = "MenuWorld", MenuToolTip = "TooltipsMenuWorld", Children = new List <GridPage> { new GridPage { ShowInMenu = true, MenuID = "world", Location = "world.html", MenuPosition = 2, MenuTitle = "MenuWorldMap", MenuToolTip = "TooltipsMenuWorldMap" }, new GridPage { ShowInMenu = true, MenuID = "region_search", Location = "region_search.html", MenuPosition = 2, MenuTitle = "MenuRegionSearch", MenuToolTip = "TooltipsMenuRegionSearch" }, new GridPage { ShowInMenu = true, MenuID = "region_list", Location = "region_list.html", MenuPosition = 2, MenuTitle = "MenuRegion", MenuToolTip = "TooltipsMenuRegion" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "users", Location = "users.html", MenuPosition = 3, MenuTitle = "MenuUser", MenuToolTip = "TooltipsMenuUser", Children = new List <GridPage> { new GridPage { ShowInMenu = true, LoggedInRequired = true, MenuID = "change_user_information", Location = "change_user_information.html", MenuPosition = 1, MenuTitle = "MenuChangeUserInformation", MenuToolTip = "TooltipsMenuChangeUserInformation" }, new GridPage { ShowInMenu = true, MenuID = "online_users", Location = "online_users.html", MenuPosition = 2, MenuTitle = "MenuOnlineUsers", MenuToolTip = "TooltipsMenuOnlineUsers" }, new GridPage { ShowInMenu = true, MenuID = "user_search", Location = "user_search.html", MenuPosition = 3, MenuTitle = "MenuUserSearch", MenuToolTip = "TooltipsMenuUserSearch" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "help", Location = "help.html", MenuPosition = 5, MenuTitle = "MenuHelp", MenuToolTip = "TooltipsMenuHelp", Children = new List <GridPage> { new GridPage { ShowInMenu = true, MenuID = "chat", Location = "chat.html", MenuPosition = 4, MenuTitle = "MenuChat", MenuToolTip = "TooltipsMenuChat" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, LoggedInRequired = true, MenuID = "logout", Location = "logout.html", MenuPosition = 7, MenuTitle = "MenuLogout", MenuToolTip = "TooltipsMenuLogout" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, LoggedOutRequired = true, MenuID = "register", Location = "register.html", MenuPosition = 7, MenuTitle = "MenuRegister", MenuToolTip = "TooltipsMenuRegister" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, LoggedOutRequired = true, MenuID = "login", Location = "login.html", MenuPosition = 8, MenuTitle = "MenuLogin", MenuToolTip = "TooltipsMenuLogin", Children = new List <GridPage> { new GridPage { ShowInMenu = true, MenuID = "forgot_pass", Location = "forgot_pass.html", MenuPosition = 1, MenuTitle = "MenuForgotPass", MenuToolTip = "TooltipsMenuForgotPass" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "manager", Location = "admin/manager.html", MenuPosition = 9, MenuTitle = "MenuManager", MenuToolTip = "TooltipsMenuManager", Children = new List <GridPage> { new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "news_manager", Location = "admin/news_manager.html", MenuPosition = 8, MenuTitle = "MenuNewsManager", MenuToolTip = "TooltipsMenuNewsManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "user_search", Location = "user_search.html", MenuPosition = 8, MenuTitle = "MenuUserManager", MenuToolTip = "TooltipsMenuUserManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "factory_reset", Location = "admin/factory_reset.html", MenuPosition = 8, MenuTitle = "MenuFactoryReset", MenuToolTip = "TooltipsMenuFactoryReset" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "page_manager", Location = "admin/page_manager.html", MenuPosition = 8, MenuTitle = "MenuPageManager", MenuToolTip = "TooltipsMenuPageManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "settings_manager", Location = "admin/settings_manager.html", MenuPosition = 8, MenuTitle = "MenuSettingsManager", MenuToolTip = "TooltipsMenuSettingsManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "welcomescreen_manager", Location = "admin/welcomescreen_manager.html", MenuPosition = 8, MenuTitle = "MenuWelcomeScreenManager", MenuToolTip = "TooltipsMenuWelcomeScreenManager" } } }); _rootPage.Children.Add(new GridPage { MenuID = "add_news", ShowInMenu = false, AdminRequired = true, MenuPosition = 8, Location = "admin/add_news.html" }); _rootPage.Children.Add(new GridPage { MenuID = "edit_news", ShowInMenu = false, AdminRequired = true, MenuPosition = 8, Location = "admin/edit_news.html" }); _rootPage.Children.Add(new GridPage { MenuID = "edit_user", ShowInMenu = false, AdminRequired = true, MenuPosition = 8, Location = "admin/edit_user.html" }); _rootPage.Children.Add(new GridPage { ShowInMenu = false, MenuID = "news_info", Location = "news.html" }); //Things added, but not used /*pages.Add(new Dictionary<string, object> { { "MenuItemID", "tweets" }, * { "ShowInMenu", false }, * { "MenuItemLocation", "tweets.html" }, * { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuTweets") }, * { "MenuItemTitle", translator.GetTranslatedString("MenuTweets") } }); * * pages.Add(new Dictionary<string, object> { { "MenuItemID", "agent_info" }, * { "ShowInMenu", false }, * { "MenuItemLocation", "agent_info.html" }, * { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuAgentInfo") }, * { "MenuItemTitle", translator.GetTranslatedString("MenuAgentInfo") } }); * * pages.Add(new Dictionary<string, object> { { "MenuItemID", "region_info" }, * { "ShowInMenu", false }, * { "MenuItemLocation", "region_info.html" }, * { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuRegionInfo") }, * { "MenuItemTitle", translator.GetTranslatedString("MenuRegionInfo") } }); * pages.Add(new Dictionary<string, object> { { "MenuItemID", "add_news" }, * { "ShowInMenu", false }, * { "MenuItemLocation", "admin/add_news.html" }, * { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuNewsManager") }, * { "MenuItemTitle", translator.GetTranslatedString("MenuNewsManager") } }); * pages.Add(new Dictionary<string, object> { { "MenuItemID", "edit_news" }, * { "ShowInMenu", false }, * { "MenuItemLocation", "admin/edit_news.html" }, * { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuNewsManager") }, * { "MenuItemTitle", translator.GetTranslatedString("MenuNewsManager") } });*/ }
public GridPage GetParent(GridPage page) { return GetParent(page, null); }
public void RemovePageByLocation(string MenuLocation, GridPage replacePage) { GridPage foundPage = null; foreach (var page in this.Children) { if (page.Location == MenuLocation) { foundPage = page; break; } else if (page.Children.Count > 0) { var p = GetPageByLocation(MenuLocation, page); if (p != null) { page.Children.Remove(p); return; } } } if (foundPage != null) this.Children.Remove(foundPage); }
public void ReplacePage(string MenuItem, GridPage replacePage) { foreach (var page in this.Children) { if (page.MenuID == MenuItem) { page.FromOSD(replacePage.ToOSD()); return; } else if (page.Children.Count > 0) { var p = GetPage(MenuItem, page); if (p != null) { p.FromOSD(replacePage.ToOSD()); return; } } } }
public GridPage GetPageByLocation(string item, GridPage rootPage) { if (rootPage == null) rootPage = this; foreach (var page in rootPage.Children) { if (page.Location == item) return page; else if (page.Children.Count > 0) { var p = GetPageByLocation(item, page); if (p != null) return p; } } return null; }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); #region Find pages List <Dictionary <string, object> > pages = new List <Dictionary <string, object> >(); IGenericsConnector generics = Aurora.DataManager.DataManager.RequestPlugin <IGenericsConnector>(); var settings = generics.GetGeneric <GridSettings>(UUID.Zero, "WebSettings", "Settings"); GridPage rootPage = generics.GetGeneric <GridPage>(UUID.Zero, "WebPages", "Root"); rootPage.Children.Sort((a, b) => a.MenuPosition.CompareTo(b.MenuPosition)); foreach (GridPage page in rootPage.Children) { if (page.LoggedOutRequired && Authenticator.CheckAuthentication(httpRequest)) { continue; } if (page.LoggedInRequired && !Authenticator.CheckAuthentication(httpRequest)) { continue; } if (page.AdminRequired && !Authenticator.CheckAdminAuthentication(httpRequest, page.AdminLevelRequired)) { continue; } List <Dictionary <string, object> > childPages = new List <Dictionary <string, object> >(); page.Children.Sort((a, b) => a.MenuPosition.CompareTo(b.MenuPosition)); foreach (GridPage childPage in page.Children) { if (childPage.LoggedOutRequired && Authenticator.CheckAuthentication(httpRequest)) { continue; } if (childPage.LoggedInRequired && !Authenticator.CheckAuthentication(httpRequest)) { continue; } if (childPage.AdminRequired && !Authenticator.CheckAdminAuthentication(httpRequest, childPage.AdminLevelRequired)) { continue; } childPages.Add(new Dictionary <string, object> { { "ChildMenuItemID", childPage.MenuID }, { "ChildShowInMenu", childPage.ShowInMenu }, { "ChildMenuItemLocation", childPage.Location }, { "ChildMenuItemTitleHelp", GetTranslatedString(translator, childPage.MenuToolTip, childPage, true) }, { "ChildMenuItemTitle", GetTranslatedString(translator, childPage.MenuTitle, childPage, false) } }); //Add one for menu.js pages.Add(new Dictionary <string, object> { { "MenuItemID", childPage.MenuID }, { "ShowInMenu", false }, { "MenuItemLocation", childPage.Location } }); } pages.Add(new Dictionary <string, object> { { "MenuItemID", page.MenuID }, { "ShowInMenu", page.ShowInMenu }, { "HasChildren", page.Children.Count > 0 }, { "ChildrenMenuItems", childPages }, { "MenuItemLocation", page.Location }, { "MenuItemTitleHelp", GetTranslatedString(translator, page.MenuToolTip, page, true) }, { "MenuItemTitle", GetTranslatedString(translator, page.MenuTitle, page, false) } }); } vars.Add("MenuItems", pages); #endregion // Tooltips Urls vars.Add("TooltipsWelcomeScreen", translator.GetTranslatedString("TooltipsWelcomeScreen")); vars.Add("TooltipsWorldMap", translator.GetTranslatedString("TooltipsWorldMap")); // Style Switcher vars.Add("styles1", translator.GetTranslatedString("styles1")); vars.Add("styles2", translator.GetTranslatedString("styles2")); vars.Add("styles3", translator.GetTranslatedString("styles3")); vars.Add("styles4", translator.GetTranslatedString("styles4")); vars.Add("styles5", translator.GetTranslatedString("styles5")); vars.Add("StyleSwitcherStylesText", translator.GetTranslatedString("StyleSwitcherStylesText")); vars.Add("StyleSwitcherLanguagesText", translator.GetTranslatedString("StyleSwitcherLanguagesText")); vars.Add("StyleSwitcherChoiceText", translator.GetTranslatedString("StyleSwitcherChoiceText")); // Language Switcher vars.Add("en", translator.GetTranslatedString("en")); vars.Add("fr", translator.GetTranslatedString("fr")); vars.Add("de", translator.GetTranslatedString("de")); vars.Add("it", translator.GetTranslatedString("it")); vars.Add("es", translator.GetTranslatedString("es")); // Index Page vars.Add("HomeText", translator.GetTranslatedString("HomeText")); vars.Add("HomeTextWelcome", translator.GetTranslatedString("HomeTextWelcome")); vars.Add("HomeTextTips", translator.GetTranslatedString("HomeTextTips")); vars.Add("WelcomeScreen", translator.GetTranslatedString("WelcomeScreen")); vars.Add("WelcomeToText", translator.GetTranslatedString("WelcomeToText")); if (PagesMigrator.RequiresUpdate() && PagesMigrator.CheckWhetherIgnoredVersionUpdate(settings.LastPagesVersionUpdateIgnored)) { vars.Add("PagesUpdateRequired", translator.GetTranslatedString("Pages") + " " + translator.GetTranslatedString("DefaultsUpdated")); } else { vars.Add("PagesUpdateRequired", ""); } if (SettingsMigrator.RequiresUpdate() && SettingsMigrator.CheckWhetherIgnoredVersionUpdate(settings.LastSettingsVersionUpdateIgnored)) { vars.Add("SettingsUpdateRequired", translator.GetTranslatedString("Settings") + " " + translator.GetTranslatedString("DefaultsUpdated")); } else { vars.Add("SettingsUpdateRequired", ""); } vars.Add("ShowLanguageTranslatorBar", !settings.HideLanguageTranslatorBar); vars.Add("ShowStyleBar", !settings.HideStyleBar); vars.Add("Maintenance", false); vars.Add("NoMaintenance", true); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator) { var vars = new Dictionary <string, object>(); #region Find pages List <Dictionary <string, object> > pages = new List <Dictionary <string, object> >(); IGenericsConnector generics = Aurora.DataManager.DataManager.RequestPlugin <IGenericsConnector>(); GridPage rootPage = generics.GetGeneric <GridPage>(UUID.Zero, "WebPages", "Root"); rootPage.Children.Sort((a, b) => a.MenuPosition.CompareTo(b.MenuPosition)); List <GridPage> allPages = new List <GridPage>(rootPage.Children); foreach (GridPage page in rootPage.Children) { allPages.AddRange(page.Children); } allPages.RemoveAll((a) => !a.ShowInMenu); string MenuItem = requestParameters.ContainsKey("MenuItem") ? requestParameters["MenuItem"].ToString() : ""; foreach (GridPage page in allPages) { pages.Add(new Dictionary <string, object> { { "Value", page.Location }, { "Name", page.Location }, { "PageSelected", MenuItem == page.Location ? "selected=\"selected\"" : "" } }); } vars.Add("PagesList", pages); #endregion bool changed = false; string error = translator.GetTranslatedString("ChangesSavedSuccessfully"); if (requestParameters.ContainsKey("DeleteItem")) { rootPage.RemovePageByLocation(MenuItem, null); generics.AddGeneric(UUID.Zero, "WebPages", "Root", rootPage.ToOSD()); webInterface.Redirect(httpResponse, "index.html?page=page_manager", filename); } if (requestParameters.ContainsKey("AddItem")) { //generics.AddGeneric(UUID.Zero, "WebPages", "Root", rootPage.ToOSD()); vars.Add("EdittingPageID", -2); vars.Add("DisplayEdit", true); } if (requestParameters.ContainsKey("SelectItem")) { GridPage page = rootPage.GetPageByLocation(MenuItem); vars.Add("PageTitle", page.MenuTitle); vars.Add("PageTooltip", page.MenuToolTip); vars.Add("PageID", page.MenuID); vars.Add("PagePosition", page.MenuPosition); vars.Add("PageLocation", page.Location); vars.Add("EdittingPageID", page.MenuID); vars.Add("RequiresLoginYes", page.LoggedInRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresLoginNo", !page.LoggedInRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresLogoutYes", page.LoggedOutRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresLogoutNo", !page.LoggedOutRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresAdminYes", page.AdminRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresAdminNo", !page.AdminRequired ? "selected=\"selected\"" : ""); vars.Add("RequiresAdminLevel", page.AdminLevelRequired); vars.Add("DisplayInMenuYes", page.ShowInMenu ? "selected=\"selected\"" : ""); vars.Add("DisplayInMenuNo", !page.ShowInMenu ? "selected=\"selected\"" : ""); vars.Add("DisplayEdit", true); pages = new List <Dictionary <string, object> > { new Dictionary <string, object> { { "Value", "Top Level" }, { "Name", translator.GetTranslatedString("TopLevel") }, { "PageSelected", "" } } }; GridPage parent = rootPage.GetParent(page); foreach (GridPage p in allPages) { pages.Add(new Dictionary <string, object> { { "Value", p.Location }, { "Name", p.Location }, { "PageSelected", parent.Location == p.Location ? "selected=\"selected\"" : "" } }); } vars.Add("ParentPagesList", pages); } else { vars.Add("PageTitle", ""); vars.Add("PageTooltip", ""); vars.Add("PageID", ""); vars.Add("PagePosition", ""); vars.Add("PageLocation", ""); if (!vars.ContainsKey("EdittingPageID")) { vars.Add("EdittingPageID", ""); } vars.Add("RequiresLoginYes", ""); vars.Add("RequiresLoginNo", ""); vars.Add("RequiresLogoutYes", ""); vars.Add("RequiresLogoutNo", ""); vars.Add("RequiresAdminYes", ""); vars.Add("RequiresAdminNo", ""); vars.Add("RequiresAdminLevel", "1"); pages = new List <Dictionary <string, object> > { new Dictionary <string, object> { { "Value", "Top Level" }, { "Name", translator.GetTranslatedString("TopLevel") }, { "PageSelected", "" } } }; foreach (GridPage p in allPages) { pages.Add(new Dictionary <string, object> { { "Value", p.Location }, { "Name", p.Location }, { "PageSelected", "" } }); } vars.Add("ParentPagesList", pages); } if (requestParameters.ContainsKey("SaveMenuItem")) { changed = true; string edittingPageID = requestParameters["EdittingPageID"].ToString(); string PageTitle = requestParameters["PageTitle"].ToString(); string PageTooltip = requestParameters["PageTooltip"].ToString(); string PagePosition = requestParameters["PagePosition"].ToString(); string PageID = requestParameters["PageID"].ToString(); string PageLocation = requestParameters["PageLocation"].ToString(); bool RequiresLogin = bool.Parse(requestParameters["RequiresLogin"].ToString()); bool RequiresLogout = bool.Parse(requestParameters["RequiresLogout"].ToString()); bool RequiresAdmin = bool.Parse(requestParameters["RequiresAdmin"].ToString()); bool DisplayInMenu = bool.Parse(requestParameters["DisplayInMenu"].ToString()); string ParentMenuItem = requestParameters["ParentMenuItem"].ToString(); int RequiredAdminLevel = int.Parse(requestParameters["RequiredAdminLevel"].ToString()); GridPage page = rootPage.GetPage(edittingPageID); bool add = page == null; if (page == null) { page = new GridPage { MenuID = PageLocation, ShowInMenu = true } } ; page.Location = PageLocation; page.MenuID = PageID; page.MenuPosition = int.Parse(PagePosition); page.MenuTitle = PageTitle; page.MenuToolTip = PageTooltip; page.LoggedInRequired = RequiresLogin; page.LoggedOutRequired = RequiresLogout; page.AdminRequired = RequiresAdmin; page.AdminLevelRequired = RequiredAdminLevel; page.ShowInMenu = DisplayInMenu; GridPage parent = rootPage.GetPageByLocation(ParentMenuItem); if (parent != page) { if (!add) { rootPage.RemovePage(edittingPageID, page); } if (parent != null) { parent.Children.Add(page); } else //Top Level { rootPage.Children.Add(page); } } else { error = translator.GetTranslatedString("CannotSetParentToChild"); } generics.AddGeneric(UUID.Zero, "WebPages", "Root", rootPage.ToOSD()); webInterface.Redirect(httpResponse, "index.html?page=page_manager", filename); } vars.Add("PageTitleText", translator.GetTranslatedString("PageTitleText")); vars.Add("PageTooltipText", translator.GetTranslatedString("PageTooltipText")); vars.Add("PagePositionText", translator.GetTranslatedString("PagePositionText")); vars.Add("PageIDText", translator.GetTranslatedString("PageIDText")); vars.Add("PageLocationText", translator.GetTranslatedString("PageLocationText")); vars.Add("SaveMenuItemChanges", translator.GetTranslatedString("SaveMenuItemChanges")); vars.Add("RequiresLoginText", translator.GetTranslatedString("RequiresLoginText")); vars.Add("RequiresLogoutText", translator.GetTranslatedString("RequiresLogoutText")); vars.Add("RequiresAdminText", translator.GetTranslatedString("RequiresAdminText")); vars.Add("RequiresAdminLevelText", translator.GetTranslatedString("RequiresAdminLevelText")); vars.Add("DisplayInMenu", translator.GetTranslatedString("DisplayInMenu")); vars.Add("SelectItem", translator.GetTranslatedString("SelectItem")); vars.Add("DeleteItem", translator.GetTranslatedString("DeleteItem")); vars.Add("AddItem", translator.GetTranslatedString("AddItem")); vars.Add("PageManager", translator.GetTranslatedString("PageManager")); vars.Add("ParentText", translator.GetTranslatedString("ParentText")); vars.Add("Yes", translator.GetTranslatedString("Yes")); vars.Add("No", translator.GetTranslatedString("No")); vars.Add("ChangesSavedSuccessfully", changed ? error : ""); return(vars); }
public GridPage GetParent(GridPage item, GridPage toCheck) { if (toCheck == null) toCheck = this; foreach (var p in toCheck.Children) { if (item.Location == p.Location) return toCheck; else if (p.Children.Count > 0) { var pp = GetParent(item, p); if (pp != null) return pp; } } return null; }
private string GetTranslatedString(ITranslator translator, string name, GridPage page, bool isTooltip) { string retVal = translator.GetTranslatedString(name); if (retVal == "UNKNOWN CHARACTER") return isTooltip ? page.MenuToolTip : page.MenuTitle; return retVal; }
private static void InitializeDefaults() { _rootPage = new GridPage(); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "home", Location = "home.html", MenuPosition = 0, MenuTitle = "MenuHome", MenuToolTip = "TooltipsMenuHome" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "news", Location = "news_list.html", MenuPosition = 1, MenuTitle = "MenuNews", MenuToolTip = "TooltipsMenuNews" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "world", Location = "world.html", MenuPosition = 2, MenuTitle = "MenuWorld", MenuToolTip = "TooltipsMenuWorld", Children = new List<GridPage> { new GridPage { ShowInMenu = true, MenuID = "world", Location = "world.html", MenuPosition = 2, MenuTitle = "MenuWorldMap", MenuToolTip = "TooltipsMenuWorldMap" }, new GridPage { ShowInMenu = true, MenuID = "region_search", Location = "region_search.html", MenuPosition = 2, MenuTitle = "MenuRegionSearch", MenuToolTip = "TooltipsMenuRegionSearch" }, new GridPage { ShowInMenu = true, MenuID = "region_list", Location = "region_list.html", MenuPosition = 2, MenuTitle = "MenuRegion", MenuToolTip = "TooltipsMenuRegion" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "users", Location = "users.html", MenuPosition = 3, MenuTitle = "MenuUser", MenuToolTip = "TooltipsMenuUser", Children = new List<GridPage> { new GridPage { ShowInMenu = true, LoggedInRequired = true, MenuID = "change_user_information", Location = "change_user_information.html", MenuPosition = 1, MenuTitle = "MenuChangeUserInformation", MenuToolTip = "TooltipsMenuChangeUserInformation" }, new GridPage { ShowInMenu = true, MenuID = "online_users", Location = "online_users.html", MenuPosition = 2, MenuTitle = "MenuOnlineUsers", MenuToolTip = "TooltipsMenuOnlineUsers" }, new GridPage { ShowInMenu = true, MenuID = "user_search", Location = "user_search.html", MenuPosition = 3, MenuTitle = "MenuUserSearch", MenuToolTip = "TooltipsMenuUserSearch" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, MenuID = "help", Location = "help.html", MenuPosition = 5, MenuTitle = "MenuHelp", MenuToolTip = "TooltipsMenuHelp", Children = new List<GridPage> { new GridPage { ShowInMenu = true, MenuID = "help", Location = "help.html", MenuPosition = 1, MenuTitle = "MenuViewerHelp", MenuToolTip = "TooltipsMenuViewerHelp" }, new GridPage { ShowInMenu = true, MenuID = "chat", Location = "chat.html", MenuPosition = 2, MenuTitle = "MenuChat", MenuToolTip = "TooltipsMenuChat" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, LoggedInRequired = true, MenuID = "logout", Location = "logout.html", MenuPosition = 7, MenuTitle = "MenuLogout", MenuToolTip = "TooltipsMenuLogout" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, LoggedOutRequired = true, MenuID = "register", Location = "register.html", MenuPosition = 7, MenuTitle = "MenuRegister", MenuToolTip = "TooltipsMenuRegister" }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, LoggedOutRequired = true, MenuID = "login", Location = "login.html", MenuPosition = 8, MenuTitle = "MenuLogin", MenuToolTip = "TooltipsMenuLogin", Children = new List<GridPage> { new GridPage { ShowInMenu = true, MenuID = "forgot_pass", Location = "forgot_pass.html", MenuPosition = 1, MenuTitle = "MenuForgotPass", MenuToolTip = "TooltipsMenuForgotPass" } } }); _rootPage.Children.Add(new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "manager", Location = "admin/manager.html", MenuPosition = 9, MenuTitle = "MenuManager", MenuToolTip = "TooltipsMenuManager", Children = new List<GridPage> { new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "news_manager", Location = "admin/news_manager.html", MenuPosition = 8, MenuTitle = "MenuNewsManager", MenuToolTip = "TooltipsMenuNewsManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "user_search", Location = "user_search.html", MenuPosition = 8, MenuTitle = "MenuUserManager", MenuToolTip = "TooltipsMenuUserManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "factory_reset", Location = "admin/factory_reset.html", MenuPosition = 8, MenuTitle = "MenuFactoryReset", MenuToolTip = "TooltipsMenuFactoryReset" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "page_manager", Location = "admin/page_manager.html", MenuPosition = 8, MenuTitle = "MenuPageManager", MenuToolTip = "TooltipsMenuPageManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "settings_manager", Location = "admin/settings_manager.html", MenuPosition = 8, MenuTitle = "MenuSettingsManager", MenuToolTip = "TooltipsMenuSettingsManager" }, new GridPage { ShowInMenu = true, AdminRequired = true, MenuID = "welcomescreen_manager", Location = "admin/welcomescreen_manager.html", MenuPosition = 8, MenuTitle = "MenuWelcomeScreenManager", MenuToolTip = "TooltipsMenuWelcomeScreenManager" } } }); _rootPage.Children.Add(new GridPage { MenuID = "add_news", ShowInMenu = false, AdminRequired = true, MenuPosition = 8, Location = "admin/add_news.html" }); _rootPage.Children.Add(new GridPage { MenuID = "edit_news", ShowInMenu = false, AdminRequired = true, MenuPosition = 8, Location = "admin/edit_news.html" }); _rootPage.Children.Add(new GridPage { MenuID = "edit_user", ShowInMenu = false, AdminRequired = true, MenuPosition = 8, Location = "admin/edit_user.html" }); _rootPage.Children.Add(new GridPage { ShowInMenu = false, MenuID = "news_info", Location = "news.html" }); //Things added, but not used /*pages.Add(new Dictionary<string, object> { { "MenuItemID", "tweets" }, { "ShowInMenu", false }, { "MenuItemLocation", "tweets.html" }, { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuTweets") }, { "MenuItemTitle", translator.GetTranslatedString("MenuTweets") } }); pages.Add(new Dictionary<string, object> { { "MenuItemID", "agent_info" }, { "ShowInMenu", false }, { "MenuItemLocation", "agent_info.html" }, { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuAgentInfo") }, { "MenuItemTitle", translator.GetTranslatedString("MenuAgentInfo") } }); pages.Add(new Dictionary<string, object> { { "MenuItemID", "region_info" }, { "ShowInMenu", false }, { "MenuItemLocation", "region_info.html" }, { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuRegionInfo") }, { "MenuItemTitle", translator.GetTranslatedString("MenuRegionInfo") } }); pages.Add(new Dictionary<string, object> { { "MenuItemID", "add_news" }, { "ShowInMenu", false }, { "MenuItemLocation", "admin/add_news.html" }, { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuNewsManager") }, { "MenuItemTitle", translator.GetTranslatedString("MenuNewsManager") } }); pages.Add(new Dictionary<string, object> { { "MenuItemID", "edit_news" }, { "ShowInMenu", false }, { "MenuItemLocation", "admin/edit_news.html" }, { "MenuItemTitleHelp", translator.GetTranslatedString("TooltipsMenuNewsManager") }, { "MenuItemTitle", translator.GetTranslatedString("MenuNewsManager") } });*/ }