From 88b6403cedd9b07e48c03c38ef91765ded57a7a8 Mon Sep 17 00:00:00 2001
From: N0rdye <dev@n0r.su>
Date: Fri, 6 Oct 2023 17:58:09 +0500
Subject: [PATCH] admin 404 img, message "enter" timeout, admin object load

added admin object image on error;
changed admin object loading to every object
---
 views/admin/objects/object_creation.ejs |  1 +
 views/admin/objects/object_edit.ejs     | 47 ++++++++++++++-----------
 views/message.ejs                       |  2 +-
 3 files changed, 29 insertions(+), 21 deletions(-)

diff --git a/views/admin/objects/object_creation.ejs b/views/admin/objects/object_creation.ejs
index fc53b35..49809a1 100644
--- a/views/admin/objects/object_creation.ejs
+++ b/views/admin/objects/object_creation.ejs
@@ -165,6 +165,7 @@
         name_div.value = name;
         img_file.value = null;
         img_prev.src = img;
+        img_prev.setAttribute("onerror",`msg('Изображение объекта "${name}" не найдено')`);
         img_prev.setAttribute("img_static",img);
         img_prev.style.height = `${height* cm_mult}px`;
         img_prev.style.width = `${width* cm_mult}px`;
diff --git a/views/admin/objects/object_edit.ejs b/views/admin/objects/object_edit.ejs
index c96ab8e..7dc800c 100644
--- a/views/admin/objects/object_edit.ejs
+++ b/views/admin/objects/object_edit.ejs
@@ -48,7 +48,7 @@
 <div style="display: flex;justify-content: space-between;padding-block: 1vw;">
     <h1>Изменение объектов</h1> 
     <div id="find_obj_btns">
-        <button onclick="edit_get_objs(true)" class="btn_blue">Найти по имени</button>
+        <button onclick="edit_get_objs(true)" class="btn_blue">Найти по названию</button>
         <button onclick='gids = [];edit_get_objs();' class="btn_blue">Сбосить</button>
     </div>
 </div>
@@ -77,16 +77,23 @@
         });
     }
 
-    function edit_get_objs(by_name = false){
+    function edit_get_objs(by_name = false,callback){
         document.getElementById("objs_in_group").innerHTML = "";
         if (obj_edit_type == "edit") set_obj_edit_params();
         edit_load_objs((data)=>{
+            let wait_msg = msg("Загрузка объектов",{type:"wait"})
             data.forEach(value => {
                 // console.log(value);
                 // // console.log($.cookie("cache"));
                 edit_load_obj(value["name"],"`img`",(odata)=>{
                     make_obj(odata["img"],value,"objs_in_group");
-                })           
+                    if(data.at(-1)["id"] == value["id"]){
+                        msg_del(wait_msg.id);
+                        msg("Объекты загружены")
+                        if(callback)callback(true);
+                    }
+                })       
+                
             });
         },by_name)
     }
@@ -94,12 +101,12 @@
     function gids_change(){
         if (typeof gids[0] == 'undefined'){
             gids = []
-            edit_get_objs();
+            // edit_get_objs();
         }
         else{
             let last = gids.at(-1)
             gids = [last];
-            edit_get_objs();
+            // edit_get_objs();
         }
         hide_menus();
         
@@ -179,7 +186,6 @@
                         else{
                             msg("товар сохранён");
                             set_obj_edit_params();
-                            edit_get_objs();
                         }
                     }
                 });
@@ -200,18 +206,16 @@
     function edit_load_objs(callback,by_name = false){
         // let select = document.getElementById("group_select");
         if(!by_name){
-            gids.forEach(gid => {
-                $.post( "/get_objs",{gid:gid})
-                .done(function( res ) {
-                    if(res["out"] == "good"){
-                        // console.log(res["body"]);
-                        // res["body"].forEach(object => {
-                        //     // objs_store[`${element["name"]}`] = {description:element["description"],height:element["height"],width:element["width"],id:element["id"],name:element["name"]}
-                        //     let obj_main = document.createElement("div");
-                        // });
-                        callback(res["body"]);
-                    }
-                });
+            $.post( "/get_objs")
+            .done(function( res ) {
+                if(res["out"] == "good"){
+                    // console.log(res["body"]);
+                    // res["body"].forEach(object => {
+                    //     // objs_store[`${element["name"]}`] = {description:element["description"],height:element["height"],width:element["width"],id:element["id"],name:element["name"]}
+                    //     let obj_main = document.createElement("div");
+                    // });
+                    callback(res["body"]);
+                }
             });
         }
         else{
@@ -281,8 +285,8 @@
                 edit : "Радактировать"
             }
 
-            var load_img = new Image();
-            load_img.src = img;
+            // var load_img = new Image();
+            // load_img.src = img;
 
 
             obj.innerHTML = 
@@ -311,4 +315,7 @@
 
             // console.log("obj");
         }              
+
+
+    edit_get_objs();
 </script>
\ No newline at end of file
diff --git a/views/message.ejs b/views/message.ejs
index bc68542..6dc5a58 100644
--- a/views/message.ejs
+++ b/views/message.ejs
@@ -284,7 +284,7 @@
                 }
             } 
         }
-        else if(params.type != "wait" && params.type != "ask" && params.type != "date"){
+        else if(params.type != "wait" && params.type != "ask" && params.type != "date" && params.type != "enter"){
             msg_div.setAttribute("onclick",`msg_del("msg_${msg_int}")`);
             setTimeout(()=>{
                 if (document.getElementById(msg_div.id) != null){