diff --git a/modules/stickychan.cpp b/modules/stickychan.cpp index b8d8c62e..aa4976b1 100644 --- a/modules/stickychan.cpp +++ b/modules/stickychan.cpp @@ -139,6 +139,27 @@ public: return false; } + virtual bool OnEmbeddedWebRequest(CWebSock& WebSock, const CString& sPageName, CTemplate& Tmpl) { + if (sPageName == "webadmin/channel") { + CString sChan = Tmpl["ChanName"]; + bool bStick = FindNV(sChan) != EndNV(); + if (Tmpl["WebadminAction"].Equals("display")) { + Tmpl["Sticky"] = CString(bStick); + } else if (WebSock.GetParam("embed_stickychan_presented").ToBool()) { + bool bNewStick = WebSock.GetParam("embed_stickychan_sticky").ToBool(); + if(bNewStick && !bStick) { + SetNV(sChan, ""); // no password support for now unless chansaver is active too + WebSock.GetSession()->AddSuccess("Channel become sticky!"); + } else if(!bNewStick && bStick) { + DelNV(sChan); + WebSock.GetSession()->AddSuccess("Channel stopped being sticky!"); + } + } + return true; + } + return false; + } + }; diff --git a/modules/stickychan/tmpl/WebadminChan.tmpl b/modules/stickychan/tmpl/WebadminChan.tmpl new file mode 100644 index 00000000..4613dc70 --- /dev/null +++ b/modules/stickychan/tmpl/WebadminChan.tmpl @@ -0,0 +1,12 @@ +