added project deleting

This commit is contained in:
N0rdye 2023-07-14 10:47:53 +05:00
parent 1a88b8bb64
commit f57fec5cde
8 changed files with 47 additions and 101 deletions

2
db.js
View File

@ -1,6 +1,6 @@
const mysql = require('mysql'); const mysql = require('mysql');
const vars = require('./vars'); const vars = require('./vars');
const db_host = "localhost"; const db_host = "db";
const admin = mysql.createConnection({ const admin = mysql.createConnection({
host: db_host, host: db_host,

View File

@ -131,6 +131,17 @@ app.post("/load_proj", (req,res) => {
func.log("router project loading error - "+error); func.log("router project loading error - "+error);
} }
}) })
app.post("/proj/delete", (req,res) => {
try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.del(inp,cook,res);
})
} catch (error) {
func.log("router project loading error - "+error);
}
})
app.post("/get_projs", (req,res) => { app.post("/get_projs", (req,res) => {
try{ try{
let inp = req.body; let inp = req.body;

View File

@ -39,6 +39,22 @@ module.exports.loads = (inp,cook,res)=>{
} }
} }
module.exports.del = (inp,cook,res)=>{
try {
db.ggv("users","`id`","uuid",`'${cook["uuid"]}'`,(udata)=>{ udata = udata[0];
db.gv("projects","name",`'${inp["name"]}'`,(pdata)=>{pdata=pdata[0]
// res.send({out:"good",body:pdata});
db.dl("projects","id",pdata["id"],()=>{
res.send({out:"good"});
func.log(`good boy ${udata["uuid"]} deleted project ${inp["name"]} from ${cook["sid"]}`);
})
})
})
} catch (error) {
func.log("backend projects delete err0r - " - error);
}
}
module.exports.save = (inp,cook,res)=>{ module.exports.save = (inp,cook,res)=>{
try { try {
db.gv("users","uuid",`'${cook["uuid"]}'`, (udata)=>{ udata = udata[0] db.gv("users","uuid",`'${cook["uuid"]}'`, (udata)=>{ udata = udata[0]

View File

@ -1,96 +0,0 @@
/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
/**
* Create a cookie with the given name and value and other optional parameters.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
* used when the cookie was set.
*
* @param String name The name of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
* If set to null or omitted, the cookie will be a session cookie and will not be retained
* when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
* require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
/**
* Get the value of a cookie with the given name.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String name The name of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
// CAUTION: Needed to parenthesize options.path and options.domain
// in the following expressions, otherwise they evaluate to undefined
// in the packed version for some reason...
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
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;
}
};

View File

@ -40,6 +40,9 @@
border-color: #fff; border-color: #fff;
border-style: solid; border-style: solid;
} }
img{
pointer-events: none;
}
</style> </style>

View File

@ -115,6 +115,7 @@
<button id='proj_cload_btn' onclick='load_proj_cloud()'>загрузить из облака</button> <br> <button id='proj_cload_btn' onclick='load_proj_cloud()'>загрузить из облака</button> <br>
<button id='proj_lsave_btn' onclick='save_proj_local()'>сохранить на локальное хранилище</button> <br> <button id='proj_lsave_btn' onclick='save_proj_local()'>сохранить на локальное хранилище</button> <br>
<button id='proj_lload_btn' onclick='load_proj_local()'>загрузить из локальное хранилище</button> <br> <button id='proj_lload_btn' onclick='load_proj_local()'>загрузить из локальное хранилище</button> <br>
<button id='proj_del_btn' onclick='del_proj()'>удалить проект</button> <br>
</div> </div>
@ -174,8 +175,19 @@
}) })
} }
function del_proj(){
let del = confirm(`удалить проект ${proj_name}?`);
if(del == true){
$.post( "/proj/delete",{name:proj_name})
.done(function( res ) {
if(res["out"] == "good"){
goto("/main")
}
})
}
}
let proj_name = "<%= proj_name %>"; let proj_name = "<%= proj_name %>";
if($.cookie("cache") ==null)$.cookie("cache","true",{path:"/;SameSite=Strict"});
// console.log(proj_name); // console.log(proj_name);
let menu = document.getElementById("project_menu"); let menu = document.getElementById("project_menu");
document.getElementById("top_panel_left").innerHTML = `<div id='proj_menu' class="menu_btn">настройки проекта</div>`; document.getElementById("top_panel_left").innerHTML = `<div id='proj_menu' class="menu_btn">настройки проекта</div>`;

View File

@ -8,9 +8,6 @@
}); });
} }
hide_menus(); hide_menus();
oncontextmenu = (e) => {
e.preventDefault()
}
$('form').on('submit', function(event) { $('form').on('submit', function(event) {
event.preventDefault(); event.preventDefault();
}); });

View File

@ -11,6 +11,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> <%= name %> </title> <title> <%= name %> </title>
<script> <script>
oncontextmenu = (e) => {
e.preventDefault()
}
if(document.title == "login"){ if(document.title == "login"){
// console.log(document.title); // console.log(document.title);
log_by_sid(); log_by_sid();