Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: znc/znc
base: 9b6ea82
...
head fork: znc/znc
compare: 33889c9
  • 7 commits
  • 26 files changed
  • 0 commit comments
  • 2 contributors
Commits on Mar 28, 2012
@jakoch jakoch Added Webskin "znc-ation" 92ec938
@jakoch jakoch - fixed unintentional modification in chanserver
- added statement about using nuvola icons under LGPL 2.1
- added full license text
0760dba
@jakoch jakoch - used CString on Info.GetHasArgs bfc829d
@jakoch jakoch - lowered the background color to get more focus on main content 5e0e145
Commits on Mar 29, 2012
@jakoch jakoch merging upstream 84d9377
Commits on Apr 10, 2012
@DarthGandalf DarthGandalf Merge some work by Jens-Andre Koch
Only his changes to the core are presented here.
Unfortunately, the skin itself looks ugly on Opera,
and simply doesn't work on Firefox...

Merge branch 'master' into znc-ation

Conflicts:
	modules/data/lastseen/tmpl/lastseen_WebadminUser.tmpl
	modules/data/webadmin/tmpl/settings.tmpl
3e458a9
@DarthGandalf DarthGandalf Change help text of some modules.
The word "Please" could be understood that the argument is necessary...
33889c9
View
1  AUTHORS
@@ -31,5 +31,6 @@ Brian Campbell (bcampbell@splafinga.com)
Joshua M. Clulow (http://sysmgr.org)
evaryont <colin@evaryont.me>
Michael "adgar" Edgar <adgar@carboni.ca>
+Jens-Andre "vain" Koch <jakoch@web.de>
If you did something useful and want to be listed here too, add yourself and submit the patch.
View
8 include/znc/Modules.h
@@ -183,11 +183,13 @@ class CModInfo {
CModInfo() {
m_fLoader = NULL;
+ m_bHasArgs = false;
}
CModInfo(const CString& sName, const CString& sPath, EModuleType eType) {
m_sName = sName;
m_sPath = sPath;
m_fLoader = NULL;
+ m_bHasArgs = false;
}
~CModInfo() {}
@@ -217,6 +219,8 @@ class CModInfo {
const CString& GetPath() const { return m_sPath; }
const CString& GetDescription() const { return m_sDescription; }
const CString& GetWikiPage() const { return m_sWikiPage; }
+ const CString& GetArgsHelpText() const { return m_sArgsHelpText; }
+ bool GetHasArgs() const { return m_bHasArgs; }
ModLoader GetLoader() const { return m_fLoader; }
EModuleType GetDefaultType() const { return m_eDefaultType; }
// !Getters
@@ -226,6 +230,8 @@ class CModInfo {
void SetPath(const CString& s) { m_sPath = s; }
void SetDescription(const CString& s) { m_sDescription = s; }
void SetWikiPage(const CString& s) { m_sWikiPage = s; }
+ void SetArgsHelpText(const CString& s) { m_sArgsHelpText = s; }
+ void SetHasArgs(bool b = false) { m_bHasArgs = b; }
void SetLoader(ModLoader fLoader) { m_fLoader = fLoader; }
void SetDefaultType(EModuleType eType) { m_eDefaultType = eType; }
// !Setters
@@ -237,6 +243,8 @@ class CModInfo {
CString m_sPath;
CString m_sDescription;
CString m_sWikiPage;
+ CString m_sArgsHelpText;
+ bool m_bHasArgs;
ModLoader m_fLoader;
};
View
2  modules/autoreply.cpp
@@ -91,6 +91,8 @@ class CAutoReplyMod : public CModule {
template<> void TModInfo<CAutoReplyMod>(CModInfo& Info) {
Info.SetWikiPage("autoreply");
Info.AddType(CModInfo::NetworkModule);
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("You might specify a reply text. It is used when automatically answering queries, if you are not connected to ZNC.");
}
USERMODULEDEFS(CAutoReplyMod, "Reply to queries when you are away")
View
2  modules/awaynick.cpp
@@ -189,6 +189,8 @@ void CAwayNickTimer::RunJob() {
template<> void TModInfo<CAwayNickMod>(CModInfo& Info) {
Info.SetWikiPage("awaynick");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("This will be your nickname while you are away. Examples: nick_off or zzz_nick.");
}
NETWORKMODULEDEFS(CAwayNickMod, "Change your nick while you are away")
View
2  modules/blockuser.cpp
@@ -168,6 +168,8 @@ class CBlockUser : public CModule {
template<> void TModInfo<CBlockUser>(CModInfo& Info) {
Info.SetWikiPage("blockuser");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("Enter one or more user names. Seperate them by spaces.");
}
GLOBALMODULEDEFS(CBlockUser, "Block certain users from logging in")
View
2  modules/data/cert/tmpl/index.tmpl
@@ -14,7 +14,7 @@
<div class="sectionbody">
<div class="subsection full">
<div class="inputlabel">PEM File:</div>
- <div><textarea name="cert" style="height: 300px;"></textarea></div>
+ <textarea name="cert" style="height: 300px;"></textarea>
</div>
<div class="subsection submitline">
<input type="submit" name="add" value="Update" />
View
2  modules/data/certauth/tmpl/index.tmpl
@@ -8,7 +8,7 @@
<div class="sectionbody">
<div class="subsection full">
<div class="inputlabel">Key:</div>
- <div><input type="text" name="key" size="40" /></div>
+ <input type="text" name="key" size="40" />
</div>
<div class="subsection submitline">
<input type="submit" name="add" value="Add Key" />
View
4 modules/data/notes/tmpl/index.tmpl
@@ -8,11 +8,11 @@
<div class="sectionbody">
<div class="subsection third">
<div class="inputlabel">Key:</div>
- <div><input type="text" name="key" size="8" /></div>
+ <input type="text" name="key" size="8" />
</div>
<div class="subsection full">
<div class="inputlabel">Note:</div>
- <div><input type="text" name="note" size="40" /></div>
+ <input type="text" name="note" size="40" />
</div>
<div class="subsection submitline">
<input type="submit" name="add" value="Add Note" />
View
4 modules/data/perform/tmpl/index.tmpl
@@ -8,9 +8,9 @@
<div class="sectionbody">
<div class="subsection full">
<div class="inputlabel">Perform commands:</div>
- <div><textarea name="perform" cols="70" rows="5" class="monospace"><? LOOP PerformLoop ?><? VAR Perform ?>
+ <textarea name="perform" cols="70" rows="5" class="monospace"><? LOOP PerformLoop ?><? VAR Perform ?>
<? ENDLOOP ?>
-</textarea></div>
+</textarea>
<br /><span class="info">Commands sent to the IRC server on connect, one per line.</span>
</div>
<div class="subsection submitline">
View
16 modules/data/send_raw/tmpl/index.tmpl
@@ -10,26 +10,24 @@
<div class="sectionbody">
<div class="subsection third">
<div class="inputlabel">User:</div>
- <div><select name="user">
+ <select name="user">
<? LOOP UserLoop?>
<option value="<? VAR Username ESC=HTML ?>"><? VAR Username ESC=HTML ?></option>
<? ENDLOOP ?>
- </select></div>
+ </select>
</div>
<div class="subsection third">
<div class="inputlabel">Send to:</div>
- <div>
- <select name="send_to">
- <option value="client"<? IF to_client ?> selected="yes"<? ENDIF ?>>Client</option>
- <option value="server"<? IF to_server ?> selected="yes"<? ENDIF ?>>Server</option>
- </select>
- </div>
+ <select name="send_to">
+ <option value="client"<? IF to_client ?> selected="yes"<? ENDIF ?>>Client</option>
+ <option value="server"<? IF to_server ?> selected="yes"<? ENDIF ?>>Server</option>
+ </select>
</div>
<div class="subsection full">
<div class="inputlabel">Line:</div>
- <div><input type="text" name="line" value="<? VAR line ?>" /></div>
+ <input type="text" name="line" value="<? VAR line ?>" />
</div>
<div class="subsection submitline">
View
16 modules/data/stickychan/tmpl/stickychan_WebadminChan.tmpl
@@ -1,12 +1,12 @@
<div class="sectionbg">
<div class="sectionbody">
-<div class="subsection">
- <input type="hidden" name="embed_stickychan_presented" value="1">
- <div class="checkbox">
- <input type="checkbox" name="embed_stickychan_sticky" id="opt_embed_stickychan_sticky" value="1"<? IF Sticky ?> checked="checked"<? ENDIF ?> />
- <label for="opt_embed_stickychan_sticky">Channel is sticky</label>
- </div>
-</div>
-<div style="clear:both;"></div>
+ <div class="subsection">
+ <input type="hidden" name="embed_stickychan_presented" value="1">
+ <div class="checkbox">
+ <input type="checkbox" name="embed_stickychan_sticky" id="opt_embed_stickychan_sticky" value="1"<? IF Sticky ?> checked="checked"<? ENDIF ?> />
+ <label for="opt_embed_stickychan_sticky">Channel is sticky</label>
+ </div>
+ </div>
+ <div style="clear:both;"></div>
</div>
</div>
View
14 modules/data/webadmin/tmpl/add_edit_chan.tmpl
@@ -14,23 +14,27 @@
<? IF !Edit ?>
<div class="subsection half">
<div class="inputlabel">Channel Name:</div>
- <div><input type="text" name="name" value="" /></div>
+ <input type="text" name="name" value=""
+ title="The channel name." />
</div>
<? ENDIF ?>
<div class="subsection">
<div class="inputlabel">Key:</div>
- <div><input type="text" name="key" value="<? VAR Key ?>" size="10" /></div>
+ <input type="text" name="key" value="<? VAR Key ?>" size="10"
+ title="The password of the channel, if there is one." />
</div>
<div class="subsection">
<div class="inputlabel">Buffer Count:</div>
- <div><input type="number" name="buffercount" value="<? VAR BufferCount ?>" size="10" min="0" /></div>
+ <input type="number" name="buffercount" value="<? VAR BufferCount ?>" size="10" min="0"
+ title="The buffer count." />
</div>
<div class="subsection">
<div class="inputlabel">Default Modes:</div>
- <div><input type="text" name="defmodes" value="<? VAR DefModes ?>" size="10" /></div>
+ <input type="text" name="defmodes" value="<? VAR DefModes ?>" size="10"
+ title="The default modes of the channel." />
</div>
</div>
@@ -70,4 +74,4 @@
</div>
</form>
-<? INC Footer.tmpl ?>
+<? INC Footer.tmpl ?>
View
39 modules/data/webadmin/tmpl/add_edit_network.tmpl
@@ -21,28 +21,31 @@
<? IF !Edit ?>
<div class="subsection">
<div class="inputlabel">Network Name:</div>
- <div>
- <input type="text" name="network" value="<? VAR Name ?>" class="half" maxlength="128" />
+ <input type="text" name="network" value="<? VAR Name ?>" class="half" maxlength="128"
+ title="The name of the IRC network." />
</div>
- </div>
<? ENDIF ?>
<div class="subsection">
<div class="inputlabel">Nickname:</div>
- <div><input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128" /></div>
+ <input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128"
+ title="Your nickname on IRC." />
</div>
<div class="subsection">
<div class="inputlabel">Alt. Nickname:</div>
- <div><input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128" /></div>
+ <input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128"
+ title="Your secondary nickname, if the first is not available on IRC." />
</div>
<div style="clear: both;"></div>
<div class="subsection">
<div class="inputlabel">Ident:</div>
- <div><input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128" /></div>
+ <input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128"
+ title="Your ident." />
</div>
<div class="subsection">
<div class="inputlabel">Realname:</div>
- <div><input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256" /></div>
+ <input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256"
+ title="Your real name." />
</div>
<div class="subsection">
@@ -63,6 +66,8 @@
<div class="inputlabel">Flood protection:</div>
<div class="checkbox">
<input type="checkbox" name="floodprotection" id="floodprotection_checkbox"
+ title="You might enable the flood protection.
+ This prevents "excess flood" errors, which occur, when your IRC bot is command flooded or spammed."
onchange="floodprotection_change();"
<? IF FloodProtection ?>checked="checked"<? ENDIF ?> />
<label for="floodprotection_checkbox">Enabled</label>
@@ -70,14 +75,18 @@
</div>
<div class="subsection">
<div class="inputlabel">Flood protection rate:</div>
- <div><input type="number" name="floodrate" min="0.3" step="0.05" id="floodrate"
- <? IF FloodProtection ?> value="<? VAR FloodRate ?>" <? ELSE ?> value="1.00" <? ENDIF ?> /> seconds per line</div>
+ <input type="number" name="floodrate" min="0.3" step="0.05" id="floodrate"
+ title="The number of seconds per line."
+ <? IF FloodProtection ?> value="<? VAR FloodRate ?>" <? ELSE ?> value="1.00" disabled="disabled" <? ENDIF ?>
+ /> seconds per line
</div>
<div class="subsection">
<div class="inputlabel">Flood protection burst:</div>
- <div><input type="number" name="floodburst" min="1" id="floodburst"
- <? IF FloodProtection ?> value="<? VAR FloodBurst ?>" <? ELSE ?> value="4" <? ENDIF ?> /> lines can be send immediately</div>
+ <input type="number" name="floodburst" min="1" id="floodburst"
+ title="Defines the number of lines, which can immediately be send."
+ <? IF FloodProtection ?> value="<? VAR FloodBurst ?>" <? ELSE ?> value="4" disabled="disabled" <? ENDIF ?>
+ /> lines can be send immediately
</div>
<script type="text/javascript">floodprotection_change();</script>
<div style="clear: both;"></div>
@@ -151,7 +160,13 @@
<input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> /><label for="lm_<? VAR Name ?>"> <? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a> <? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
</td>
<td class="mod_args">
- <? IF Disabled ?><? VAR Args ?><? ELSE ?><input class="third" type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>" /><? ENDIF ?>
+ <? IF Disabled ?>
+ <? VAR Args ?>
+ <? ELSE ?>
+ <input class="third" type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
+ <? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
+ <? IF ArgsHelpText ?> title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
+ <? ENDIF ?>
</td>
<td class="mod_descr"><? VAR Description ?></td>
</tr>
View
76 modules/data/webadmin/tmpl/add_edit_user.tmpl
@@ -10,7 +10,7 @@
<div class="sectionbody">
<div class="subsection">
<div class="inputlabel">Username:</div>
- <div>
+
<? IF Clone ?>
<input type="hidden" name="clone" value="<? VAR CloneUsername ?>" />
<? ENDIF ?>
@@ -18,23 +18,26 @@
<input type="hidden" name="user" value="<? VAR Username ?>" />
<input type="text" name="newuser" value="<? VAR Username ?>" class="half" maxlength="128" disabled="disabled" />
<? ELSE ?>
- <input type="text" name="user" value="<? VAR Username ?>" class="half" maxlength="128" />
+ <input type="text" name="user" value="<? VAR Username ?>" class="half" maxlength="128"
+ title="Please enter a username." />
<? ENDIF ?>
- </div>
+
</div>
<div class="subsection">
<div class="inputlabel">Password:</div>
- <div><input type="password" name="password" class="half" /></div>
+ <input type="password" name="password" class="half"
+ title="Please enter a password." />
</div>
<div class="subsection">
<div class="inputlabel">Confirm password:</div>
- <div><input type="password" name="password2" class="half" /></div>
+ <input type="password" name="password2" class="half"
+ title="Please re-type the above password." />
</div>
<div class="subsection half">
<div class="inputlabel">Allowed IPs:</div>
- <div><textarea name="allowedips" cols="70" rows="5"><? LOOP AllowedHostLoop ?><? VAR Host ?>
+ <textarea name="allowedips" cols="70" rows="5"><? LOOP AllowedHostLoop ?><? VAR Host ?>
<? ENDLOOP ?>
-</textarea></div>
+</textarea>
<br /><span class="info">Leave empty to allow connections from all IPs.<br />
Otherwise, one entry per line, wildcards * and ? are available.</span>
</div>
@@ -52,25 +55,30 @@
<div class="sectionbody">
<div class="subsection">
<div class="inputlabel">Nickname:</div>
- <div><input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128" /></div>
+ <input type="text" name="nick" value="<? VAR Nick ?>" class="half" maxlength="128"
+ title="This will be your nickname on IRC." />
</div>
<div class="subsection">
<div class="inputlabel">Alt. Nickname:</div>
- <div><input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128" /></div>
+ <input type="text" name="altnick" value="<? VAR AltNick ?>" class="half" maxlength="128"
+ title="If the nickname above is not available anymore, then this will be your nickname on IRC." />
</div>
<div style="clear: both;"></div>
<div class="subsection">
<div class="inputlabel">Ident:</div>
- <div><input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128" /></div>
+ <input type="text" name="ident" value="<? VAR Ident ?>" class="half" maxlength="128"
+ title="The Ident identifies you as one specific user of your host." />
</div>
<div class="subsection">
<div class="inputlabel">StatusPrefix:</div>
- <div><input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>" class="half" maxlength="5" /></div>
+ <input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>" class="half" maxlength="5"
+ title="This defines the prefix for the status and module queries." />
</div>
<div style="clear: both;"></div>
<div class="subsection">
<div class="inputlabel">Realname:</div>
- <div><input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256" /></div>
+ <input type="text" name="realname" value="<? VAR RealName ?>" class="full" maxlength="256"
+ title="The real name of the user." />
</div>
<div style="clear: both;"></div>
@@ -104,7 +112,8 @@
<div class="subsection">
<div class="inputlabel">Quit Message:</div>
- <div><input type="text" name="quitmsg" value="<? VAR QuitMsg ?>" class="full" maxlength="256" /></div>
+ <input type="text" name="quitmsg" value="<? VAR QuitMsg ?>" class="full" maxlength="256"
+ title="You may define a Message shown, when you quit IRC." />
</div>
<div style="clear: both;"></div>
</div>
@@ -167,7 +176,13 @@
<input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> /><label for="lm_<? VAR Name ?>"> <? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a> <? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
</td>
<td class="mod_args">
- <? IF Disabled ?><? VAR Args ?><? ELSE ?><input class="third" type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>" /><? ENDIF ?>
+ <? IF Disabled ?>
+ <? VAR Args ?>
+ <? ELSE ?>
+ <input class="third" type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
+ <? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
+ <? IF ArgsHelpText ?> title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
+ <? ENDIF ?>
</td>
<td class="mod_descr"><? VAR Description ?></td>
</tr>
@@ -185,12 +200,15 @@
<div class="sectionbody">
<div class="subsection third">
<div class="inputlabel">Modes:</div>
- <div><input type="text" name="chanmodes" value="<? VAR DefaultChanModes ?>" maxlength="32" /></div>
+ <input type="text" name="chanmodes" value="<? VAR DefaultChanModes ?>" maxlength="32"
+ title="These are the default modes ZNC will set when you join an empty channel." />
<br /><span class="info">Empty = use standard value</span>
</div>
<div class="subsection third">
<div class="inputlabel">Buffer Size:</div>
- <div><input type="number" name="bufsize" value="<? VAR BufferCount ?>" min="0" /></div>
+ <input type="number" name="bufsize" value="<? VAR BufferCount ?>" min="0"
+ title="This is the amount of lines that the playback buffer will store before dropping off the oldest line.
+ The buffers are stored in the memory by default." />
<br /><span class="info">Empty = use standard value</span>
</div>
</div>
@@ -219,22 +237,24 @@
<div class="sectionbody">
<div class="subsection">
<div class="inputlabel">Timestamp Format:</div>
- <div><input type="text" name="timestampformat" value="<? VAR TimestampFormat ?>" class="full" /></div>
+ <input type="text" name="timestampformat" value="<? VAR TimestampFormat ?>" class="full"
+ title="The format for the timestamps used in buffers, for example [%H:%M:%S]." />
</div>
<div class="subsection">
<div class="inputlabel">Timezone:</div>
- <div>
- <input type="text" name="timezone" value="<? VAR Timezone ?>" class="half" list="timezone_list" />
- <datalist id="timezone_list">
- <? LOOP TZLoop ?>
- <option value="<? VAR TZ ?>"/>
- <? ENDLOOP ?>
- </datalist>
- </div>
+ <input type="text" name="timezone" value="<? VAR Timezone ?>" class="half" list="timezone_list"
+ title="Select your timezone." />
+ <datalist id="timezone_list">
+ <? LOOP TZLoop ?>
+ <option value="<? VAR TZ ?>"/>
+ <? ENDLOOP ?>
+ </datalist>
</div>
<div class="subsection">
<div class="inputlabel">Join Tries:</div>
- <div><input type="number" name="jointries" value="<? VAR JoinTries ?>" class="third" min="0" /></div>
+ <input type="number" name="jointries" value="<? VAR JoinTries ?>" class="third" min="0"
+ title="This defines how often ZNC tries to join, if the first join failed,
+ e.g. due to channel mode +i/+k or if you're banned." />
</div>
<div class="subsection half">
<div class="inputlabel">CTCP Replies:</div>
@@ -245,7 +265,7 @@
</div>
<div class="subsection">
<div class="inputlabel">Skin:</div>
- <div>
+
<? IF SkinLoop ROWS > 1 ?>
<select name="skin">
<option value="">- Global -</option>
@@ -256,7 +276,7 @@
<? ELSE ?>
No other skins found
<? ENDIF ?>
- </div>
+
</div>
<div style="clear: both;"></div>
</div>
View
8 modules/data/webadmin/tmpl/index.tmpl
@@ -1,10 +1,8 @@
<? INC Header.tmpl ?>
<div class="textsection">
-
-<p>Welcome to the ZNC webadmin module. All changes you make will be in effect immediately after
- you submitted them.</p>
-
+<p>Welcome to the ZNC webadmin module.<br/>
+ All changes you make will be in effect immediately after you submitted them.</p>
</div>
-<? INC Footer.tmpl ?>
+<? INC Footer.tmpl ?>
View
61 modules/data/webadmin/tmpl/settings.tmpl
@@ -74,70 +74,78 @@
<div class="sectionbody">
<div class="subsection">
<div class="inputlabel">Skin:</div>
- <div>
+
<select name="skin">
<? LOOP SkinLoop ?>
<option value="<? VAR Name ?>"<? IF Checked ?> selected="selected"<? ENDIF ?>><? IF Name == "_default_" ?>Default<? ELSE ?><? VAR Name ?><? ENDIF ?></option>
<? ENDLOOP ?>
</select>
- </div>
+
</div>
- <div style="clear: both;"></div>
+
<div class="subsection third">
<div class="inputlabel">Status Prefix:</div>
- <div><input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>" /></div>
+ <input type="text" name="statusprefix" value="<? VAR StatusPrefix ?>"
+ title="The prefix for the status and module queries."/>
<br /><span class="info">Default for new users only.</span>
</div>
- <div style="clear: both;"></div>
+
<div class="subsection half">
<div class="inputlabel">Maximum Buffer Size:</div>
- <div><input type="text" name="maxbufsize" value="<? VAR MaxBufferSize ?>" /></div>
+ <input type="text" name="maxbufsize" value="<? VAR MaxBufferSize ?>"
+ title="Sets the global Max Buffer Size a user can have."/>
</div>
- <div style="clear: both;"></div>
+
<div class="subsection half">
<div class="inputlabel">Connect Delay:</div>
- <div><input type="text" name="connectdelay" value="<? VAR ConnectDelay ?>" /></div>
+ <input type="text" name="connectdelay" value="<? VAR ConnectDelay ?>"
+ title="The time every connection will be delayed, in seconds.
+ Some servers refuse your connection if you reconnect too fast.
+ This affects the connection between ZNC and the IRC server;
+ not the connection between your IRC client and ZNC. "/>
</div>
- <div style="clear: both;"></div>
+
<div class="subsection half">
<div class="inputlabel">Server Throttle:</div>
- <div><input type="text" name="serverthrottle" value="<? VAR ServerThrottle ?>" /></div>
+ <input type="text" name="serverthrottle" value="<? VAR ServerThrottle ?>"
+ title="The time between two connect attempts to the same hostname." />
</div>
- <div style="clear: both;"></div>
+
<div class="subsection half">
<div class="inputlabel">Anonymous IP Limit:</div>
- <div><input type="text" name="anoniplimit" value="<? VAR AnonIPLimit ?>" /></div>
+ <input type="text" name="anoniplimit" value="<? VAR AnonIPLimit ?>"
+ title="Limits the number of unidentified connections per IP." />
</div>
- <div style="clear: both;"></div>
+
<div class="subsection">
<div class="inputlabel">Protect Web Sessions:</div>
<div class="checkbox"><input type="checkbox" name="protectwebsessions" id="protectwebsessions_checkbox"<? IF ProtectWebSessions ?> checked="checked"<? ENDIF ?> />
<label for="protectwebsessions_checkbox">Disallow IP changing during each web session</label></div>
</div>
- <div style="clear: both;"></div>
+
<div class="subsection twothird">
<div class="inputlabel">MOTD:</div>
- <div><textarea name="motd" cols="70" rows="5" class="monospace"><? LOOP MOTDLoop ?><? VAR Line ?>
+ <textarea name="motd" cols="70" rows="5" class="monospace"><? LOOP MOTDLoop ?><? VAR Line ?>
<? ENDLOOP ?>
-</textarea></div>
+</textarea>
<br /><span class="info">"Message of the Day", sent to all ZNC users on connect.</span>
</div>
<div class="subsection twothird">
<div class="inputlabel">BindHosts:</div>
- <div><textarea name="bindhosts" cols="70" rows="8"><? LOOP BindHostLoop ?><? VAR BindHost ?>
+ <textarea name="bindhosts" cols="70" rows="8"><? LOOP BindHostLoop ?><? VAR BindHost ?>
<? ENDLOOP ?>
-</textarea></div>
+</textarea>
<br /><span class="info">One host name or IP entry per line.</span>
</div>
- <div style="clear: both;"></div>
+
</div>
</div>
</div>
@@ -157,8 +165,19 @@
<tbody>
<? LOOP ModuleLoop ?>
<tr class="<? IF __EVEN__ ?>evenrow<? ELSE ?>oddrow<? ENDIF ?>">
- <td class="mod_name"><input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> /><label for="lm_<? VAR Name ?>"> <? IF Wiki ?> <a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a> <? ELSE ?> <? VAR Name ?> <? ENDIF ?></label></td>
- <td class="mod_args"><input type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>" /></td>
+ <td class="mod_name">
+ <input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"
+ <? IF Checked ?> checked="checked"<? ENDIF ?>
+ <? IF Disabled ?> disabled="disabled"<? ENDIF ?> />
+ <label for="lm_<? VAR Name ?>">
+ <? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>"><? VAR Name ?></a>
+ <? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
+ </td>
+ <td class="mod_args">
+ <input type="text" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
+ <? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
+ <? IF ArgsHelpText ?> title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
+ </td>
<td class="mod_descr"><? VAR Description ?></td>
</tr>
<? ENDLOOP ?>
View
2  modules/fail2ban.cpp
@@ -97,6 +97,8 @@ class CFailToBanMod : public CModule {
template<> void TModInfo<CFailToBanMod>(CModInfo& Info) {
Info.SetWikiPage("fail2ban");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("You might enter the time in minutes for the IP banning and the number of failed logins before any action is taken.");
}
GLOBALMODULEDEFS(CFailToBanMod, "Block IPs for some time after a failed login")
View
2  modules/kickrejoin.cpp
@@ -110,6 +110,8 @@ class CRejoinMod : public CModule {
template<> void TModInfo<CRejoinMod>(CModInfo& Info) {
Info.SetWikiPage("kickrejoin");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("You might enter the number of seconds to wait before rejoining.");
}
NETWORKMODULEDEFS(CRejoinMod, "Autorejoin on kick")
View
2  modules/modtcl.cpp
@@ -472,6 +472,8 @@ void CModTclStartTimer::RunJob() {
template<> void TModInfo<CModTcl>(CModInfo& Info) {
Info.SetWikiPage("modtcl");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("The argument is the number of seconds to wait before rejoining.");
}
NETWORKMODULEDEFS(CModTcl, "Loads Tcl scripts as ZNC modules")
View
2  modules/nickserv.cpp
@@ -162,6 +162,8 @@ class CNickServ : public CModule {
template<> void TModInfo<CNickServ>(CModInfo& Info) {
Info.SetWikiPage("nickserv");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("Please enter your nickserv password.");
}
NETWORKMODULEDEFS(CNickServ, "Auths you with NickServ")
View
2  modules/partyline.cpp
@@ -607,6 +607,8 @@ class CPartylineMod : public CModule {
template<> void TModInfo<CPartylineMod>(CModInfo& Info) {
Info.SetWikiPage("partyline");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("You may enter a list of channels the user joins, when entering the internal partyline.");
}
GLOBALMODULEDEFS(CPartylineMod, "Internal channels and queries for users connected to znc")
View
2  modules/q.cpp
@@ -486,6 +486,8 @@ class CQModule : public CModule {
template<> void TModInfo<CQModule>(CModInfo& Info) {
Info.SetWikiPage("Q");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("Please provide your username and password for Q.");
}
NETWORKMODULEDEFS(CQModule, "Auths you with QuakeNet's Q bot.")
View
2  modules/sample.cpp
@@ -243,6 +243,8 @@ class CSampleMod : public CModule {
template<> void TModInfo<CSampleMod>(CModInfo& Info) {
Info.SetWikiPage("sample");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("Please describe the arguments used by your module in one or two sentences.");
}
USERMODULEDEFS(CSampleMod, "To be used as a sample for writing modules")
View
4 modules/simple_away.cpp
@@ -217,6 +217,8 @@ void CSimpleAwayJob::RunJob() {
template<> void TModInfo<CSimpleAway>(CModInfo& Info) {
Info.SetWikiPage("simple_away");
+ Info.SetHasArgs(true);
+ Info.SetArgsHelpText("You might enter up to 3 arguments, like -notimer awaymessage or -timer 5 awaymessage.");
}
-NETWORKMODULEDEFS(CSimpleAway, "Auto away when last client disconnects")
+NETWORKMODULEDEFS(CSimpleAway, "This module will automatically set you away on IRC while you are disconnected from the bouncer.")
View
6 modules/webadmin.cpp
@@ -667,6 +667,8 @@ class CWebAdminMod : public CModule {
l["Name"] = Info.GetName();
l["Description"] = Info.GetDescription();
l["Wiki"] = Info.GetWikiPage();
+ l["HasArgs"] = CString(Info.GetHasArgs());
+ l["ArgsHelpText"] = Info.GetArgsHelpText();
if (pNetwork) {
CModule *pModule = pNetwork->GetModules().FindModule(Info.GetName());
@@ -1035,6 +1037,8 @@ class CWebAdminMod : public CModule {
l["Name"] = Info.GetName();
l["Description"] = Info.GetDescription();
l["Wiki"] = Info.GetWikiPage();
+ l["HasArgs"] = CString(Info.GetHasArgs());
+ l["ArgsHelpText"] = Info.GetArgsHelpText();
CModule *pModule = NULL;
if (pUser)
@@ -1445,6 +1449,8 @@ class CWebAdminMod : public CModule {
l["Name"] = Info.GetName();
l["Description"] = Info.GetDescription();
l["Wiki"] = Info.GetWikiPage();
+ l["HasArgs"] = CString(Info.GetHasArgs());
+ l["ArgsHelpText"] = Info.GetArgsHelpText();
}
return true;
View
1  src/WebModules.cpp
@@ -305,6 +305,7 @@ void CWebSock::SetVars() {
m_Template["SessionUser"] = GetUser();
m_Template["SessionIP"] = GetRemoteIP();
m_Template["Tag"] = CZNC::GetTag(GetSession()->GetUser() != NULL, true);
+ m_Template["Version"] = CZNC::GetVersion();
m_Template["SkinName"] = GetSkinName();
m_Template["_CSRF_Check"] = GetCSRFCheck();

No commit comments for this range

Something went wrong with that request. Please try again.