fixed object load

This commit is contained in:
N0rdye 2023-07-01 23:16:45 +05:00
parent 997dc5466d
commit af8e44d1ce
6 changed files with 230 additions and 11 deletions

209
back_users.sql Normal file
View File

@ -0,0 +1,209 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Хост: db
-- Время создания: Июл 01 2023 г., 08:40
-- Версия сервера: 8.0.33
-- Версия PHP: 8.1.19
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- База данных: `users`
--
CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'user';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'user'@'%' WITH GRANT OPTION;
-- CREATE DATABASE IF NOT EXISTS `users` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
-- USE `users`;
-- --------------------------------------------------------
--
-- Структура таблицы `admins`
--
CREATE TABLE `admins` (
`id` int NOT NULL,
`login` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`uid` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Дамп данных таблицы `admins`
--
INSERT INTO `admins` (`id`, `login`, `uid`) VALUES
(18, 'admin', 34);
-- --------------------------------------------------------
--
-- Структура таблицы `objects`
--
CREATE TABLE `objects` (
`id` int NOT NULL,
`name` text NOT NULL,
`img` text NOT NULL,
`height` smallint NOT NULL,
`width` smallint NOT NULL,
`description` mediumtext NOT NULL,
`gid` int NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Структура таблицы `projects`
--
CREATE TABLE `projects` (
`id` int NOT NULL,
`name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`uid` int NOT NULL,
`body` json NOT NULL,
`img` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Структура таблицы `sids`
--
CREATE TABLE `sids` (
`id` int NOT NULL,
`sid` text NOT NULL,
`uid` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Структура таблицы `users`
--
CREATE TABLE `users` (
`id` int NOT NULL,
`login` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`pass` varchar(1000) NOT NULL,
`admin` int DEFAULT '0',
`uuid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Дамп данных таблицы `users`
--
INSERT INTO `users` (`id`, `login`, `pass`, `admin`, `uuid`) VALUES
(34, 'admin', 'admin', 1, '7a910a34-8b80-4a60-8445-2400920be5d3%admin%%4a576825-deea-403d-bf0b-46bb98bb80fd#621');
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `admins`
--
ALTER TABLE `admins`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `uid` (`uid`) USING BTREE;
--
-- Индексы таблицы `objects`
--
ALTER TABLE `objects`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `projects`
--
ALTER TABLE `projects`
ADD PRIMARY KEY (`id`),
ADD KEY `uid` (`uid`);
--
-- Индексы таблицы `sids`
--
ALTER TABLE `sids`
ADD PRIMARY KEY (`id`),
ADD KEY `uid` (`uid`);
--
-- Индексы таблицы `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `admins`
--
ALTER TABLE `admins`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;
--
-- AUTO_INCREMENT для таблицы `objects`
--
ALTER TABLE `objects`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;
--
-- AUTO_INCREMENT для таблицы `projects`
--
ALTER TABLE `projects`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27;
--
-- AUTO_INCREMENT для таблицы `sids`
--
ALTER TABLE `sids`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=72;
--
-- AUTO_INCREMENT для таблицы `users`
--
ALTER TABLE `users`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=35;
--
-- Ограничения внешнего ключа сохраненных таблиц
--
--
-- Ограничения внешнего ключа таблицы `admins`
--
ALTER TABLE `admins`
ADD CONSTRAINT `admins_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
--
-- Ограничения внешнего ключа таблицы `projects`
--
ALTER TABLE `projects`
ADD CONSTRAINT `projects_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
--
-- Ограничения внешнего ключа таблицы `sids`
--
ALTER TABLE `sids`
ADD CONSTRAINT `sids_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -20,7 +20,7 @@ const app = express();
// const { mainModule } = require('process');
// const { name } = require('ejs');
const maxRequestBodySize = '10mb';
const maxRequestBodySize = '50mb';
app.set('view engine', 'ejs');
app.use(express.urlencoded({
extended: false,
@ -296,6 +296,11 @@ app.post("/get_objs", (req,res) => {
if(cook['sid'] != null && cook['uuid'] != null){
db.gv("objects","gid",0,(odata)=>{
// console.log(odata);
// Object.keys(odata).forEach(([key,value]) => {
// });
odata.forEach(element => {
delete element["img"]
});
res.send({out:"good",body:odata});
})
}

View File

@ -25,7 +25,7 @@ function create(clas,x,y,body,id){
goto("/proj/"+proj_name);
});
}
else{
else if (db_data != null){
obj.src = db_data["img"];
obj.title = `${db_data["name"]} \n ${db_data["description"]}`;
}
@ -107,7 +107,7 @@ function save(callback){
html2canvas(document.querySelector("body"),{height: 500, width:(window.innerWidth /1.65),x:(window.innerWidth / 5), y:250}).then(canvas => {
let scr = "";
console.log(canvas.toDataURL().length);
if (canvas.toDataURL().length < 80000) scr = canvas.toDataURL()
if (canvas.toDataURL().length < 100000) scr = canvas.toDataURL()
// console.log(scr);
$.post( "/save_proj", {proj:JSON.stringify(objs),name:proj_name,img:scr})
.done(function( res ) {

View File

@ -13,7 +13,7 @@
<h1>hello admin</h1>
<div class="nobj">
<div class="img_preview">
<label for="img_file">max size 1mb</label><br>
<label for="img_file">max size 2mb</label><br>
<input type="file" id="img_file" onchange="previewFile()" accept="image/*" value="" maxlength="1"><br>
<img src="" height="100" alt="Image preview...">
</div>
@ -61,8 +61,8 @@
var img = document.querySelector('img').src;
name = name.replace(" ","_");
if (img != "http://n0rsrv2:3002/admin"){
new_obj(name,img,0,0,description,(res)=>{
document.getElementById("obj_resp").innerHTML = "creating object";
new_obj(name,img,0,0,description,(res)=>{
if(res["out"] == "bad" && res["err"] == "name"){
document.getElementById("obj_resp").innerHTML = "object already exist";
}

View File

@ -109,7 +109,7 @@
</div>
<section class="main">
<div id="proj_top">
<button id="proj_save_btn" onclick="save((res)=>{document.getElementById('proj_save_btn').innerHTML='saved';setTimeout((res)=>{document.getElementById('proj_save_btn').innerHTML='save'},3000)})">save</button>
<button id="proj_save_btn" onclick="document.getElementById('proj_save_btn').innerHTML='saving';save((res)=>{document.getElementById('proj_save_btn').innerHTML='saved';setTimeout((res)=>{document.getElementById('proj_save_btn').innerHTML='save'},3000)})">save</button>
<input id="proj_name"></input>
</div>
</section>
@ -182,6 +182,7 @@
czone.classList.add("createzone");
czones.append(czone)
});
load_proj();
})
</script>
<script>
@ -189,6 +190,5 @@
// console.log(proj_name);
document.getElementById("proj_name").value = proj_name;
// drag_start();
load_proj();
</script>
<%- include('./static/end.ejs') %>

View File

@ -15,10 +15,15 @@
<form action="" method="get" onsubmit="return false;" id="reg_form">
<h1>user registration</h1>
<section class="main_sec">
<input type="text" id="login" name="login">
<input type="password" id="pass" name="pass">
<input type="checkbox" name="admin" value='false' id="admin_check">
<div>
<input type="text" id="login" name="login" placeholder="login">
<input type="password" id="pass" name="pass" placeholder="password">
<button onclick='reg();'>reg</button>
</div>
<div>
<label for="admin_check">admin</label>
<input type="checkbox" name="admin" value='false' id="admin_check">
</div>
<div id="reg_response"></div>
</section>
<script>