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> >(); var settings = webInterface.GetWebUISettings(); var rootPage = webInterface.GetGridPages(); 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) }, { "MenuItemToolTip", GetTranslatedString(translator, page.MenuToolTip, page, true) } }); } 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("ga", translator.GetTranslatedString("ga")); vars.Add("it", translator.GetTranslatedString("it")); vars.Add("es", translator.GetTranslatedString("es")); vars.Add("nl", translator.GetTranslatedString("nl")); vars.Add("ru", translator.GetTranslatedString("ru")); vars.Add("zh_CN", translator.GetTranslatedString("zh_CN")); // 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); }