From f51e96d4dddacf442caddb39733f660dcfd725ea Mon Sep 17 00:00:00 2001 From: N0rdye Date: Tue, 3 Oct 2023 23:37:21 +0500 Subject: [PATCH] objects image edit fix --- public/lib/fn.js | 16 +++++++++++++++- views/admin/objects/object_creation.ejs | 3 ++- views/admin/objects/object_edit.ejs | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/public/lib/fn.js b/public/lib/fn.js index 8119b5f..1257f80 100644 --- a/public/lib/fn.js +++ b/public/lib/fn.js @@ -316,8 +316,22 @@ async function removeImageBackground(image) { }) .catch(console.error); } - + function getBase64Image(img_url) { + img = new Image(); + img.src = img_url; + let canvas = document.createElement("canvas"); + canvas.width = img.width; + canvas.height = img.height; + + let ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + + let dataURL = canvas.toDataURL("image/png"); + + return dataURL; + // return dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); +} function img_cache(callback){ function preloadImages(array,callback) { diff --git a/views/admin/objects/object_creation.ejs b/views/admin/objects/object_creation.ejs index 6fa8d11..d2b4a39 100644 --- a/views/admin/objects/object_creation.ejs +++ b/views/admin/objects/object_creation.ejs @@ -165,7 +165,7 @@ name_div.value = name; img_file.value = null; - img_prev.src = img; + img_prev.src = getBase64Image(img); img_prev.style.height = `${height* cm_mult}px`; img_prev.style.width = `${width* cm_mult}px`; cost_text.value = cost; @@ -238,6 +238,7 @@ msg("товар добавлен"); setTimeout(()=>{ edit_get_objs(); + set_obj_edit_params(); },500) } }); diff --git a/views/admin/objects/object_edit.ejs b/views/admin/objects/object_edit.ejs index 9dd781c..5e1f3fe 100644 --- a/views/admin/objects/object_edit.ejs +++ b/views/admin/objects/object_edit.ejs @@ -86,7 +86,7 @@ function obj_del(id){ // let select = document.getElementById("group_select"); let menu = document.getElementById(`object_${id}`); - msg(`вы точно хотите удалить ${menu.getAttribute("name").split("~")[0]}?`,{type:"ask",res:(out)=>{if(res){ + msg(`вы точно хотите удалить ${menu.getAttribute("name").split("~")[0]}?`,{type:"ask",res:(out)=>{if(out){ let wait_msg = msg("удаление товара",{type:"wait"}); $.post( "/admin/objects/delete", { id:id,}) .done(function( res ) {