Added new lines at the end of files, added edit functionality
This commit is contained in:
parent
ed20989e14
commit
312d03599f
@ -1,3 +1,3 @@
|
|||||||
RewriteEngine on
|
RewriteEngine on
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteRule ^(.*)$ index.php?URI=$1 [L,QSA]
|
RewriteRule ^(.*)$ index.php?URI=$1 [L,QSA]
|
||||||
|
2
LICENSE
2
LICENSE
@ -29,4 +29,4 @@ create one? Use it to do whatever you want, it may break
|
|||||||
the website or it may not, it's up to you and the fact that
|
the website or it may not, it's up to you and the fact that
|
||||||
it is provided empty.
|
it is provided empty.
|
||||||
Only a suggestion: if you don't populate the config file,
|
Only a suggestion: if you don't populate the config file,
|
||||||
what part of the website you think that will work properly?
|
what part of the website you think that will work properly?
|
||||||
|
@ -49,4 +49,4 @@ body {
|
|||||||
min-width: 100%;
|
min-width: 100%;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
28
lib/css/manage.css
Normal file
28
lib/css/manage.css
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
.urlContainer {
|
||||||
|
width:100%;
|
||||||
|
margin:0 auto;
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
.urlContainer .urlId, .urlContainer .urlLink, .urlContainer .urlControl {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
.urlContainer .urlLink {
|
||||||
|
border: none;
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 10px;
|
||||||
|
font-family: "Consolas", "Lucida Console", "monospace";
|
||||||
|
width: 50ch;
|
||||||
|
}
|
||||||
|
.urlContainer .urlLink:hover {
|
||||||
|
border: 2px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: aqua;
|
||||||
|
background-color: lightgrey;
|
||||||
|
}
|
||||||
|
.urlContainer .urlLink:focus {
|
||||||
|
border: none;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: transparent;
|
||||||
|
outline: none;
|
||||||
|
box-shadow: 0px 0px 3px blue;
|
||||||
|
}
|
@ -8,4 +8,4 @@
|
|||||||
<h1>404: Page not found!</h1>
|
<h1>404: Page not found!</h1>
|
||||||
</center>
|
</center>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -39,3 +39,56 @@ function insertNewURL() {
|
|||||||
data.append('url', url);
|
data.append('url', url);
|
||||||
xhr.send( data );
|
xhr.send( data );
|
||||||
}
|
}
|
||||||
|
function editURL(node) {
|
||||||
|
var url = node.childNodes[3].value;
|
||||||
|
var url_id = node.childNodes[1].innerHTML
|
||||||
|
var xhr = new XMLHttpRequest ( );
|
||||||
|
xhr.open ( "POST", 'edit', true );
|
||||||
|
xhr.onreadystatechange = function ( ) {
|
||||||
|
if ( xhr.status == 200 ) {
|
||||||
|
if ( xhr.readyState == XMLHttpRequest.DONE ) {
|
||||||
|
var response = xhr.responseText;
|
||||||
|
response = JSON.parse ( response );
|
||||||
|
if ( response [ 'status' ] == 200 ) {
|
||||||
|
document.getElementById ( "responsetext" ).innerHTML = response [ 'message' ];
|
||||||
|
setTimeout( function( ) {
|
||||||
|
document.getElementById ( 'responsetext' ).innerHTML = ""
|
||||||
|
}, 1500 );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.getElementById ( "responsetext" ).innerHTML = response [ 'error_message' ];
|
||||||
|
setTimeout( function( ) {
|
||||||
|
document.getElementById ( 'responsetext' ).innerHTML = ""
|
||||||
|
}, 1500 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.getElementById ( "responsetext" ).innerHTML = response [ 'error_message' ];
|
||||||
|
setTimeout( function( ) {
|
||||||
|
document.getElementById ( 'responsetext' ).innerHTML = ""
|
||||||
|
}, 1500 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data = new FormData ( );
|
||||||
|
data.append('url', url);
|
||||||
|
data.append('url_id', url_id);
|
||||||
|
xhr.send( data );
|
||||||
|
}
|
||||||
|
(function(){
|
||||||
|
var URLs = document.getElementsByClassName("urlLink");
|
||||||
|
for(i=0;i<URLs.length;i++) {
|
||||||
|
URLs[i].onclick = function() {
|
||||||
|
var oldText = this.value;
|
||||||
|
this.parentNode.childNodes[5].style.display = "";
|
||||||
|
this.parentNode.childNodes[5].childNodes[1].onclick = function() {
|
||||||
|
editURL(this.parentNode.parentNode);
|
||||||
|
this.parentNode.style.display = "none";
|
||||||
|
}
|
||||||
|
this.parentNode.childNodes[5].childNodes[3].onclick = function() {
|
||||||
|
this.parentNode.parentNode.childNodes[3].value = oldText;
|
||||||
|
this.parentNode.style.display = "none";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
@ -246,4 +246,4 @@ function SHA512 ( str )
|
|||||||
binarray.push ( H [ i ].lowOrder );
|
binarray.push ( H [ i ].lowOrder );
|
||||||
}
|
}
|
||||||
return binb2hex ( binarray );
|
return binb2hex ( binarray );
|
||||||
}
|
}
|
||||||
|
@ -13,4 +13,4 @@ use the code as is, without explicit permission to do so.
|
|||||||
Such permissions can be requested at copyright@bryanpedini.it
|
Such permissions can be requested at copyright@bryanpedini.it
|
||||||
No permissions to do anything against this license is given
|
No permissions to do anything against this license is given
|
||||||
without an explicit and valid motivation to do so, so please
|
without an explicit and valid motivation to do so, so please
|
||||||
don't email me asking any permission without providing a valid reason.
|
don't email me asking any permission without providing a valid reason.
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
case "insert":
|
case "insert":
|
||||||
include ( 'lib/php/management/insert.php' );
|
include ( 'lib/php/management/insert.php' );
|
||||||
break;
|
break;
|
||||||
|
case "edit":
|
||||||
|
include ( 'lib/php/management/edit.php' );
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
http_response_code ( 404 );
|
http_response_code ( 404 );
|
||||||
include ( 'errors/404.html' );
|
include ( 'errors/404.html' );
|
||||||
|
@ -20,4 +20,4 @@
|
|||||||
<p>Reset your password here - Placeholder</p>
|
<p>Reset your password here - Placeholder</p>
|
||||||
</center>
|
</center>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
|
||||||
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/sha512.min.js"></script>
|
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/sha512.min.js"></script>
|
||||||
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/login.js"></script>
|
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/login.js"></script>
|
||||||
<script>var script_name = "<?=$GLOBALS['config']['installation_path']?>";</script>
|
<script>var script_name = "<?=$GLOBALS['config']['installation_path']?>";</script>
|
||||||
|
@ -13,10 +13,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Management Panel | <?=$GLOBALS['config']['website_name']?></title>
|
<title>Management Panel | <?=$GLOBALS['config']['website_name']?></title>
|
||||||
<link href="<?=$GLOBALS['config']['installation_path']?>/favicon.ico" rel="icon" type="image/x-icon">
|
<link href="<?=$GLOBALS['config']['installation_path']?>/favicon.ico" rel="icon" type="image/x-icon">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.8.2/css/all.css" integrity="sha256-39jKbsb/ty7s7+4WzbtELS4vq9udJ+MDjGTD5mtxHZ0=" crossorigin="anonymous" />
|
||||||
|
<link href="<?=$GLOBALS['config']['installation_path']?>/lib/css/manage.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<button onclick="logout()">Logout</button>
|
<button onclick="logout()">Logout</button>
|
||||||
<div id="urllist">
|
<div class="urlList">
|
||||||
<?php
|
<?php
|
||||||
if ( $result->rowCount ( ) == 0 ) {
|
if ( $result->rowCount ( ) == 0 ) {
|
||||||
echo ( "You have not created any URL yet.<br>" );
|
echo ( "You have not created any URL yet.<br>" );
|
||||||
@ -24,7 +26,14 @@
|
|||||||
else {
|
else {
|
||||||
$rows = $result->fetchAll ( PDO::FETCH_ASSOC );
|
$rows = $result->fetchAll ( PDO::FETCH_ASSOC );
|
||||||
foreach ( $rows as $row ) {
|
foreach ( $rows as $row ) {
|
||||||
echo ( "\t\t\t" . '<div>' . $row [ 'ID' ] . " | " . $row [ 'URL' ] . "</div>\n" );
|
echo ( "\t\t\t<div class=\"urlContainer\">" );
|
||||||
|
echo ( "\t\t\t\t<div class=\"urlId\">" . $row [ 'ID' ] . "</div>" );
|
||||||
|
echo ( "\t\t\t\t<input type=\"text\" class=\"urlLink\" value=\"" . $row [ 'URL' ] . "\">" );
|
||||||
|
echo ( "\t\t\t\t<div class=\"urlControl\" style=\"display: none;\">" );
|
||||||
|
echo ( "\t\t\t\t\t<button><i class=\"fas fa-check\"></i></button>" );
|
||||||
|
echo ( "\t\t\t\t\t<button><i class=\"fas fa-times\"></i></button>" );
|
||||||
|
echo ( "\t\t\t\t</div>" );
|
||||||
|
echo ( "\t\t\t</div>" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@ -32,8 +41,8 @@
|
|||||||
<input type="text" id="form-url" placeholder="URL:">
|
<input type="text" id="form-url" placeholder="URL:">
|
||||||
<button onclick="insertNewURL()">Insert new URL</button><br>
|
<button onclick="insertNewURL()">Insert new URL</button><br>
|
||||||
<div id="responsetext"></div>
|
<div id="responsetext"></div>
|
||||||
|
<script>var script_name = "<?=$GLOBALS['config']['installation_path']?>";</script>
|
||||||
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/manage.js"></script>
|
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/manage.js"></script>
|
||||||
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/logout.js"></script>
|
<script src="<?=$GLOBALS['config']['installation_path']?>/lib/js/logout.js"></script>
|
||||||
<script>var script_name = "<?=$GLOBALS['config']['installation_path']?>";</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
33
lib/php/management/edit.php
Normal file
33
lib/php/management/edit.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
if ( ! isset ( $_SESSION [ 'user_id' ] ) ) {
|
||||||
|
header ( 'Content-Type: application/json' );
|
||||||
|
http_response_code ( 401 );
|
||||||
|
$response = [
|
||||||
|
'status' => 401,
|
||||||
|
'error_message' => 'You either are not logged in or you do not have permissions to edit URLs.'
|
||||||
|
];
|
||||||
|
echo ( json_encode ( $response ) );
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if ( ! isset ( $_POST [ 'url' ] ) ) {
|
||||||
|
header ( 'Content-Type: application/json' );
|
||||||
|
http_response_code ( 400 );
|
||||||
|
$response = [
|
||||||
|
'status' => 400,
|
||||||
|
'error_message' => 'You either did not provide a URL or you provided an invalid one.'
|
||||||
|
];
|
||||||
|
echo ( json_encode ( $response ) );
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$database = new Database ( $GLOBALS [ 'config' ] [ 'db' ] );
|
||||||
|
$database->connect ( );
|
||||||
|
$database->prepare ( "UPDATE `links` SET `URL`=:url WHERE `ID`=:url_id;" );
|
||||||
|
$database->bind ( [ ':url' => $_POST [ 'url' ], 'url_id' => $_POST [ 'url_id' ] ] );
|
||||||
|
$database->execute ( );
|
||||||
|
header ( 'Content-Type: application/json' );
|
||||||
|
$response = [
|
||||||
|
'status' => 200,
|
||||||
|
'message' => 'URL edited correctly.'
|
||||||
|
];
|
||||||
|
echo ( json_encode ( $response ) );
|
||||||
|
exit;
|
Reference in New Issue
Block a user