164 lines
5.8 KiB
Plaintext
164 lines
5.8 KiB
Plaintext
<%- include('./static/start.ejs',{name:'main',async: true}) %>
|
|
<%- include('./header.ejs') %>
|
|
<style>
|
|
.p_img{
|
|
/* pointer-events: none; */
|
|
height: 200px;
|
|
border-radius: 10px;
|
|
width: 290px;
|
|
box-shadow: 0px 4px 4px 0px #00000040;
|
|
cursor: pointer;
|
|
}
|
|
.proj, .new_proj{
|
|
border: 0px;
|
|
background-color: transparent;
|
|
}
|
|
.p_left{
|
|
display: block;
|
|
}
|
|
.p_left div{
|
|
font-size: calc(var(--main-font-size)/2);
|
|
}
|
|
.p_right{
|
|
display: flex;
|
|
margin-top:15px;
|
|
justify-content: space-between;
|
|
width: 130px;
|
|
}
|
|
.p_props{
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
.p_props img{
|
|
cursor: pointer;
|
|
}
|
|
.main h1{
|
|
/* font-size: --main-font-size; */
|
|
font-weight: 100;
|
|
margin: 0px;
|
|
padding: 0px;
|
|
margin-top: 10px;
|
|
}
|
|
</style>
|
|
<!-- <script src="/lib/interact.min.js"></script> -->
|
|
|
|
<section class="main">
|
|
<div id="projs_div">
|
|
<button onclick="new_proj()" class="new_proj"><img class="p_img" src="/img/new_proj.png" alt=""><h1>Новый проект</h1></button>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- <script src="/lib/inter.js"></script> -->
|
|
|
|
<script>
|
|
function load_projs(callback){
|
|
$.post( "/get_projs")
|
|
.done(function( res ) {
|
|
if(res["out"] == "good"){
|
|
// console.log(res["body"]);
|
|
callback(res["body"]);
|
|
}
|
|
});
|
|
}
|
|
function new_proj(objs = null){
|
|
let name = ask("Введите название проекта ",{func:(name)=>{
|
|
objs = (objs == null)? { height:"2",width:"4"}:objs;
|
|
if(name != null && name!= "" && name!=" " && typeof name != "undefined" && name!="undefined"){
|
|
$.post( "/save_proj", {proj:JSON.stringify(objs),name:name,img:"/img/proj_placeholder.webp"})
|
|
.done(function( res ) {
|
|
if(res["out"] == "good"){
|
|
goto(`/proj/load/${name}`);
|
|
}
|
|
else if(res["out"] == "bad" && res["err"] == "proj"){
|
|
msg("Проект уже существует")
|
|
}
|
|
})
|
|
}
|
|
}});
|
|
}
|
|
load_projs((projs)=>{
|
|
// console.log(projs);
|
|
if(projs.length == 0){
|
|
setTimeout(()=>{loaded()},500);
|
|
}
|
|
else{
|
|
projs.forEach(proj => {
|
|
// console.log(proj);
|
|
let div = document.getElementById("projs_div");
|
|
div.innerHTML += `<button id='proj_${proj["name"]}' proj_id='${proj["id"]}' class='proj'>
|
|
<img src='${proj["img"]}' alt='${proj["name"]}' class="p_img" onclick="goto('/proj/load/${proj["name"]}')">
|
|
<div class="p_props">
|
|
<div class="p_left" style="text-align:left">
|
|
<h1>${proj["name"]}</h1>
|
|
<div>${proj["creation_date"].split("T")[0]}</div>
|
|
</div>
|
|
<div class="p_right">
|
|
<img src="/img/icon/edit.svg" style="width:24px;height:24px" onclick="rename_proj('${proj["name"]}')">
|
|
<img src="/img/icon/copy.svg" style="width:24px;height:24px" onclick="copy_proj('${proj["name"]}')">
|
|
<img src="/img/icon/download.svg" style="width:24px;height:24px" onclick="downloadImg('${proj["img"]}','${proj["name"]}');msg('скачивание');">
|
|
<img src="/img/icon/trash.svg" style="width:24px;height:24px" onclick="del_proj('${proj["name"]}')">
|
|
</div>
|
|
</div>
|
|
</button>`;
|
|
setTimeout(()=>{loaded()},500);
|
|
});
|
|
}
|
|
});
|
|
|
|
function download_proj(id,name){
|
|
$.post( "/proj/download",{id:id})
|
|
.done(function( res ) {
|
|
downloadTextFile(res,`${name}.json`)
|
|
})
|
|
}
|
|
|
|
function del_proj(proj_name){
|
|
msg(`удалить проект ${proj_name}?`,{type:"ask",res:(out)=>{
|
|
if(out){
|
|
$.post( "/proj/delete",{name:proj_name})
|
|
.done(function( res ) {
|
|
if(res["out"] == "good"){
|
|
goto("/main")
|
|
}
|
|
})
|
|
}
|
|
}})
|
|
}
|
|
|
|
function copy_proj(proj){
|
|
$.post( "/load_proj",{name:proj})
|
|
.done(function( res ) {
|
|
if(res["out"] == "good"){
|
|
let name = ask("Введите название копии проекта ",{func:(name)=>{
|
|
if(name != null && name!= "" && name!=" " && typeof name != "undefined" && name!="undefined"){
|
|
$.post( "/save_proj", {proj:res["body"],name:name,img:"/img/proj_placeholder.webp"})
|
|
.done(function( res ) {
|
|
if(res["out"] == "good"){
|
|
goto(`/proj/load/${name}`);
|
|
}
|
|
else if(res["out"] == "bad" && res["err"] == "proj"){
|
|
msg("Проект уже существует")
|
|
}
|
|
})
|
|
}
|
|
}});
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
function rename_proj(name){
|
|
let cur_proj = document.getElementById(`proj_${name}`);
|
|
ask(`новое имя для проекта ${name}`,{func:(new_name)=>{
|
|
if(new_name != null){
|
|
$.post( "/proj/rename",{name:new_name,id:cur_proj.getAttribute("proj_id")})
|
|
.done(function( res ) {
|
|
if(res["out"] == "good"){
|
|
goto("/main");
|
|
}
|
|
})
|
|
}
|
|
}});
|
|
}
|
|
</script>
|
|
<%- include('./static/end.ejs',{soc:true}) %> |