diff --git a/db.js b/db.js index 5c69272..1cfcaa3 100644 --- a/db.js +++ b/db.js @@ -81,8 +81,8 @@ module.exports.ggv = (table,ekey,key,value,callback,prevs = false) => { // set value where module.exports.sv = (table,key,value,ekey,evalue,callback,prevs = false,no_srt = false) => { value = (no_srt)? value:`'${value}'`; + // console.log(`UPDATE ${table} SET ${key} = ${value} WHERE ${ekey} = '${evalue}'`); db(prevs).query(`UPDATE ${table} SET ${key} = ${value} WHERE ${ekey} = '${evalue}'`, (err , rows) => { - // console.log("UPDATE `"+table+"` SET `"+key+"` = '"+value+"' WHERE `"+ekey+"` = '"+evalue+"'"); if (err) { console.log("sql err"); throw err; @@ -91,6 +91,31 @@ module.exports.sv = (table,key,value,ekey,evalue,callback,prevs = false,no_srt = } }) } + +module.exports.uv = (table,keys,values,ekey,evalue,callback,prevs = false,no_srt = false) => { + values = values.split("."); + keys = keys.split("."); + let sets = ''; + for (let i = 0; i < keys.length; i++) { + if(i != keys.length-1){ + sets+=`${keys[i]} = ${values[i]},`; + } + else{ + sets+=`${keys[i]} = ${values[i]}`; + } + + } + // console.log(`UPDATE ${table} SET ${sets} WHERE ${ekey} = '${evalue}'`); + db(prevs).query(`UPDATE ${table} SET ${sets} WHERE ${ekey} = '${evalue}'`, (err , rows) => { + if (err) { + console.log("sql err"); + throw err; + }else{ + if(callback)callback(rows); + } + }) +} + // new record module.exports.nr = (table,keys,values,prevs = false,callback) =>{ // console.log('INSERT INTO `'+table+'`('+keys+') VALUES ('+values+')'); diff --git a/index.js b/index.js index 8a02e90..7ea4ece 100644 --- a/index.js +++ b/index.js @@ -212,7 +212,7 @@ 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("/new_obj", (req,res) => { +app.post("/admin/obj/new", (req,res) => { try{ let inp = req.body; let cook = req.cookies; @@ -223,6 +223,28 @@ app.post("/new_obj", (req,res) => { func.log("router object creating error - "+error); } }) +app.post("/admin/obj/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); + } +}) +app.post("/admin/obj/del", (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); + } +}) app.post("/admin/new/group", (req,res) => { try{ let inp = req.body; @@ -300,11 +322,6 @@ app.post("/admin/users/del/user", (req,res) => { func.log("router object creating error - "+error); } }) -app.post("/admin/change_objs", (req,res) => { - try{let cook = req.cookies;func.sid(cook,res,()=>{func.logs_file(res);})} - catch (error) {func.log("router logs download error - "+error);} -}) - diff --git a/object.js b/object.js index 1a50bbd..d85c982 100644 --- a/object.js +++ b/object.js @@ -30,14 +30,14 @@ module.exports.new = (inp,cook,res)=>{ try { db.ggv("object_groups","name","id",`'${inp["gid"]}'`,(gname)=>{gname = gname[0] db.ggv("objects","name","gid",`'${inp["gid"]}' AND name = '${inp["name"]}/g/${gname["name"]}'`,(db_name)=>{ - if(db_name[0] != null){ - res.send({out:"bad",err:"name"}); - } - else if (db_name[0] == null){ - db.nr("objects","`name`,`img`,`height`,`width`,`description`,`gid`",`'${inp["name"]}/g/${gname["name"]}','${inp["img"]}','${inp["height"]}','${inp["width"]}','${inp["desc"]}','${inp["gid"]}'`,true); - db.sv("object_groups","count",`(count + 1)`,"id",inp["gid"],()=>{},true,true) - func.log(`admin object created name:${inp["name"]} group:${gname["name"]}`); - res.send({out:"good"}); + if(db_name[0] != null){ + res.send({out:"bad",err:"name"}); + } + else if (db_name[0] == null){ + db.nr("objects","`name`,`img`,`height`,`width`,`description`,`gid`",`'${inp["name"]}/g/${gname["name"]}','${inp["img"]}','${inp["height"]}','${inp["width"]}','${inp["desc"]}','${inp["gid"]}'`,true); + db.sv("object_groups","count",`(count + 1)`,"id",inp["gid"],()=>{},true,true) + func.log(`admin object created name:${inp["name"]} group:${gname["name"]}`); + res.send({out:"good"}); } // console.log(db_name); // db.ggv("objects","gid","name",`'${inp["name"]}'`,(db_name)=>{ @@ -49,6 +49,58 @@ module.exports.new = (inp,cook,res)=>{ } } +module.exports.save = (inp,cook,res)=>{ + try { + // let changed = []; + let changes = JSON.parse(inp["changes"]); + let taken_name = false; + Object.entries(changes).forEach(([key,value]) => { + // console.log(key,value); + // console.log( Object.keys(changes).pop()); + if(key == "name"){ + db.ggv("objects","id","name",`'${value}'`,(gname)=>{gname = gname[0] + if(gname == null){ + db.sv("objects",key,value,"id",inp["id"],()=>{ + chack_if_last(key) + },true); + } + else{ + taken_name = true; + // console.log(taken_name); + chack_if_last(key) + } + }) + } + else if (key != "name"){ + // console.log("not name"); + db.sv("objects",key,value,"id",inp["id"],()=>{ + chack_if_last(key) + },true); + // changed.push(key); + } + }); + function chack_if_last(key){ + if(key == Object.keys(changes).at(-1)){ + res.send({out:"good",name_err:taken_name}); + } + } + } catch (error) { + func.log("backend object creating error - "+error); + } +} +module.exports.del = (inp,cook,res)=>{ + try { + let name = inp["name"].split("/")[0]; + let group = inp["name"].split("/").at(-1); + db.dl("objects",`id`,`'${inp["id"]}' AND gid = '${inp["gid"]}'`,()=>{ + func.log(`admin group deleted ${name} from ${group}`); + res.send({out:"good"}); + },true); + } catch (error) { + func.log("backend single object loading err0r - "+error); + } +} + module.exports.load_groups = (inp,cook,res)=>{ try { db.gav("object_groups","0",(gdata)=>{ diff --git a/views/admin/objects/object_creation.ejs b/views/admin/objects/object_creation.ejs index 1dbc530..3e14080 100644 --- a/views/admin/objects/object_creation.ejs +++ b/views/admin/objects/object_creation.ejs @@ -21,7 +21,10 @@ } -