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);
}