From 3b9a9c2b80a6dd05ed7cd513c5643498c8d99e3d Mon Sep 17 00:00:00 2001 From: psychon Date: Mon, 6 Apr 2009 16:00:23 +0000 Subject: [PATCH] Webadmin: Make this work with the browser cache This moves all static webadmin files (images, css) to the data/ subdirectory of the skin dir. The webadmin module is changed to redirect requests to // to that data directory. The skins are changed to use the new URL when linking to their stuff. (I only needed to change the path to the main.css file in each Header.tmpl. Since the .css and the images are now in the same directory, relative URLs work just fine). This means that we now generate different URLs after changing the webadmin skins and the browser cache can do its thing. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1481 726aef4b-f618-498e-8847-2d620e286838 --- modules/webadmin.cpp | 18 +++++++----------- .../webadmin/skins/dark-clouds/Header.tmpl | 2 +- .../{img => data}/clouds-header.jpg | Bin .../dark-clouds/{img => data}/favicon.ico | Bin .../skins/dark-clouds/{css => data}/main.css | 2 +- modules/webadmin/skins/default/Header.tmpl | 2 +- .../skins/default/{img => data}/favicon.ico | Bin .../skins/default/{css => data}/main.css | 0 modules/webadmin/skins/graphiX/Header.tmpl | 2 +- .../skins/graphiX/{img => data}/favicon.ico | Bin .../graphiX/{img => data}/graphix_bg.jpg | Bin .../graphiX/{img => data}/graphix_header.jpg | Bin .../skins/graphiX/{css => data}/main.css | 4 ++-- modules/webadmin/skins/ice/Header.tmpl | 2 +- .../skins/ice/{img => data}/favicon.ico | Bin .../skins/ice/{img => data}/linkbg.jpg | Bin .../webadmin/skins/ice/{css => data}/main.css | 10 +++++----- .../skins/ice/{img => data}/pagebg.gif | Bin 18 files changed, 19 insertions(+), 23 deletions(-) rename modules/webadmin/skins/dark-clouds/{img => data}/clouds-header.jpg (100%) rename modules/webadmin/skins/dark-clouds/{img => data}/favicon.ico (100%) rename modules/webadmin/skins/dark-clouds/{css => data}/main.css (98%) rename modules/webadmin/skins/default/{img => data}/favicon.ico (100%) rename modules/webadmin/skins/default/{css => data}/main.css (100%) rename modules/webadmin/skins/graphiX/{img => data}/favicon.ico (100%) rename modules/webadmin/skins/graphiX/{img => data}/graphix_bg.jpg (100%) rename modules/webadmin/skins/graphiX/{img => data}/graphix_header.jpg (100%) rename modules/webadmin/skins/graphiX/{css => data}/main.css (97%) rename modules/webadmin/skins/ice/{img => data}/favicon.ico (100%) rename modules/webadmin/skins/ice/{img => data}/linkbg.jpg (100%) rename modules/webadmin/skins/ice/{css => data}/main.css (89%) rename modules/webadmin/skins/ice/{img => data}/pagebg.gif (100%) diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index 3df5d7f5..95802dd8 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -367,9 +367,13 @@ bool CWebAdminSock::OnPageRequest(const CString& sURI, CString& sPageRet) { return false; } + const CString& sSkin = GetModule()->GetSkinName(); + CString sTmp = sURI; + m_Template["SessionUser"] = GetUser(); m_Template["SessionIP"] = GetRemoteIP(); m_Template["Tag"] = CZNC::GetTag(); + m_Template["Skin"] = sSkin; if (IsAdmin()) { m_Template["IsAdmin"] = "true"; @@ -384,17 +388,9 @@ bool CWebAdminSock::OnPageRequest(const CString& sURI, CString& sPageRet) { m_Template["Title"] = "Main Page"; m_Template["Action"] = "home"; PrintPage(sPageRet, "Main.tmpl"); - } else if (sURI.Equals("/css/", false, 5)) { - SetDocRoot(GetSkinDir() + "/css"); - PrintFile(sURI.substr(5), "text/css"); - return false; - } else if (sURI.Equals("/img/", false, 5)) { - SetDocRoot(GetSkinDir() + "/img"); - PrintFile(sURI.substr(5)); - return false; - } else if (sURI.Equals("/js/", false, 4)) { - SetDocRoot(GetSkinDir() + "/js"); - PrintFile(sURI.substr(4), "application/x-javascript"); + } else if (sTmp.TrimPrefix("/" + sSkin + "/")) { + SetDocRoot(GetSkinDir() + "/data"); + PrintFile(sTmp); return false; } else if (sURI == "/home") { m_Template["Title"] = "Main Page"; diff --git a/modules/webadmin/skins/dark-clouds/Header.tmpl b/modules/webadmin/skins/dark-clouds/Header.tmpl index 36e15fb7..1310f242 100644 --- a/modules/webadmin/skins/dark-clouds/Header.tmpl +++ b/modules/webadmin/skins/dark-clouds/Header.tmpl @@ -4,7 +4,7 @@ ZNC - Webadmin module - <?VAR Title ESC=HTML?> - + diff --git a/modules/webadmin/skins/dark-clouds/img/clouds-header.jpg b/modules/webadmin/skins/dark-clouds/data/clouds-header.jpg similarity index 100% rename from modules/webadmin/skins/dark-clouds/img/clouds-header.jpg rename to modules/webadmin/skins/dark-clouds/data/clouds-header.jpg diff --git a/modules/webadmin/skins/dark-clouds/img/favicon.ico b/modules/webadmin/skins/dark-clouds/data/favicon.ico similarity index 100% rename from modules/webadmin/skins/dark-clouds/img/favicon.ico rename to modules/webadmin/skins/dark-clouds/data/favicon.ico diff --git a/modules/webadmin/skins/dark-clouds/css/main.css b/modules/webadmin/skins/dark-clouds/data/main.css similarity index 98% rename from modules/webadmin/skins/dark-clouds/css/main.css rename to modules/webadmin/skins/dark-clouds/data/main.css index f0467b73..453e13a2 100644 --- a/modules/webadmin/skins/dark-clouds/css/main.css +++ b/modules/webadmin/skins/dark-clouds/data/main.css @@ -33,7 +33,7 @@ a:hover { } .header { - background-image: url('../img/clouds-header.jpg'); + background-image: url('clouds-header.jpg'); padding: 10px; border: 1px solid #000000; height: 100px; diff --git a/modules/webadmin/skins/default/Header.tmpl b/modules/webadmin/skins/default/Header.tmpl index 7aa5d24d..8769d20c 100644 --- a/modules/webadmin/skins/default/Header.tmpl +++ b/modules/webadmin/skins/default/Header.tmpl @@ -3,7 +3,7 @@ ZNC - <?VAR Title ESC=HTML?> - + diff --git a/modules/webadmin/skins/default/img/favicon.ico b/modules/webadmin/skins/default/data/favicon.ico similarity index 100% rename from modules/webadmin/skins/default/img/favicon.ico rename to modules/webadmin/skins/default/data/favicon.ico diff --git a/modules/webadmin/skins/default/css/main.css b/modules/webadmin/skins/default/data/main.css similarity index 100% rename from modules/webadmin/skins/default/css/main.css rename to modules/webadmin/skins/default/data/main.css diff --git a/modules/webadmin/skins/graphiX/Header.tmpl b/modules/webadmin/skins/graphiX/Header.tmpl index 36e15fb7..1310f242 100644 --- a/modules/webadmin/skins/graphiX/Header.tmpl +++ b/modules/webadmin/skins/graphiX/Header.tmpl @@ -4,7 +4,7 @@ ZNC - Webadmin module - <?VAR Title ESC=HTML?> - + diff --git a/modules/webadmin/skins/graphiX/img/favicon.ico b/modules/webadmin/skins/graphiX/data/favicon.ico similarity index 100% rename from modules/webadmin/skins/graphiX/img/favicon.ico rename to modules/webadmin/skins/graphiX/data/favicon.ico diff --git a/modules/webadmin/skins/graphiX/img/graphix_bg.jpg b/modules/webadmin/skins/graphiX/data/graphix_bg.jpg similarity index 100% rename from modules/webadmin/skins/graphiX/img/graphix_bg.jpg rename to modules/webadmin/skins/graphiX/data/graphix_bg.jpg diff --git a/modules/webadmin/skins/graphiX/img/graphix_header.jpg b/modules/webadmin/skins/graphiX/data/graphix_header.jpg similarity index 100% rename from modules/webadmin/skins/graphiX/img/graphix_header.jpg rename to modules/webadmin/skins/graphiX/data/graphix_header.jpg diff --git a/modules/webadmin/skins/graphiX/css/main.css b/modules/webadmin/skins/graphiX/data/main.css similarity index 97% rename from modules/webadmin/skins/graphiX/css/main.css rename to modules/webadmin/skins/graphiX/data/main.css index ae393a13..fa5c0314 100644 --- a/modules/webadmin/skins/graphiX/css/main.css +++ b/modules/webadmin/skins/graphiX/data/main.css @@ -1,5 +1,5 @@ body { - background-image: url('../img/graphix_bg.jpg'); + background-image: url('graphix_bg.jpg'); margin-top: 10px; } @@ -32,7 +32,7 @@ a:hover { } .header { - background-image: url('../img/graphix_header.jpg'); + background-image: url('graphix_header.jpg'); padding: 10px; border: 1px solid #000000; height: 100px; diff --git a/modules/webadmin/skins/ice/Header.tmpl b/modules/webadmin/skins/ice/Header.tmpl index d2b648b4..fbc8d821 100644 --- a/modules/webadmin/skins/ice/Header.tmpl +++ b/modules/webadmin/skins/ice/Header.tmpl @@ -3,7 +3,7 @@ ZNC - <?VAR Title ESC=HTML?> - + diff --git a/modules/webadmin/skins/ice/img/favicon.ico b/modules/webadmin/skins/ice/data/favicon.ico similarity index 100% rename from modules/webadmin/skins/ice/img/favicon.ico rename to modules/webadmin/skins/ice/data/favicon.ico diff --git a/modules/webadmin/skins/ice/img/linkbg.jpg b/modules/webadmin/skins/ice/data/linkbg.jpg similarity index 100% rename from modules/webadmin/skins/ice/img/linkbg.jpg rename to modules/webadmin/skins/ice/data/linkbg.jpg diff --git a/modules/webadmin/skins/ice/css/main.css b/modules/webadmin/skins/ice/data/main.css similarity index 89% rename from modules/webadmin/skins/ice/css/main.css rename to modules/webadmin/skins/ice/data/main.css index 4ce1daa0..61ebb200 100644 --- a/modules/webadmin/skins/ice/css/main.css +++ b/modules/webadmin/skins/ice/data/main.css @@ -1,5 +1,5 @@ body { - background: url(../img/pagebg.gif) top repeat-x #0C1833 fixed; + background: url(pagebg.gif) top repeat-x #0C1833 fixed; color: #fff; margin: 0px auto; } @@ -41,7 +41,7 @@ table td { table thead { border-bottom: 2px solid #000; - background: url(../img/linkbg.jpg) 0px -30px repeat-x #369; + background: url(linkbg.jpg) 0px -30px repeat-x #369; color: #fff; font-weight: bold; } @@ -112,7 +112,7 @@ textarea { .sectiontitle { float: left; white-space: nowrap; - background: url(../img/linkbg.jpg) 0px 0px repeat-x #336; + background: url(linkbg.jpg) 0px 0px repeat-x #336; color: #eee; font-size: 14px; font-weight: bold; @@ -139,7 +139,7 @@ textarea { border-top: 1px solid #000; border-bottom: 1px solid #000; float: left; - background: url(../img/linkbg.jpg) repeat-x; + background: url(linkbg.jpg) repeat-x; margin-bottom: 10px; } @@ -166,7 +166,7 @@ textarea { color: #fff; padding: 0px 10px; text-decoration: none; - background: url(../img/linkbg.jpg) 0px 0px repeat-x; + background: url(linkbg.jpg) 0px 0px repeat-x; } #gnav a:hover { diff --git a/modules/webadmin/skins/ice/img/pagebg.gif b/modules/webadmin/skins/ice/data/pagebg.gif similarity index 100% rename from modules/webadmin/skins/ice/img/pagebg.gif rename to modules/webadmin/skins/ice/data/pagebg.gif