diff --git a/func.js b/func.js index 5441e27..44abac0 100644 --- a/func.js +++ b/func.js @@ -56,18 +56,21 @@ module.exports.sid = (cook,res,callback,auto = true,admin_check = false)=>{ } } else{ - if(auto) res.send({out:"bad",err:"wrong"}); + // if(auto) res.send({out:"bad",err:"wrong"}); + if(auto) res.redirect("/"); else if(!auto) callback(false); } }); } else{ - if(auto) res.send({out:"bad",err:"expired"}); + // if(auto) res.send({out:"bad",err:"expired"}); + if(auto) res.redirect("/"); else if(!auto) callback(false); } }); }else{ - if(auto) res.send({out:"bad",err:"nocr"}); + // if(auto) res.send({out:"bad",err:"nocr"}); + if(auto) res.redirect("/"); else if(!auto) callback(false); } } catch (error) { diff --git a/index.js b/index.js index f341ed7..389debe 100644 --- a/index.js +++ b/index.js @@ -54,104 +54,83 @@ app.get('/', (req, res) => { app.get("/login" , (req,res) =>{ res.render('login'); }) -app.get("/main", (req,res) =>{ - res.render('main'); +app.get("/main", (req,res) =>{try{ + let inp = req.body; + let cook = req.cookies; + func.sid(cook,res,()=>{ + res.render('main'); + }) + } catch (error) {func.log("router getting user information by uuid error - "+error);} }); -app.post('/back_login', (req, res) => { - try { +app.post('/back_login', (req, res) => {try { let inp = req.body; let cook = req.cookies; user.login(inp,cook,res); - } catch (error) { - func.log("router login error - "+error); - } + } catch (error) {func.log("router login error - "+error);} }); -app.post("/sid_log",(req,res) =>{ - try{ +app.post("/sid_log",(req,res) =>{try{ let inp = req.body; let cook = req.cookies; user.sid_log(inp,cook,res,req); - } catch (error) { - func.log("router sid logging in error - "+error); - } + } catch (error) {func.log("router sid logging in error - "+error);} }) -app.post("/get_sid" , (req,res) =>{ - try{ +app.post("/get_sid" , (req,res) =>{try{ let inp = req.body; let sid = func.get_uuid(); res.cookie("sid",sid,{maxAge:(vars.week),path:"/;SameSite=Strict"}); res.send({out:"good"}); - } catch (error) { - func.log("router sid getting error - "+error); - } + } catch (error) {func.log("router sid getting error - "+error);} }); -app.post("/clear_sid" , (req,res) =>{ - try{ +app.post("/clear_sid" , (req,res) =>{try{ let inp = req.body; let cook = req.cookies; user.clear_sid(inp,cook,res); - } catch (error) { - func.log("router sid clearing error - "+error); - } + } catch (error) {func.log("router sid clearing error - "+error);} }); -app.post("/get_cr_uuid", (req,res) => { - try{ +app.post("/get_cr_uuid", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ user.get_cr(inp,cook,res); }) - } catch (error) { - func.log("router getting user information by uuid error - "+error); - } + } catch (error) {func.log("router getting user information by uuid error - "+error);} }) + /// project app.get("/proj/load/:name" , (req,res) =>{ res.render('project',{proj_name:req.params["name"]}); }) -app.post("/save_proj", (req,res) => { - try{ +app.post("/save_proj", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ proj.save(inp,cook,res); }) - } catch (error) { - func.log("router project saving error - "+error); - } + } catch (error) {func.log("router project saving error - "+error);} }) -app.post("/load_proj", (req,res) => { - try{ +app.post("/load_proj", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ proj.load(inp,cook,res); }) - } catch (error) { - func.log("router project loading error - "+error); - } + } catch (error) {func.log("router project loading error - "+error);} }) -app.post("/proj/delete", (req,res) => { - try{ +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); - } + } catch (error) {func.log("router project loading error - "+error);} }) -app.post("/proj/download", (req,res) => { - try{ +app.post("/proj/download", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ proj.download(inp,cook,res); }) - } catch (error) { - func.log("router project loading error - "+error); - } + } catch (error) {func.log("router project loading error - "+error);} }) app.post("/get_projs", (req,res) => { try{ @@ -160,9 +139,7 @@ app.post("/get_projs", (req,res) => { func.sid(cook,res,()=>{ proj.loads(inp,cook,res); }) - } catch (error) { - func.log("router user projects getting error - "+error); - } + } catch (error) {func.log("router user projects getting error - "+error);} }) app.post("/get_objs", (req,res) => { try{ @@ -172,247 +149,168 @@ app.post("/get_objs", (req,res) => { func.sid(cook,res,()=>{ obj.loads(inp,cook,res); }) - } catch (error) { - func.log("router objects getting error - "+error); - } + } catch (error) {func.log("router objects getting error - "+error);} }) -app.post("/get_obj", (req,res) => { - try{ +app.post("/get_obj", (req,res) => {try{ let inp = req.body; let cook = req.cookies; // func.log(inp["name"]); func.sid(cook,res,()=>{ obj.load(inp,cook,res); }) - } catch (error) { - func.log("router single object getting error - "+error); - } + } catch (error) {func.log("router single object getting error - "+error);} }) -app.post("/get_groups", (req,res) => { - try{ +app.post("/get_groups", (req,res) => {try{ let inp = req.body; let cook = req.cookies; // func.log(inp["name"]); func.sid(cook,res,()=>{ obj.load_groups(inp,cook,res); }) - } catch (error) { - func.log("router single object getting error - "+error); - } + } catch (error) {func.log("router single object getting error - "+error);} }) -app.post("/object/parts/get", (req,res) => { - try{ +app.post("/object/parts/get", (req,res) => {try{ let inp = req.body; let cook = req.cookies; // func.log(inp["name"]); func.sid(cook,res,()=>{ obj.load_parts(inp,cook,res); }) - } catch (error) { - func.log("router single object getting error - "+error); - } + } catch (error) {func.log("router single object getting error - "+error);} }) -app.post("/object/group/get", (req,res) => { - try{ +app.post("/object/group/get", (req,res) => {try{ let inp = req.body; let cook = req.cookies; // func.log(inp["name"]); func.sid(cook,res,()=>{ obj.load_group(inp,cook,res); }) - } catch (error) { - func.log("router single object getting error - "+error); - } + } catch (error) {func.log("router single object getting error - "+error);} }) + + /// admin -app.get("/admin", (req,res) =>{ - try { +app.get("/admin", (req,res) =>{try { let inp = req.body; let cook = req.cookies; func.sid(cook,res,(rights)=>{ res.render('admin'); },true,true) - } catch (error) { - func.log("router admin page error - "+error); - } + } catch (error) {func.log("router admin page error - "+error);} }); -app.get("/admin/objects", (req,res) =>{ - try { - let inp = req.body; - let cook = req.cookies; - func.sid(cook,res,(rights)=>{ - if (rights == 1 || rights == 3){ - res.render('admin/objects'); - } - else{ - res.redirect('/admin'); - } - },true,true) - } catch (error) { - func.log("router admin page error - "+error); - } +app.get("/admin/:type", (req,res) =>{try { + let inp = req.body; + let cook = req.cookies; + func.sid(cook,res,(rights)=>{ + if ((req.params["type"] == "objects") && (rights == 1 || rights == 3)){ + res.render('admin/objects'); + } + else if ((req.params["type"] == "users") && (rights == 2 || rights == 3)){ + res.render('admin/users'); + } + else{res.redirect('/admin');} + },true,true) +} catch (error) {func.log("router admin page error - "+error);} }); -app.get("/admin/users", (req,res) =>{ - try { - let inp = req.body; - let cook = req.cookies; - func.sid(cook,res,(rights)=>{ - if (rights == 2 || rights == 3){ - res.render('admin/users'); - } - else{ - res.redirect('/admin'); - } - },true,true) - } catch (error) { - func.log("router admin page error - "+error); - } -}); -app.get("/home", (req,res) =>{ - res.render('home'); -}); -// app.get("/admin/edit/:edit" , (req,res) =>{ -// try { -// let inp = req.body; -// let cook = req.cookies; -// func.sid(cook,res,()=>{ -// switch (req.params["edit"]) { -// case "users": -// res.render('admin/user_edit');break; -// case "projects": -// res.render('admin/project_edit');break; -// case "objects": -// res.render('admin/object_edit');break; -// } -// },true,true) -// } catch (error) { -// func.log("router admin edit page error - "+error); -// } -// }) app.get("/get_logs", (req,res) => { try{let cook = req.cookies;func.sid(cook,res,()=>{func.logs_file(res);})} catch (error) {func.log("router logs download error - "+error);} }) -app.post("/admin/objects/new", (req,res) => { - try{ +app.post("/admin/objects/new", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ obj.new(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/objects/edit", (req,res) => { - try{ +app.post("/admin/objects/edit", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ obj.save(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/objects/delete", (req,res) => { - try{ +app.post("/admin/objects/delete", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ obj.del(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/objects/find", (req,res) => { - try{ +app.post("/admin/objects/find", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ obj.find(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/groups/new", (req,res) => { - try{ +app.post("/admin/groups/new", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ obj.new_group(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/groups/delete", (req,res) => { - try{ +app.post("/admin/parts/new", (req,res) => {try{ + let inp = req.body; + let cook = req.cookies; + func.sid(cook,res,()=>{ + obj.new_part(inp,cook,res); + },true,true) +} catch (error) {func.log("router object creating error - "+error);} +}) +app.post("/admin/groups/delete", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ obj.del_group(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/users/get", (req,res) => { - try{ +app.post("/admin/users/get", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ admin.get_users(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post('/admin/users/new', (req, res) => { - try{ +app.post('/admin/users/new', (req, res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ admin.new_user(inp,cook,res); },true,true) - } catch (error) { - func.log("router registration error - "+error); - } + } catch (error) {func.log("router registration error - "+error);} }) -app.post("/admin/users/edit", (req,res) => { - try{ +app.post("/admin/users/edit", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ admin.edit_user(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/users/delete", (req,res) => { - try{ +app.post("/admin/users/delete", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ admin.del_user(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) -app.post("/admin/users/find", (req,res) => { - try{ +app.post("/admin/users/find", (req,res) => {try{ let inp = req.body; let cook = req.cookies; func.sid(cook,res,()=>{ admin.find_user(inp,cook,res); },true,true) - } catch (error) { - func.log("router object creating error - "+error); - } + } catch (error) {func.log("router object creating error - "+error);} }) diff --git a/object.js b/object.js index b8e3a2c..85631b7 100644 --- a/object.js +++ b/object.js @@ -7,7 +7,7 @@ module.exports.loads = (inp,cook,res)=>{ let gin if (typeof inp["gid"] == 'undefined' || inp["gid"] == null) gin = "1 OR 1=1" else gin = inp["gid"] - db.ggv("objects","`name`,`id`,`height`,`width`,`description`,`cost`,`gid`","gid",`${gin}`,(odata)=>{ + db.ggv("objects","`name`,`id`,`height`,`width`,`description`,`cost`,`gid`,`colors`","gid",`${gin}`,(odata)=>{ // func.log(odata); res.send({out:"good",body:odata}); }) @@ -140,13 +140,15 @@ module.exports.new_group = (inp,cook,res)=>{ db.nr("object_groups","`name`,`count`,`pid`",`'${inp["name"]}','0',${inp["pid"]}`,true,()=>{ db.glv("object_groups","id",(new_group)=>{ new_group = new_group[0]; db.gv("object_partition","id",`${inp["pid"]}`,(part_db)=>{part_db = part_db[0]; - if (part_db["groups"].split(",").lenght<2){ - db.sv("object_partition","`groups`",`${part_db["groups"]}`,"id",`${inp["pid"]}`,()=>{},true) + // console.log(part_db); + if (part_db["count"] == 0){ + db.sv("object_partition","`groups`",`${new_group["id"]}`,"id",`${inp["pid"]}`,()=>{},true) } else{ db.sv("object_partition","`groups`",`${part_db["groups"]},${new_group["id"]}`,"id",`${inp["pid"]}`,()=>{},true) } res.send({out:"good"}); + db.sv("object_partition","count",`(count + 1)`,"id",`${inp["pid"]}`,()=>{},true,true) func.log(`admin group created ${new_group["name"]}`); }) }) @@ -182,6 +184,7 @@ module.exports.del_group = (inp,cook,res)=>{ db.sv("object_partition","`groups`",`${new_groups}`,"`id`",`${inp["pid"]}`,()=>{ db.dl("object_groups",`id`,`'${inp["gid"]}'`,()=>{ func.log(`admin group deleted ${gname}`); + db.sv("object_partition","count",`(count - 1)`,"id",`${inp["pid"]}`,()=>{},true,true) res.send({out:"good"}); },true); },true) @@ -222,7 +225,7 @@ module.exports.new_part = (inp,cook,res)=>{ res.send({out:"bad"}); } else if (gdata == null){ - db.nr("object_partition","`name`,`count`",`'${inp["name"]}','0'`,true,()=>{ + db.nr("object_partition","`name`,`count`,`groups`",`'${inp["name"]}','0',''`,true,()=>{ res.send({out:"good"}); }) } diff --git a/public/lib/fn.js b/public/lib/fn.js index 6c28836..c7645c5 100644 --- a/public/lib/fn.js +++ b/public/lib/fn.js @@ -111,16 +111,18 @@ function load_groups(callback,groups,admin = false){ group_div.classList.add(`obj_group`); let group_label = document.createElement("label"); - group_label.innerText = group["name"].replace("$"," "); + group_label.innerText = group["name"].replaceAll("$"," "); group_label.setAttribute("for",`obj_group_${group["id"]}`) let group_inp = document.createElement("input"); group_inp.setAttribute("type","checkbox"); group_inp.setAttribute("onchange",`group_check(${group["id"]})`) - // group_inp.innerText = group["name"].replace("$"," "); + // group_inp.innerText = group["name"].replaceAll("$"," "); group_inp.setAttribute("group_count",group["count"]); + console.log(group["count"]); group_inp.setAttribute("gid",group["id"]); group_inp.id = `obj_group_${group["id"]}`; + group_inp.setAttribute("group_name",`${group["name"].replaceAll("$"," ")}`); group_inp.setAttribute("pid",`${group["pid"]}`); if (gids.includes(group["id"])){ @@ -149,6 +151,10 @@ function load_groups(callback,groups,admin = false){ } function group_check(gid){ + if (typeof gids[0] == 'undefined'){ + gids = [] + } + let gid_el = document.getElementById(`obj_group_${gid}`); if(gid_el.checked){ gids[gids.indexOf(gids.at(-1))+1] = gid; diff --git a/public/lib/inter.js b/public/lib/inter.js index b521143..4dd9c01 100644 --- a/public/lib/inter.js +++ b/public/lib/inter.js @@ -8,6 +8,7 @@ let cur_obj; let objs_back = []; let objs_forw = []; let proj_state = "loading"; +let cm_mod = 2; function create(clas,x,y,body,id,size){ let main_clas = clas.split(" ")[0]; @@ -49,21 +50,37 @@ function create(clas,x,y,body,id,size){ } function make(img){ obj.src = img; - obj.title = `${db_data["name"].replace("$"," ").split("/g")[0]}\nцена:${db_data["cost"]}\n${db_data["description"]}\nширина:${db_data["width"]}см высота:${db_data["height"]}см`; + obj.title = `${db_data["name"].replaceAll("$"," ").split("/g")[0]}\nцена:${db_data["cost"]}\n${db_data["description"]}\nширина:${db_data["width"]}см высота:${db_data["height"]}см`; obj.setAttribute("cost",db_data["cost"]) - // drag.transform = `translate(${drag.getAttribute("data-y")}px, ${drag.getAttribute("data-y")}px) scale(${db_data["width"] * 2} ${db_data["height"] * 2})`; + // drag.transform = `translate(${drag.getAttribute("data-y")}px, ${drag.getAttribute("data-y")}px) scale(${db_data["width"] * cm_mod} ${db_data["height"] * cm_mod})`; if(size){ - obj.style.width = `${db_data["width"] * 2}px`; - obj.style.height = `${db_data["height"] * 2}px`; + obj.style.width = `${db_data["width"] * cm_mod}px`; + obj.style.height = `${db_data["height"] * cm_mod}px`; } } calc_total(); }) - obj.setAttribute("onclick",`cur_obj = "${id}"`); + obj.setAttribute("onclick",`obj_click("${id}")`); root.append(obj); set_pos(obj,x,y); } +function obj_click(id){ + if (cur_obj != id){ + cur_obj = id; + let drags = document.getElementsByClassName("drag"); + Object.values(drags).forEach(element => { + // console.log(element.id,cur_obj); + if (element.id != cur_obj){ + element.style.border = "0px"; + } + else{ + element.style.border = "1px black solid"; + } + }); + } +} + function resize_drags(){ document.getElementById('drags').setAttribute("data-x",document.getElementsByClassName("wall")[0].getBoundingClientRect().left.toString()+"px"); document.getElementById('drags').style.left = document.getElementsByClassName("wall")[0].getBoundingClientRect().left.toString()+"px"; @@ -84,7 +101,7 @@ function wall_size_change(type,value = null){ // document.getElementById("wall_width_value").innerHTML = `${scroll}м`; // console.log(scroll); - wall.style.width = `${scroll * 200}px`; + wall.style.width = `${(scroll * 100) * cm_mod}px`; objs["width"] = scroll; } if(type != null && type == "height") { @@ -94,7 +111,7 @@ function wall_size_change(type,value = null){ // document.getElementById("wall_height_value").innerHTML = `${scroll}м`; // console.log(scroll); - wall.style.height = `${scroll * 200}px`; + wall.style.height = `${(scroll * 100) * cm_mod}px`; objs["height"] = scroll; } } @@ -116,7 +133,7 @@ function calc_total(start = false){ total += parseInt(parseInt(objs_store[key]["cost"]) * Object.keys(value).length); let obj_cost_div = document.createElement("li"); obj_cost_div.innerHTML = - `