modified: index.js

modified:   public/lib/inter_temp.js
	modified:   templates.js
	modified:   views/templates.ejs

    tamplates fixes
This commit is contained in:
n0rdye 2023-10-22 15:29:54 +00:00
parent cf9658c0cd
commit 1b63c0b917
4 changed files with 195 additions and 62 deletions

View File

@ -389,6 +389,22 @@ app.post("/admin/template/delete", (req,res) => {try{
},true,true) },true,true)
} catch (error) {route_err({req:req,error:error});} } catch (error) {route_err({req:req,error:error});}
}) })
app.post("/admin/template/group/new", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.new_group(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/template/group/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.del_group(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/template/loads", (req,res) => {try{ app.post("/template/loads", (req,res) => {try{
let inp = req.body; let inp = req.body;
let cook = req.cookies; let cook = req.cookies;

View File

@ -1,6 +1,6 @@
window.dragMoveListener = dragMoveListener; window.dragMoveListener = dragMoveListener;
let root = document.getElementById("drags"); let root = document.getElementById("drags");
let objs = { height:"2",width:"4",color:"#FFFFFF"}; let objs = { height:"2",width:"4",color:"#FFFFFF",total:0};
let objs_store = {}; let objs_store = {};
let proj_from = "cloud"; let proj_from = "cloud";
let cur_obj; let cur_obj;

View File

@ -50,6 +50,42 @@ module.exports.load_groups = (inp,cook,res)=>{
} }
} }
module.exports.new_group = (inp,cook,res)=>{
try {
db.gv("template_groups","name",`'${inp["name"]}'`,(gdata)=>{gdata = gdata[0]
if(gdata == null){
func.log(`admin ${cook["uuid"]} created template group ${inp["name"]}`);
db.nr("template_groups","`name`,`count`",`'${inp["name"]}','0'`,true);
res.send({out:"good"});
}
else{
res.send({out:"bad"});
}
})
} catch (error) {
func.log("backend template group creating err0r - "+error);
}
}
module.exports.del_group = (inp,cook,res)=>{
try {
db.gv("template_groups","name",`'${inp["name"]}'`,(pdata)=>{pdata=pdata[0]
// res.send({out:"good",body:pdata});
if(pdata != null){
db.dl("template_groups","id",pdata["id"],()=>{
res.send({out:"good"});
func.log(`good boy ${cook["uuid"]} deleted template group ${inp["name"]}`);
},true)
}
else{
res.send({out:"bad"});
}
})
} catch (error) {
func.log("backend template group delete err0r - " - error);
}
}
module.exports.rename = (inp,cook,res)=>{ module.exports.rename = (inp,cook,res)=>{
try { try {
db.gv("templates","`id`",`'${inp["id"]}'`,(proj_name)=>{ proj_name = proj_name[0]; db.gv("templates","`id`",`'${inp["id"]}'`,(proj_name)=>{ proj_name = proj_name[0];

View File

@ -62,8 +62,9 @@
} }
.temp_div{ .temp_div{
display: block; display: block;
padding: 1vw; padding-block: 3vh;
width: 15vw; padding-inline: 1vw;
width: 17vw;
} }
.temp_desc{ .temp_desc{
padding: 0.5vw; padding: 0.5vw;
@ -76,10 +77,12 @@
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
.admin_panel img{ .admin_panel img, .admin_panel_group img{
margin: 0.5vw; margin: 0.5vw;
width:24px; width:24px;
height:24px; height:24px;
z-index: 100;
position: relative;
} }
</style> </style>
<!-- <script src="/lib/interact.min.js"></script> --> <!-- <script src="/lib/interact.min.js"></script> -->
@ -106,37 +109,86 @@
$.post( "/template/group/loads") $.post( "/template/group/loads")
.done(function( res ) { .done(function( res ) {
console.log(res); console.log(res);
Object.values(res["body"]).forEach(group => { if(Object.values(res["body"]).length > 0){
let temp_group_div = document.createElement("div");
let temp_group_drop = document.createElement("div");
let temp_group_list = document.createElement("div");
let name = document.createElement("div");
let img = document.createElement("img");
temp_group_div.id = `temp_group_div-${group["id"]}`; Object.values(res["body"]).forEach(group => {
temp_group_drop.id = `temp_group_drop-${group["id"]}`; let temp_group_div = document.createElement("div");
temp_group_list.id = `temp_group_list-${group["id"]}`; let temp_group_drop = document.createElement("div");
let temp_group_list = document.createElement("div");
let name = document.createElement("div");
let img = document.createElement("img");
temp_group_div.classList.add(`temp_group_div`); temp_group_div.id = `temp_group_div-${group["id"]}`;
temp_group_drop.classList.add(`temp_group_drop`); temp_group_drop.id = `temp_group_drop-${group["id"]}`;
temp_group_list.classList.add(`temp_group_list`); temp_group_list.id = `temp_group_list-${group["id"]}`;
temp_group_drop.setAttribute("onclick", `temp_group_drop('${group["id"]}')`) temp_group_div.classList.add(`temp_group_div`);
temp_group_drop.classList.add(`temp_group_drop`);
temp_group_list.classList.add(`temp_group_list`);
img.style = "width: 1.5vw; height: 1.5vh; margin: auto;"; temp_group_drop.setAttribute("onclick", `temp_group_drop('${group["id"]}')`)
name.style = "text-align: center;";
name.innerText = group["name"];
img.src = "/img/drop.png";
temp_group_drop.append(name) img.style = "width: 1.5vw; height: 1.5vh; margin: auto;";
temp_group_drop.append(img) name.style = "text-align: center;";
name.innerText = group["name"];
img.src = "/img/drop.png";
if(globalThis._admin_){
let admin_div = document.createElement("div");
let edit_btn = document.createElement("img");
edit_btn.setAttribute("onclick",`rename_group(${group["name"]})");`)
edit_btn.src = "/img/icon/edit.svg"
admin_div.append(edit_btn)
let del_btn = document.createElement("img");
del_btn.setAttribute("onclick",`del_group("${group["name"]}")`)
del_btn.src = "/img/icon/del.png"
admin_div.append(del_btn)
admin_div.classList.add("admin_panel_group")
temp_group_div.append(admin_div)
temp_group_drop.style.marginTop = "-60px"
}
temp_group_div.append(temp_group_drop); temp_group_drop.append(name)
temp_group_div.append(temp_group_list); temp_group_drop.append(img)
document.getElementsByClassName("main")[0].append(temp_group_div);
}); temp_group_div.append(temp_group_drop);
}); temp_group_div.append(temp_group_list);
document.getElementsByClassName("main")[0].append(temp_group_div);
})
if(globalThis._admin_){
admin_btn_new()
}
}else{
if(globalThis._admin_){
admin_btn_new()
}
}
})
function admin_btn_new(){
let temp_group_div = document.createElement("div");
let temp_group_drop = document.createElement("div");
let name = document.createElement("div");
temp_group_div.classList.add(`temp_group_div`);
temp_group_drop.classList.add(`temp_group_drop`);
temp_group_drop.classList.add(`btn_blue`);
temp_group_drop.setAttribute("onclick", `new_group()`)
name.classList.add(`btn_blue`);
name.style = "text-align: center;";
name.innerText = 'Добавить новую группу шаблонов';
temp_group_drop.append(name)
temp_group_div.append(temp_group_drop);
document.getElementsByClassName("main")[0].append(temp_group_div);
}
} }
function groups_close(){ function groups_close(){
@ -198,35 +250,29 @@
temp_group_list.append(div) temp_group_list.append(div)
}); });
if(globalThis._admin_){ if(globalThis._admin_){
let div = document.createElement("div"); admin_btn_new()
let use_btn = document.createElement("button");
let name = document.createElement("div");
div.classList.add("temp_div")
div.innerHTML = `<img class="t_img" src="/img/new_proj.png" onclick='new_temp(null,${gid})'>`
name.innerText = "новый шаблон";
name.style.textAlign = "center";
div.append(name)
temp_group_list.append(div)
} }
} }
else{ else{
if(globalThis._admin_){ if(globalThis._admin_){
let div = document.createElement("div"); admin_btn_new()
let use_btn = document.createElement("button");
let name = document.createElement("div");
div.classList.add("temp_div")
div.innerHTML = `<img class="t_img" src="/img/new_proj.png" onclick='new_temp(null,${gid})'>`
name.innerText = "новый шаблон";
name.style.textAlign = "center";
div.append(name)
temp_group_list.append(div)
} }
} }
}) })
function admin_btn_new(){
let div = document.createElement("div");
let use_btn = document.createElement("button");
let name = document.createElement("div");
div.classList.add("temp_div")
div.innerHTML = `<img class="t_img" src="/img/new_proj.png" onclick='new_temp(null,${gid})'>`
name.innerText = "новый шаблон";
name.style.textAlign = "center";
div.append(name)
temp_group_list.append(div)
}
} }
@ -253,18 +299,20 @@
function new_temp(objs = null,gid){ function new_temp(objs = null,gid){
msg("название нового шаблона",{type:"enter",res:(out)=>{ msg("название нового шаблона",{type:"enter",res:(out)=>{
name = out; if(out){
objs = (objs == null)? { height:"2",width:"4"}:objs; name = out;
if(name != null && name!= "" && name!=" " && typeof name != "undefined" && name!="undefined"){ objs = (objs == null)? {height:"2",width:"4",color:"#FFFFFF",total:0}:objs;
$.post( "/template/save/", {proj:JSON.stringify(objs),name:name,img:"/img/placeholder.png",gid}) if(name != null && name!= "" && name!=" " && typeof name != "undefined" && name!="undefined"){
.done(function( res ) { $.post( "/template/save/", {proj:JSON.stringify(objs),name:name,img:"/img/placeholder.png",gid})
if(res["out"] == "good"){ .done(function( res ) {
goto(`/template/load/${out}`); if(res["out"] == "good"){
} goto(`/template/load/${out}`);
else if(res["out"] == "bad" && res["err"] == "proj"){ }
msg("Проект уже существует") else if(res["out"] == "bad" && res["err"] == "proj"){
} msg("Проект уже существует")
}) }
})
}
} }
}}) }})
} }
@ -281,4 +329,37 @@
} }
}}) }})
} }
function new_group(name){
msg("название новой группы шаблонов",{type:"enter",res:(out)=>{
if(out){
name = out;
if(name != null && name!= "" && name!=" " && typeof name != "undefined" && name!="undefined"){
$.post( "/admin/template/group/new", {name:name})
.done(function( res ) {
if(res["out"] == "good"){
goto(`/temp`);
}
else if(res["out"] == "bad"){
msg("группа уже существует")
}
})
}
}
}})
}
function del_group(name){
msg(`удалить группу шаблонов ${name}?`,{type:"ask",res:(out)=>{
if(out){
$.post( "/admin/template/group/delete",{name:name})
.done(function( res ) {
if(res["out"] == "good"){
goto("/temp")
}
})
}
}})
}
</script> </script>