2013-12-12 20:48:23 +00:00
|
|
|
mixin lcheckbox(id, label)
|
|
|
|
.form-group
|
|
|
|
label.control-label.col-sm-4(for=id)= label
|
|
|
|
.col-sm-8
|
|
|
|
.checkbox
|
|
|
|
input(type="checkbox", id=id)
|
|
|
|
|
|
|
|
mixin rcheckbox(id, label)
|
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
|
|
|
.checkbox
|
2014-11-13 01:56:29 +00:00
|
|
|
label(for=id)
|
2014-05-21 03:13:41 +00:00
|
|
|
input(type="checkbox", id=id)
|
2014-11-13 01:56:29 +00:00
|
|
|
= label
|
2013-12-12 20:48:23 +00:00
|
|
|
|
|
|
|
mixin textbox(id, label, placeholder)
|
2014-05-21 03:13:41 +00:00
|
|
|
.form-group
|
|
|
|
label.control-label.col-sm-4(for=id)= label
|
|
|
|
.col-sm-8
|
|
|
|
if placeholder
|
|
|
|
input.form-control(id=id, type="text", placeholder=placeholder)
|
|
|
|
else
|
|
|
|
input.form-control(id=id, type="text")
|
|
|
|
|
|
|
|
mixin lcheckbox-auto(id, label)
|
|
|
|
.form-group
|
|
|
|
label.control-label.col-sm-4(for=id)= label
|
|
|
|
.col-sm-8
|
|
|
|
.checkbox
|
|
|
|
input.cs-checkbox(type="checkbox", id=id)
|
|
|
|
|
|
|
|
mixin rcheckbox-auto(id, label)
|
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
|
|
|
.checkbox
|
2014-11-13 01:56:29 +00:00
|
|
|
label(for=id)
|
2014-05-21 03:13:41 +00:00
|
|
|
input.cs-checkbox(type="checkbox", id=id)
|
2014-11-13 01:56:29 +00:00
|
|
|
= label
|
2014-05-21 03:13:41 +00:00
|
|
|
|
|
|
|
mixin textbox-auto(id, label, placeholder)
|
2013-12-12 20:48:23 +00:00
|
|
|
.form-group
|
|
|
|
label.control-label.col-sm-4(for=id)= label
|
|
|
|
.col-sm-8
|
|
|
|
if placeholder
|
2014-01-15 06:16:29 +00:00
|
|
|
input.form-control.cs-textbox(id=id, type="text", placeholder=placeholder)
|
2013-12-12 20:48:23 +00:00
|
|
|
else
|
2014-01-15 06:16:29 +00:00
|
|
|
input.form-control.cs-textbox(id=id, type="text")
|
2013-12-12 20:48:23 +00:00
|
|
|
|
2016-08-07 03:44:15 +00:00
|
|
|
mixin textbox-timeinput-auto(id, label, placeholder)
|
|
|
|
.form-group
|
|
|
|
label.control-label.col-sm-4(for=id)= label
|
|
|
|
.col-sm-8
|
|
|
|
if placeholder
|
|
|
|
input.form-control.cs-textbox-timeinput(id=id, type="text", placeholder=placeholder)
|
|
|
|
else
|
|
|
|
input.form-control.cs-textbox-timeinput(id=id, type="text")
|
|
|
|
|
2013-12-12 20:48:23 +00:00
|
|
|
mixin miscoptions
|
2014-07-31 02:03:18 +00:00
|
|
|
#cs-miscoptions.tab-pane.active
|
2013-12-12 20:48:23 +00:00
|
|
|
h4 General Settings
|
|
|
|
form.form-horizontal(action="javascript:void(0)")
|
2016-07-07 08:11:56 +00:00
|
|
|
+rcheckbox-auto("cs-allow_voteskip", "Allow voteskip")
|
|
|
|
+rcheckbox-auto("cs-allow_dupes", "Allow duplicate videos on the playlist")
|
|
|
|
+textbox-auto("cs-voteskip_ratio", "Voteskip ratio", "0.5")
|
|
|
|
+textbox-auto("cs-maxlength", "Max video length", "HH:MM:SS")
|
2017-04-29 23:50:56 +00:00
|
|
|
+textbox-timeinput-auto("cs-playlist_max_duration_per_user", "Max total queue time per user", "HH:MM:SS")
|
2016-07-07 08:11:56 +00:00
|
|
|
+textbox-auto("cs-afk_timeout", "Auto-AFK Delay", "0 (disabled)")
|
2014-07-31 00:26:29 +00:00
|
|
|
.form-group
|
|
|
|
.col-sm-offset-4
|
|
|
|
h4 Chat Settings
|
|
|
|
form.form-horizontal(action="javascript:void(0)")
|
2016-07-07 08:11:56 +00:00
|
|
|
+rcheckbox-auto("cs-enable_link_regex", "Convert URLs in chat to links")
|
|
|
|
+rcheckbox-auto("cs-chat_antiflood", "Throttle chat")
|
|
|
|
+textbox-auto("cs-chat_antiflood_burst", "# of messages allowed before throttling")
|
|
|
|
+textbox-auto("cs-chat_antiflood_sustained", "# of messages (after burst) allowed per second")
|
2016-08-07 03:44:15 +00:00
|
|
|
+textbox-timeinput-auto("cs-new_user_chat_delay", "Delay before new accounts can chat", "0")
|
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
|
|
|
span.text-info Restrictions to new accounts can be disabled by setting the delay to 0.
|
|
|
|
+textbox-timeinput-auto("cs-new_user_chat_link_delay", "Delay before new accounts can post links in chat", "0")
|
2013-12-12 20:48:23 +00:00
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
2014-01-16 17:53:34 +00:00
|
|
|
span.text-info Changes are automatically saved.
|
2013-12-12 20:48:23 +00:00
|
|
|
|
|
|
|
mixin adminoptions
|
|
|
|
#cs-adminoptions.tab-pane
|
|
|
|
h4 Admin-Only Settings
|
|
|
|
form.form-horizontal(action="javascript:void(0)")
|
2017-06-16 07:16:59 +00:00
|
|
|
- var defname = `CyTube - /${channelPath}/${channelName}`
|
2016-07-07 08:11:56 +00:00
|
|
|
+textbox-auto("cs-pagetitle", "Page title", defname)
|
|
|
|
+textbox-auto("cs-password", "Password", "leave blank to disable")
|
|
|
|
+textbox-auto("cs-externalcss", "External CSS", "Stylesheet URL")
|
|
|
|
+textbox-auto("cs-externaljs", "External Javascript", "Script URL")
|
|
|
|
+rcheckbox-auto("cs-show_public", "List channel publicly")
|
|
|
|
+rcheckbox-auto("cs-torbanned", "Block connections from Tor")
|
|
|
|
+rcheckbox-auto("cs-allow_ascii_control", "Allow ASCII control characters (e.g. newlines)")
|
|
|
|
+textbox-auto("cs-playlist_max_per_user", "Maximum # of videos per user")
|
2014-10-06 16:32:25 +00:00
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
|
|
|
span.text-info Set to 0 for no limit
|
2013-12-12 20:48:23 +00:00
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
2014-01-16 17:53:34 +00:00
|
|
|
span.text-info Changes are automatically saved.
|
2013-12-12 20:48:23 +00:00
|
|
|
|
|
|
|
mixin motdeditor
|
|
|
|
#cs-motdeditor.tab-pane
|
|
|
|
h4 MOTD editor
|
|
|
|
p The MOTD can be formatted using a subset of HTML. Tags which attempt to execute Javascript will be removed.
|
|
|
|
textarea.form-control#cs-motdtext(rows="10")
|
2014-01-16 17:53:34 +00:00
|
|
|
button.btn.btn-primary#cs-motdsubmit Save MOTD
|
2013-12-12 20:48:23 +00:00
|
|
|
|
|
|
|
mixin csseditor
|
|
|
|
#cs-csseditor.tab-pane
|
|
|
|
h4 CSS editor
|
|
|
|
p Maximum size 20KB. If more space is required, use the External CSS option under General Settings to link to an externally hosted stylesheet.
|
|
|
|
textarea.form-control#cs-csstext(rows="10")
|
2014-01-16 17:53:34 +00:00
|
|
|
button.btn.btn-primary#cs-csssubmit Save CSS
|
2013-12-12 20:48:23 +00:00
|
|
|
|
|
|
|
mixin jseditor
|
|
|
|
#cs-jseditor.tab-pane
|
|
|
|
h4 JS editor
|
|
|
|
p Maximum size 20KB. If more space is required, use the External JS option under General Settings to link to an externally hosted stylesheet.
|
|
|
|
textarea.form-control#cs-jstext(rows="10")
|
2014-01-16 17:53:34 +00:00
|
|
|
button.btn.btn-primary#cs-jssubmit Save JS
|
2013-12-12 20:48:23 +00:00
|
|
|
|
|
|
|
mixin banlist
|
|
|
|
#cs-banlist.tab-pane
|
|
|
|
h4 Ban list
|
|
|
|
table.table.table-striped
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th Unban
|
|
|
|
th IP
|
|
|
|
th Name
|
|
|
|
th Banned by
|
|
|
|
|
|
|
|
mixin recentjoins
|
|
|
|
#cs-recentjoins.tab-pane
|
|
|
|
h4 Recent connections
|
|
|
|
table.table.table-striped
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th Name
|
|
|
|
th Aliases
|
|
|
|
th Time
|
|
|
|
|
|
|
|
mixin chanranks
|
|
|
|
#cs-chanranks.tab-pane
|
2014-01-09 23:16:09 +00:00
|
|
|
h4 Moderator List
|
2014-01-09 05:45:26 +00:00
|
|
|
form.form-inline(action="javascript:void(0)", role="form")
|
|
|
|
.input-group
|
|
|
|
input#cs-chanranks-name.form-control(type="text", placeholder="Name")
|
|
|
|
span.input-group-btn
|
|
|
|
button#cs-chanranks-mod.btn.btn-success +Mod
|
|
|
|
button#cs-chanranks-adm.btn.btn-info +Admin
|
2014-01-09 23:16:09 +00:00
|
|
|
button#cs-chanranks-owner.btn.btn-info +Owner
|
2013-12-12 20:48:23 +00:00
|
|
|
table.table.table-striped
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th Name
|
|
|
|
th Rank
|
2014-01-16 17:53:34 +00:00
|
|
|
|
|
|
|
mixin chatfilters
|
|
|
|
#cs-chatfilters.tab-pane
|
|
|
|
h4 Chat Filters
|
2014-01-19 02:18:00 +00:00
|
|
|
form.form-horizontal(action="javascript:void(0)", role="form")
|
|
|
|
+textbox("cs-chatfilters-newname", "Filter name")
|
|
|
|
+textbox("cs-chatfilters-newregex", "Filter regex")
|
|
|
|
.form-group
|
|
|
|
label.control-label.col-sm-4(for="cs-chatfilters-newflags") Flags
|
|
|
|
.col-sm-8
|
|
|
|
input#cs-chatfilters-newflags.form-control.cs-textbox(type="text", value="g")
|
|
|
|
+textbox("cs-chatfilters-newreplace", "Replacement")
|
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
|
|
|
button#cs-chatfilters-newsubmit.btn.btn-primary Create Filter
|
2014-01-16 17:53:34 +00:00
|
|
|
table.table.table-striped.table-condensed
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th Control
|
|
|
|
th Name
|
|
|
|
th Active
|
|
|
|
|
2014-01-19 02:18:00 +00:00
|
|
|
button#cs-chatfilters-export.btn.btn-default Export filter list
|
|
|
|
button#cs-chatfilters-import.btn.btn-default Import filter list
|
|
|
|
textarea#cs-chatfilters-exporttext.form-control(rows="5")
|
|
|
|
|
2014-02-13 05:33:42 +00:00
|
|
|
mixin emotes
|
|
|
|
#cs-emotes.tab-pane
|
|
|
|
h4 Emotes
|
|
|
|
form.form-horizontal(action="javascript:void(0)", role="form")
|
|
|
|
+textbox("cs-emotes-newname", "Emote name")
|
|
|
|
+textbox("cs-emotes-newimage", "Emote image")
|
|
|
|
.form-group
|
|
|
|
.col-sm-8.col-sm-offset-4
|
|
|
|
button#cs-emotes-newsubmit.btn.btn-primary Create Emote
|
2016-07-12 06:55:07 +00:00
|
|
|
form.form-inline
|
|
|
|
.form-group
|
|
|
|
input.emotelist-search.form-control(type="text", placeholder="Search")
|
2018-02-02 01:39:45 +00:00
|
|
|
.form-group
|
|
|
|
.checkbox
|
|
|
|
label
|
|
|
|
input.emotelist-alphabetical(type="checkbox")
|
|
|
|
| Sort alphabetically
|
2016-07-12 06:55:07 +00:00
|
|
|
.emotelist-paginator-container
|
|
|
|
table.emotelist-table.table.table-striped.table-condensed
|
2014-02-13 05:33:42 +00:00
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th Delete
|
|
|
|
th Name
|
|
|
|
th Image
|
2016-07-12 06:55:07 +00:00
|
|
|
tbody
|
2014-02-13 05:33:42 +00:00
|
|
|
|
|
|
|
button#cs-emotes-export.btn.btn-default Export emote list
|
|
|
|
button#cs-emotes-import.btn.btn-default Import emote list
|
|
|
|
textarea#cs-emotes-exporttext.form-control(rows="5")
|
|
|
|
|
2014-01-16 17:53:34 +00:00
|
|
|
mixin chanlog
|
|
|
|
#cs-chanlog.tab-pane
|
|
|
|
h4 Channel Log
|
|
|
|
strong Filter Log:
|
2014-02-08 18:45:07 +00:00
|
|
|
select#cs-chanlog-filter.form-control(multiple="multiple")
|
|
|
|
pre#cs-chanlog-text
|
|
|
|
button.btn.btn-default#cs-chanlog-refresh Refresh
|
2014-01-20 18:16:30 +00:00
|
|
|
|
|
|
|
mixin permeditor
|
|
|
|
#cs-permedit.tab-pane
|