mirror of
https://github.com/hrfee/jellyfin-accounts.git
synced 2024-12-22 17:10:11 +00:00
Improved admin page
This commit is contained in:
parent
a2e7ff4def
commit
81a80afdf2
@ -40,11 +40,14 @@ function addItem(invite) {
|
|||||||
codeCopy.onclick = function(){toClipboard(inviteCode)};
|
codeCopy.onclick = function(){toClipboard(inviteCode)};
|
||||||
codeCopy.classList.add('fa', 'fa-clipboard');
|
codeCopy.classList.add('fa', 'fa-clipboard');
|
||||||
listCode.appendChild(codeCopy);
|
listCode.appendChild(codeCopy);
|
||||||
console.log(invite[3]);
|
|
||||||
if (typeof(invite[3]) != 'undefined') {
|
if (typeof(invite[3]) != 'undefined') {
|
||||||
var sentTo = document.createElement('span');
|
var sentTo = document.createElement('span');
|
||||||
sentTo.setAttribute('style', 'color: grey; margin-left: 2%; font-style: italic; font-size: 75%;');
|
sentTo.setAttribute('style', 'color: grey; margin-left: 2%; font-style: italic; font-size: 75%;');
|
||||||
|
if (invite[3].includes('Failed to send to')) {
|
||||||
|
sentTo.appendChild(document.createTextNode(invite[3]));
|
||||||
|
} else {
|
||||||
sentTo.appendChild(document.createTextNode('Sent to ' + invite[3]));
|
sentTo.appendChild(document.createTextNode('Sent to ' + invite[3]));
|
||||||
|
}
|
||||||
listCode.appendChild(sentTo);
|
listCode.appendChild(sentTo);
|
||||||
};
|
};
|
||||||
var listDelete = document.createElement('button');
|
var listDelete = document.createElement('button');
|
||||||
@ -159,7 +162,13 @@ function toClipboard(str) {
|
|||||||
document.getSelection().addRange(selected);
|
document.getSelection().addRange(selected);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$("form#inviteForm").submit(function() {
|
$("form#inviteForm").submit(function() {
|
||||||
|
var button = document.getElementById('generateSubmit');
|
||||||
|
button.disabled = true;
|
||||||
|
button.innerHTML =
|
||||||
|
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true" style="margin-right: 0.5rem;"></span>' +
|
||||||
|
'Loading...';
|
||||||
var send_object = $("form#inviteForm").serializeObject();
|
var send_object = $("form#inviteForm").serializeObject();
|
||||||
if (document.getElementById('send_to_address_enabled').checked) {
|
if (document.getElementById('send_to_address_enabled').checked) {
|
||||||
send_object['email'] = document.getElementById('send_to_address').value;
|
send_object['email'] = document.getElementById('send_to_address').value;
|
||||||
@ -175,7 +184,11 @@ $("form#inviteForm").submit(function() {
|
|||||||
beforeSend : function (xhr) {
|
beforeSend : function (xhr) {
|
||||||
xhr.setRequestHeader("Authorization", "Basic " + btoa(window.token + ":"));
|
xhr.setRequestHeader("Authorization", "Basic " + btoa(window.token + ":"));
|
||||||
},
|
},
|
||||||
success: function() { generateInvites(); },
|
success: function() {
|
||||||
|
button.textContent = 'Generate';
|
||||||
|
button.disabled = false;
|
||||||
|
generateInvites();
|
||||||
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
@ -183,6 +196,13 @@ $("form#inviteForm").submit(function() {
|
|||||||
$("form#loginForm").submit(function() {
|
$("form#loginForm").submit(function() {
|
||||||
window.token = "";
|
window.token = "";
|
||||||
var details = $("form#loginForm").serializeObject();
|
var details = $("form#loginForm").serializeObject();
|
||||||
|
var errorArea = document.getElementById('loginErrorArea');
|
||||||
|
errorArea.textContent = '';
|
||||||
|
var button = document.getElementById('loginSubmit');
|
||||||
|
button.disabled = true;
|
||||||
|
button.innerHTML =
|
||||||
|
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true" style="margin-right: 0.5rem;"></span>' +
|
||||||
|
'Loading...';
|
||||||
$.ajax('/getToken', {
|
$.ajax('/getToken', {
|
||||||
type : 'GET',
|
type : 'GET',
|
||||||
dataType : 'json',
|
dataType : 'json',
|
||||||
@ -196,12 +216,13 @@ $("form#loginForm").submit(function() {
|
|||||||
data: { get_param: 'value' },
|
data: { get_param: 'value' },
|
||||||
complete: function(data) {
|
complete: function(data) {
|
||||||
if (data['status'] == 401) {
|
if (data['status'] == 401) {
|
||||||
var formBody = document.getElementById('formBody');
|
button.disabled = false;
|
||||||
|
button.textContent = 'Login';
|
||||||
var wrongPassword = document.createElement('div');
|
var wrongPassword = document.createElement('div');
|
||||||
wrongPassword.classList.add('alert', 'alert-danger');
|
wrongPassword.classList.add('alert', 'alert-danger');
|
||||||
wrongPassword.setAttribute('role', 'alert');
|
wrongPassword.setAttribute('role', 'alert');
|
||||||
wrongPassword.appendChild(document.createTextNode('Incorrect username or password.'));
|
wrongPassword.appendChild(document.createTextNode('Incorrect username or password.'));
|
||||||
formBody.appendChild(wrongPassword);
|
errorArea.appendChild(wrongPassword);
|
||||||
} else {
|
} else {
|
||||||
window.token = JSON.parse(data['responseText'])['token'];
|
window.token = JSON.parse(data['responseText'])['token'];
|
||||||
generateInvites();
|
generateInvites();
|
||||||
@ -219,6 +240,10 @@ $("form#loginForm").submit(function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
document.getElementById('openUsers').onclick = function () {
|
document.getElementById('openUsers').onclick = function () {
|
||||||
|
this.disabled = true;
|
||||||
|
this.innerHTML =
|
||||||
|
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true" style="margin-right: 0.5rem;"></span>' +
|
||||||
|
'Loading...';
|
||||||
$.ajax('/getUsers', {
|
$.ajax('/getUsers', {
|
||||||
type : 'GET',
|
type : 'GET',
|
||||||
dataType : 'json',
|
dataType : 'json',
|
||||||
@ -282,7 +307,6 @@ document.getElementById('openUsers').onclick = function () {
|
|||||||
send[name] = address
|
send[name] = address
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
console.log(send);
|
|
||||||
send = JSON.stringify(send);
|
send = JSON.stringify(send);
|
||||||
$.ajax('/modifyUsers', {
|
$.ajax('/modifyUsers', {
|
||||||
data : send,
|
data : send,
|
||||||
@ -304,10 +328,13 @@ document.getElementById('openUsers').onclick = function () {
|
|||||||
entry.appendChild(editButton);
|
entry.appendChild(editButton);
|
||||||
list.appendChild(entry);
|
list.appendChild(entry);
|
||||||
};
|
};
|
||||||
|
var button = document.getElementById('openUsers');
|
||||||
|
button.disabled = false;
|
||||||
|
button.innerHTML = 'Users <i class="fa fa-user"></i>';
|
||||||
|
$('#users').modal('show');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('#users').modal('show');
|
|
||||||
};
|
};
|
||||||
generateInvites(empty = true);
|
generateInvites(empty = true);
|
||||||
$("#login").modal('show');
|
$("#login").modal('show');
|
||||||
|
@ -66,9 +66,10 @@
|
|||||||
<input type="password" class="form-control" id="password" name="password" placeholder="Password" required>
|
<input type="password" class="form-control" id="password" name="password" placeholder="Password" required>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
<div id="loginErrorArea"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<input type="submit" class="btn btn-primary" value="Login" form="loginForm">
|
<button type="submit" id="loginSubmit" class="btn btn-primary" form="loginForm">Login</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -130,7 +131,7 @@
|
|||||||
<input type="email" class="form-control" placeholder="example@example.com" id="send_to_address" disabled>
|
<input type="email" class="form-control" placeholder="example@example.com" id="send_to_address" disabled>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="submit" class="btn btn-primary" value="Generate">
|
<button type="submit" id="generateSubmit" class="btn btn-primary">Generate</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -181,3 +181,4 @@ class Smtp(Email):
|
|||||||
log.error(e.smtp_error)
|
log.error(e.smtp_error)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
return False
|
||||||
|
@ -197,7 +197,9 @@ def generateInvite():
|
|||||||
email = Smtp(address)
|
email = Smtp(address)
|
||||||
email.construct_invite({'expiry': valid_till,
|
email.construct_invite({'expiry': valid_till,
|
||||||
'code': invite['code']})
|
'code': invite['code']})
|
||||||
email.send()
|
response = email.send()
|
||||||
|
if response is False or type(response) != bool:
|
||||||
|
invite['email'] = f'Failed to send to {address}'
|
||||||
try:
|
try:
|
||||||
with open(config['files']['invites'], 'r') as f:
|
with open(config['files']['invites'], 'r') as f:
|
||||||
invites = json.load(f)
|
invites = json.load(f)
|
||||||
|
Loading…
Reference in New Issue
Block a user