mirror of https://github.com/calzoneman/sync.git
92 lines
3.4 KiB
Plaintext
92 lines
3.4 KiB
Plaintext
extends layout.pug
|
|
|
|
block content
|
|
if !loggedIn
|
|
.col-lg-6.col-lg-offset-3.col-md-6.col-md-offset-3
|
|
.alert.alert-danger.messagebox.center
|
|
strong Authorization Required
|
|
p You must be <a href="/login">logged in</a> to view this page.
|
|
else
|
|
.col-lg-6.col-md-6
|
|
h3 My Channels
|
|
if deleteChannelError
|
|
.alert.alert-danger.center.messagebox
|
|
strong Channel Deletion Failed
|
|
p= deleteChannelError
|
|
if channels.length == 0
|
|
.center
|
|
strong You haven't registered any channels
|
|
else
|
|
table.table.table-bordered
|
|
thead
|
|
tr
|
|
th Channel
|
|
tbody
|
|
for c in channels
|
|
tr
|
|
td
|
|
form.form-inline.pull-right(action="/account/channels", method="post", onsubmit="return confirm('Are you sure you want to delete " +c.name+ "? This cannot be undone');")
|
|
input(type="hidden", name="_csrf", value=csrfToken)
|
|
input(type="hidden", name="action", value="delete_channel")
|
|
input(type="hidden", name="name", value=c.name)
|
|
button.btn.btn-xs.btn-danger(type="submit") Delete
|
|
span.glyphicon.glyphicon-trash
|
|
a(href=`/${channelPath}/${c.name}`, style="margin-left: 5px")= c.name
|
|
if c.banReason != null
|
|
|
|
|
span.label.label-danger Banned
|
|
.col-lg-6.col-md-6
|
|
h3 Register a new channel
|
|
if newChannelError
|
|
.alert.alert-danger.messagebox.center
|
|
strong Channel Registration Failed
|
|
p= newChannelError
|
|
form(action="/account/channels", method="post")
|
|
input(type="hidden", name="_csrf", value=csrfToken)
|
|
input(type="hidden", name="action", value="new_channel")
|
|
.form-group
|
|
label.control-label(for="channelname") Channel URL
|
|
.input-group
|
|
span.input-group-addon #{baseUrl}/#{channelPath}/
|
|
input#channelname.form-control(type="text", name="name", maxlength="30", onkeyup="checkChannel()")
|
|
p#validate_channel.text-danger.pull-right
|
|
button#register.btn.btn-primary.btn-block(type="submit") Register
|
|
|
|
append footer
|
|
script(type='text/javascript').
|
|
function checkChannel(){
|
|
function nameIsInvalid(id){
|
|
if(/\s/.test(id)){
|
|
return 'Channel URL may not contain spaces';
|
|
}
|
|
if(id === ''){
|
|
return 'Channel URL must not be empty';
|
|
}
|
|
if(!/^[\w-]{1,30}$/.test(id)){
|
|
return 'Channel URL may only consist of a-z, A-Z, 0-9, - and _';
|
|
}
|
|
return false;
|
|
}
|
|
|
|
var box = $("#channelname");
|
|
var value = box.val();
|
|
var lastkey = Date.now();
|
|
box.data("lastkey", lastkey);
|
|
|
|
setTimeout(function () {
|
|
if (box.data("lastkey") !== lastkey || box.val() !== value) {
|
|
return;
|
|
}
|
|
if(nameIsInvalid(value)){
|
|
$('#validate_channel').text(nameIsInvalid(value))
|
|
.parent().addClass('has-error').removeClass('has-success');
|
|
$('#register').addClass('disabled');
|
|
} else {
|
|
$('#validate_channel').text('')
|
|
.parent().addClass('has-success').removeClass('has-error');
|
|
$('#register').removeClass('disabled');
|
|
}
|
|
}, 200);
|
|
|
|
}
|