Preparatory work for user editor

pull/2/head^2
willd 2 years ago
parent 90b948a057
commit 1c8bdc69f6

@ -0,0 +1,118 @@
function new_user_entry() {
}
function init_User_edit(userID, name) {
$('#save-button').attr("onclick", "saveUser(" + userID + ")");
$('#delete-button').attr("onclick", "deleteUser(" + userID + ")");
$('#user-name-input').val(name);
$('#user-password-input').val('');
overlay_in();
}
function saveUser(userID) {
var name_v = $('#user-name-input').val();
var password_v = $('#user-password-input').val();
if(name_v.length > 100) {
alert('Name too long (max 100 characters).')
return;
}
var data = new FormData();
data.append('password', password_v);
data.append('name', name_v)
$.ajax({
url: rootURL + 'alterUser/' + userID,
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
success: function(data) {
alert("k.");
},
error: function() {
alert("Couldn't update the user information. Please retry.");
}
});
end_edit();
$('#edit-button').click(function() {
init_edit(userID);
});
}
function deleteUser(userID) {
if (userID < 0){
alert('Congratulations! You found the secret UI bug easter egg! This button should not be here, yet I left it specifically because I wanted an easter egg and not because of any other reasons! Good for you!')
return;
}
if (!confirm('Delete the selected user? ')){
return;
}
$.ajax({
url: rootURL + 'deleteUser/' + userID,
type: 'GET',
cache: false,
contentType: false,
processData: false,
success: function() {
alert("User removed.");
overlay_out();
location.reload();
},
fail: function() {
console.log('An error occurred while deleting the entry');
},
});
}
function end_edit(){
//intentionally left blank
}
function show_user_info(userID) {
$.getJSON(rootURL + 'getpartinfo/' + partID, function(data) {
$('table#details tr#location td p').text(text_filter(data.location_descriptor)); // name is the location friendly name
$('#location-dropdown').val(data.location_id);
$('#container-dropdown').val(data.container_id);
$('table#details tr#partno td p').text(text_filter(data.partno));
$('table#details tr#partno td input').val(text_filter(data.partno));
$('table#details tr#description td p').text(text_filter(data.description));
$('table#details tr#description td input').val(text_filter(data.description));
container_onchange();
if (data.datasheet != null) {
$('tr#datasheet-head').html($('<td>DATASHEET: <a href="parts/getfile/' + data.datasheet + '"><i class="fa fa-file-text" aria-hidden="true"></i></a></td>'));
$('#datasheet-input').val(data.datasheet);
}
else
$('tr#datasheet-head td').text('DATASHEET: ');
$('#edit-button').click(function() {
init_edit(partID);
});
$('#delete-button').click(function() {
delete_entry(partID);
});
overlay_in();
}).fail(function() {
console.log( "Fetching part info failed" );
});
}
function placeMarker(locationID){
//temporarily not used
var $img = $('#clickablemap');
var currentClickPosX = event.pageX - $img.offset().left;
var currentClickPosY = event.pageY - $img.offset().top;
var correctX = (($img.prop('naturalWidth') / $img.width()) * currentClickPosX).toFixed(0);
var correctY = (($img.prop('naturalHeight') / $img.height()) * currentClickPosY).toFixed(0);
// $("#mapURL").html("elab.png?x=" + correctX + "&y=" + correctY);
$("#clickablemap").attr("src", "map/" + $("#mapfile-input").val() + "?x=" + correctX + "&y=" + correctY);
}

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ELAB Part Search Engine - User editor</title>
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{{ baseURL }}/static/style.css">
<script src="https://use.fontawesome.com/2fef7be393.js"></script>
<script type="text/javascript" src="{{ baseURL }}/static/common.js"></script>
<script type="text/javascript" src="{{ baseURL }}/static/userEditorScript.js"></script>
</head>
<body>
<h1>USER EDITOR</h1>
<p>Get in! Get out! Get your fresh users here! <a href=".">back to parts</a></p>
<table id="results" class="results-locations">
<tr>
<th>ID</th>
<th>Username</th>
</tr>
{% for user in users %}
<tr onclick="init_User_edit({{user['id']}}, '{{user['username']}}');">
<td>{{user['id']}}</td>
<td>{{user['username']}}</td>
</tr>
{% endfor %}
</table>
<div class="bottom-spacer"></div>
<div class="shadow" onclick="overlay_out()"></div>
<div class="overlay">
<h2>User Details</h2>
<table id="details">
<tr><td>Adding a new user</td></tr>
<tr><td>Name and password for new user<br />Example: "noob"</td></tr>
<tr><td><p></p><input type="text" name="user-name-input" id="user-name-input" placeholder="Name" class="pinfo-input nothidden"/></td></tr>
<tr><td><p></p><input type="password" name="user-password-input" id="user-password-input" placeholder="Password" class="pinfo-input nothidden"/></td></tr>
</table>
<div class="round-button-left"><a href="#" id="save-button"><i class="fa fa-check" aria-hidden="true"></i></a></div>
<div class="round-button"><a href="#" id="delete-button"><i class="fa fa-trash" aria-hidden="true"></i></a></div>
<div class="small-square-button"><a href="#" onclick="overlay_out()"><i class="fa fa-times" aria-hidden="true"></i></a></div>
</div>
<div class="round-floating-button"><a href="#" onclick="init_User_edit(-1, '', 0)"><i class="fa fa-plus" aria-hidden="true"></i></a></div>
</body>
</html>
Loading…
Cancel
Save