From 4368c189f766ab124e9e8f9caa5fb7aa36540fa6 Mon Sep 17 00:00:00 2001 From: Lunatrius Date: Mon, 1 Jul 2013 00:45:19 +0200 Subject: [PATCH] Fixed double forward slashes and incorrect active module highlighting. --- src/WebModules.cpp | 22 +++++++++++++++++++++- webskins/_default_/tmpl/Menu.tmpl | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/WebModules.cpp b/src/WebModules.cpp index 6722bd7f..3f000f71 100644 --- a/src/WebModules.cpp +++ b/src/WebModules.cpp @@ -369,12 +369,32 @@ bool CWebSock::AddModLoop(const CString& sLoopName, CModule& Module, CTemplate * if (!sTitle.empty() && (IsLoggedIn() || (!Module.WebRequiresLogin() && !Module.WebRequiresAdmin())) && (GetSession()->IsAdmin() || !Module.WebRequiresAdmin())) { CTemplate& Row = pTemplate->AddRow(sLoopName); + bool bActiveModule = false; Row["ModName"] = Module.GetModName(); Row["ModPath"] = Module.GetWebPath(); Row["Title"] = sTitle; if (m_sModName == Module.GetModName()) { + CString sModuleType = GetPath().Token(1, false, "/"); + if (sModuleType == "global" && Module.GetType() == CModInfo::GlobalModule) { + bActiveModule = true; + } else if (sModuleType == "user" && Module.GetType() == CModInfo::UserModule) { + bActiveModule = true; + } else if (sModuleType == "network" && Module.GetType() == CModInfo::NetworkModule) { + CIRCNetwork *Network = Module.GetNetwork(); + if (Network) { + CString sNetworkName = GetPath().Token(2, false, "/"); + if (sNetworkName == Network->GetName()) { + bActiveModule = true; + } + } else { + bActiveModule = true; + } + } + } + + if (bActiveModule) { Row["Active"] = "true"; } @@ -388,7 +408,7 @@ bool CWebSock::AddModLoop(const CString& sLoopName, CModule& Module, CTemplate * TWebSubPage& SubPage = vSubPages[a]; // bActive is whether or not the current url matches this subpage (params will be checked below) - bool bActive = (m_sModName == Module.GetModName() && m_sPage == SubPage->GetName()); + bool bActive = (m_sModName == Module.GetModName() && m_sPage == SubPage->GetName() && bActiveModule); if (SubPage->RequiresAdmin() && !GetSession()->IsAdmin()) { continue; // Don't add admin-only subpages to requests from non-admin users diff --git a/webskins/_default_/tmpl/Menu.tmpl b/webskins/_default_/tmpl/Menu.tmpl index 78334dca..97cfaa36 100644 --- a/webskins/_default_/tmpl/Menu.tmpl +++ b/webskins/_default_/tmpl/Menu.tmpl @@ -36,7 +36,7 @@
  • -
  • +