531 lines
15 KiB
Plaintext
531 lines
15 KiB
Plaintext
|
|
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="Content-Language" content="en">
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<meta name="country" content="Iceland">
|
|
<meta name="language" content="is">
|
|
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
|
<!-- Title -->
|
|
<title>
|
|
Management
|
|
- 1984 Hosting Company</title>
|
|
<link rel="stylesheet" href="/static/fontawesome/css/all.css" />
|
|
<link href="/static/flag-icon-css-master/css/flag-icon.min.css" rel="stylesheet">
|
|
<link type="text/css" href="/static/jquery-ui-1.12.1/jquery-ui.min.css" rel="Stylesheet" />
|
|
<script type="text/javascript" src="/static/js/jquery-3.6.3.min.js"></script>
|
|
|
|
<link rel="apple-touch-icon" sizes="57x57" href="/static/favicon/apple-icon-57x57.png">
|
|
<link rel="apple-touch-icon" sizes="60x60" href="/static/favicon/apple-icon-60x60.png">
|
|
<link rel="apple-touch-icon" sizes="72x72" href="/static/favicon/apple-icon-72x72.png">
|
|
<link rel="apple-touch-icon" sizes="76x76" href="/static/favicon/apple-icon-76x76.png">
|
|
<link rel="apple-touch-icon" sizes="114x114" href="/static/favicon/apple-icon-114x114.png">
|
|
<link rel="apple-touch-icon" sizes="120x120" href="/static/favicon/apple-icon-120x120.png">
|
|
<link rel="apple-touch-icon" sizes="144x144" href="/static/favicon/apple-icon-144x144.png">
|
|
<link rel="apple-touch-icon" sizes="152x152" href="/static/favicon/apple-icon-152x152.png">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/static/favicon/apple-icon-180x180.png">
|
|
<link rel="icon" type="image/png" sizes="192x192" href="/static/favicon/android-icon-192x192.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/static/favicon/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="96x96" href="/static/favicon/favicon-96x96.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/static/favicon/favicon-16x16.png">
|
|
<link rel="manifest" href="/static/favicon/manifest.json">
|
|
<meta name="msapplication-TileColor" content="#ffffff">
|
|
<meta name="msapplication-TileImage" content="/static/ms-icon-144x144.png">
|
|
<!-- Bootstrap CSS -->
|
|
<link rel="stylesheet" href="/static/bootstrap-5.3.3-dist/css/bootstrap.min.css" />
|
|
<!-- Libs CSS -->
|
|
<link rel="stylesheet" href="/static/dashkit/dist/assets/css/libs.bundle.css" />
|
|
<!-- Theme CSS -->
|
|
<link rel="stylesheet" href="/static/dashkit/dist/assets/css/theme.bundle.css" />
|
|
<!-- 1984 Custom -->
|
|
<link href="/static/css/base.css" rel="stylesheet">
|
|
<link type="text/css" href="/static/jquery-confirm/css/jquery-confirm.css" rel="Stylesheet" />
|
|
<link type="text/css" href="/static/css/sweetalert2.min.css" rel="Stylesheet" />
|
|
|
|
<!-- Custom CSS -->
|
|
|
|
<link rel="stylesheet" href="/static/css/custom.css">
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
// public.js starts
|
|
var processing;
|
|
processing = processing || (function () {
|
|
var process = $('<div class="modal modal-static fade" id="processing-modal" role="dialog" aria-hidden="true" data-bs-backdrop="static"><div class="modal-dialog"><div class="modal-content"><div class="modal-body"><div class="text-center"><i class="fa fa-cog fa-spin fa-3x fa-fw margin-bottom"></i><h4 id="process_text">Processing...</h4></div><div id="processingdetails"></div></div></div></div></div>');
|
|
return {
|
|
showProcess: function() {
|
|
process.modal('show');
|
|
},
|
|
hideProcess: function() {
|
|
process.modal('hide');
|
|
},
|
|
|
|
};
|
|
})();
|
|
|
|
|
|
function busybutton(el) {
|
|
var spinning = $(el).attr('id')+'_spinning';
|
|
if($('.'+spinning).is(':visible')){
|
|
$('.'+spinning).remove();
|
|
$(el).attr('disabled',false);
|
|
}
|
|
else{
|
|
$(el).attr('disabled',true);
|
|
$(el).append('<i class="fa fa-cog fa-spin fa-fw '+spinning+'">');
|
|
|
|
}
|
|
}
|
|
// public.js ends
|
|
|
|
|
|
|
|
</script>
|
|
<!-- Matomo Tag Manager -->
|
|
<script>
|
|
var _mtm = window._mtm = window._mtm || [];
|
|
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
|
|
(function() {
|
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
g.async=true; g.src='https://matomo.1984.is/js/container_tE3vCFjE.js'; s.parentNode.insertBefore(g,s);
|
|
})();
|
|
</script>
|
|
<!-- End Matomo Tag Manager -->
|
|
|
|
|
|
|
|
|
|
<script>
|
|
/*
|
|
@licstart The following is the entire license notice for the
|
|
JavaScript code in this page.
|
|
|
|
Copyright (C) 2025 1984.hosting
|
|
|
|
The JavaScript code in this page is free software: you can
|
|
redistribute it and/or modify it under the terms of the GNU
|
|
General Public License (GNU GPL) as published by the Free Software
|
|
Foundation, either version 3 of the License, or (at your option)
|
|
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
|
without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
|
|
|
As additional permission under GNU GPL version 3 section 7, you
|
|
may distribute non-source (e.g., minimized or compacted) forms of
|
|
that code without the copy of the GNU GPL normally required by
|
|
section 4, provided you include this license notice and a URL
|
|
through which recipients can access the Corresponding Source.
|
|
|
|
|
|
@licend The above is the entire license notice
|
|
for the JavaScript code in this page.
|
|
*/
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="container-custom">
|
|
|
|
<!-- MAIN CONTENT -->
|
|
<div class="main-content">
|
|
|
|
<!-- HEADER -->
|
|
<div class="header mb-0">
|
|
<div class="container-fluid">
|
|
<!-- Body -->
|
|
<div class="header-body">
|
|
<div class="row align-items-end">
|
|
<div class="col">
|
|
|
|
<a href="/">
|
|
<img src="/static/images/logo.webp" class="logo-auth-position">
|
|
</a>
|
|
|
|
<!-- Pretitle -->
|
|
|
|
<!-- Title -->
|
|
|
|
</div>
|
|
<div class="col-auto">
|
|
<ul class="nav">
|
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
|
<a class="nav-link" href="https://1984.is/api/local/defense/malicous-networks/">
|
|
<img src="/static/images/flags/is.png">
|
|
</a>
|
|
|
|
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!-- / .row -->
|
|
<div class="horizontalmenu mt-5">
|
|
|
|
</div>
|
|
</div>
|
|
<!-- / .header-body -->
|
|
</div>
|
|
</div>
|
|
<!-- / .header -->
|
|
<!-- CARDS -->
|
|
<div class="container-fluid pb-5">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
.damndamndamn {
|
|
position:absolute;
|
|
top:50%;
|
|
left:50%;
|
|
padding:15px;
|
|
-ms-transform: translateX(-50%) translateY(-50%);
|
|
-webkit-transform: translate(-50%,-50%);
|
|
transform: translate(-50%,-50%);
|
|
text-align:center;
|
|
}
|
|
</style>
|
|
|
|
<div class="damndamndamn">
|
|
<h1 style="font-size:50px;font-weight:bolder;">OOPSY DAISY!</h1>
|
|
<h2>Something did not go according to plan!</h2>
|
|
<p style="font-size:20px;">But no worries, a technician has been notified and will fix this in a jiffy.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<!-- / .main-content -->
|
|
<!-- Multipurpose Modal -->
|
|
<div class="modal fade"
|
|
id="base-modal"
|
|
tabindex="-1"
|
|
role="dialog"
|
|
aria-labelledby="ModalLabel"
|
|
aria-hidden="true">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="base-modal-title"></h5>
|
|
</div>
|
|
<div id="base-modal-body" class="modal-body"></div>
|
|
<div id="base-modal-footer" class="modal-footer">
|
|
<button type="button"
|
|
class="btn btn-sm btn-secondary"
|
|
data-bs-dismiss="modal"
|
|
aria-label="Close">
|
|
<i class="fas fa-times-circle"></i> Close
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<script src="/static/js/popper.min.js"></script>
|
|
<script src="/static/js/bootbox.min.js"></script>
|
|
<script src="/static/bootstrap-5.3.3-dist/js/bootstrap.min.js"></script>
|
|
<script src="/static/js/general.js?v=20200103"></script>
|
|
<script src="/static/js/jquery.base64.js"></script>
|
|
<script type="text/javascript" src="/static/jquery-ui-1.12.1/jquery-ui.min.js"></script>
|
|
<script type="text/javascript" src="/static/jquery-confirm/js/jquery-confirm.js"></script>
|
|
<script type="text/javascript" src="/static/js/sweetalert2.all.min.js"></script>
|
|
<script type="text/javascript" src="/static/js/jquery.serializejson.js"></script>
|
|
<script type="text/javascript" src="/static/js/jquery.md5.js"></script>
|
|
<script language="JavaScript" type="text/javascript">
|
|
|
|
|
|
|
|
|
|
function nonono(text='',button='Try again'){
|
|
$.confirm({
|
|
title: 'No no no, this is not right!',
|
|
content: text,
|
|
type: 'red',
|
|
typeAnimated: true,
|
|
buttons: {
|
|
tryAgain: {
|
|
text: button,
|
|
btnClass: 'btn-red',
|
|
action: function(){
|
|
}
|
|
},
|
|
}
|
|
});
|
|
}
|
|
|
|
function yesyesyes(text=''){
|
|
$.confirm({
|
|
title: 'Success!',
|
|
content: (text == '') ? "All went according to plan!" : text,
|
|
type: 'green',
|
|
typeAnimated: true,
|
|
buttons: {
|
|
tryAgain: {
|
|
text: 'Close',
|
|
btnClass: 'btn-green',
|
|
action: function(){
|
|
}
|
|
},
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
$(function() {
|
|
$('#instantFeedbackText').keypress(function(){
|
|
if($('#instantFeedbackText').val() == ""){
|
|
$('#instantFeedbackSend').attr('disabled','disabled');
|
|
}
|
|
else{
|
|
$('#instantFeedbackSend').removeAttr('disabled');
|
|
}
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
$('#instantFeedbackSend').click(function(){
|
|
var formdata = $('#instantFeedbackForm').serialize();
|
|
$('#instantFeedbackSend').attr('disabled','disabled');
|
|
$('#instantFeedbackText').attr('disabled','disabled');
|
|
|
|
$.post( "/feedback/", formdata ,function( data ) {
|
|
$('#instantFeedbackSend').hide();
|
|
$('#instantFeedbackCancel').html('Close');
|
|
$('#instantFeedbackBody').html('<div style="font-size:20px;"><i class="fas fa-smile-o fa-4x" aria-hidden="true" style="float: left; margin-right:8px;"></i>Thank you for taking the time.</div>');
|
|
$('#feedback').hide();
|
|
$('#instantFeedbackModal').delay(8000).queue(function(next) { $(this).modal('hide'); next(); });
|
|
});
|
|
});
|
|
|
|
|
|
function setconfig(config){
|
|
$.post( "/accounts/setconfig/", {'config':config} ,function( data ) {
|
|
if(data.ok){
|
|
// nothing
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
function randomstring(){
|
|
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
}
|
|
|
|
|
|
function passgen(el,n=12){
|
|
$.ajax({
|
|
async: false,
|
|
type: "GET",
|
|
url: "/accounts/generate-password/?n="+n,
|
|
dataType: "json",
|
|
success: function(data) {
|
|
if(data.ok){
|
|
$(el).val(data.password);
|
|
}
|
|
},
|
|
error: function() {
|
|
}
|
|
});
|
|
return true;
|
|
}
|
|
|
|
|
|
function basemodal(description,info){
|
|
$('#base-modal').modal('show');
|
|
$('#base-modal-title').html(description);
|
|
$("#base-modal-body").html(info);
|
|
}
|
|
|
|
function getinfo(key){
|
|
$.get("/info/?key="+key, function( data ) {
|
|
basemodal(data.description,data.info);
|
|
});
|
|
}
|
|
|
|
|
|
function oopsydaisy(error){
|
|
Swal.fire({
|
|
icon: 'error',
|
|
title: 'Oopsy Daisy...',
|
|
html: error,
|
|
showConfirmButton: false,
|
|
footer: 'Click on background to escape.'
|
|
})
|
|
}
|
|
|
|
function foryourinformation({title='For your information!',text='',icon='info'}){
|
|
Swal.fire({
|
|
icon: icon,
|
|
title: title,
|
|
html: text,
|
|
showConfirmButton: true,
|
|
})
|
|
}
|
|
|
|
|
|
function yeahbaby(text='Great success!'){
|
|
Swal.fire({
|
|
position: 'top-end',
|
|
icon: 'success',
|
|
title: text,
|
|
showConfirmButton: false,
|
|
timer: 3000
|
|
})
|
|
|
|
}
|
|
|
|
|
|
function yeahbutsucks(title,text){
|
|
Swal.fire({
|
|
icon: 'warning',
|
|
title: title,
|
|
text: text,
|
|
showConfirmButton: false,
|
|
footer: 'Click on background to escape.'
|
|
})
|
|
}
|
|
|
|
|
|
function passprogressbar(score,field){
|
|
var score = parseInt(score);
|
|
var calidad = parseInt((score == 0 ? 1 : score));
|
|
var percent = 20*calidad;
|
|
|
|
var cssclass = '';
|
|
|
|
if(calidad == 5){
|
|
cssclass = 'success';
|
|
}
|
|
if(calidad == 4){
|
|
cssclass = 'info';
|
|
}
|
|
if(calidad == 3){
|
|
cssclass = 'warning';
|
|
}
|
|
if(calidad < 3){
|
|
cssclass = 'danger';
|
|
}
|
|
|
|
|
|
$( "#"+field ).css({ "width": percent+"%"});
|
|
$( "#"+field ).removeClass('bg-info bg-warning bg-success bg-danger');
|
|
$( "#"+field ).addClass("bg-"+cssclass);
|
|
|
|
}
|
|
|
|
function passwordgenerator(id){
|
|
var el = $('#password-field-'+id);
|
|
el.attr({type:'text'});
|
|
|
|
$('.password-eye > i').removeClass('fa-eye');
|
|
$('.password-eye > i').addClass('fa-eye-slash');
|
|
|
|
passgen(el,n=20);
|
|
passprogressbar(5,'progress-bar-'+id);
|
|
}
|
|
|
|
|
|
function passwordeye(id){
|
|
var el = $('#password-field-'+id);
|
|
var type = 'password';
|
|
|
|
if(el.attr('type') == 'password'){
|
|
type = 'text';
|
|
$('.password-eye > i').removeClass('fa-eye');
|
|
$('.password-eye > i').addClass('fa-eye-slash');
|
|
}
|
|
else{
|
|
$('.password-eye > i').removeClass('fa-eye-slash');
|
|
$('.password-eye > i').addClass('fa-eye');
|
|
}
|
|
el.attr({type:type});
|
|
}
|
|
|
|
|
|
function passwordfield(id){
|
|
var password = $('#password-field-'+id).val();
|
|
if(password.length > 5){
|
|
$.post("/accounts/check-password/", { password:password },
|
|
function(data) {
|
|
if(data.ok){
|
|
passprogressbar(data.score,'progress-bar-'+id);
|
|
}
|
|
});
|
|
}
|
|
else{
|
|
passprogressbar(1,'progress-bar-'+id);
|
|
}
|
|
}
|
|
|
|
|
|
function getCookie(name) {
|
|
var cookieValue = null;
|
|
if (document.cookie && document.cookie !== '') {
|
|
var cookies = document.cookie.split(';');
|
|
for (var i = 0; i < cookies.length; i++) {
|
|
var cookie = jQuery.trim(cookies[i]);
|
|
// Does this cookie string begin with the name we want?
|
|
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
|
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return cookieValue;
|
|
}
|
|
var csrftoken = getCookie('csrftoken');
|
|
|
|
function csrfSafeMethod(method) {
|
|
// these HTTP methods do not require CSRF protection
|
|
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
|
|
}
|
|
$.ajaxSetup({
|
|
beforeSend: function(xhr, settings) {
|
|
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
|
|
xhr.setRequestHeader("X-CSRFToken", csrftoken);
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var cryptocurrencies = ['5','6'];
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|