폴더단위 권한 제어 기능 추가

This commit is contained in:
koj729
2026-06-15 13:51:06 +09:00
parent 4e33c9a02a
commit d13c414d7f
15 changed files with 1324 additions and 129 deletions

View File

@@ -12,7 +12,7 @@ import {
} from './common.js';
import { toggleModal } from './modalManager.js'
import { showNotification, toggleContextmenu, toggleContextFocusBox } from './eventManager.js'
import { renderMemo, resetViewer } from './pageRenderer.js'
import { renderMemo, resetViewer, preparePageRendering } from './pageRenderer.js'
let listContainer = document.querySelector('.archive-main-center .list-container');
@@ -476,8 +476,33 @@ export async function createFolder(inputWrap, resourcePath, folderType) {
let createFolderRes = await axios.post(`${vars.path_name}/createFolder`, { params: createFolderParams });
if (createFolderRes.data.message == 'createFolder_success') {
console.log(createFolderRes.data.message);
// console.log(res.data.folderPath);
// console.log(res.data);
// 폴더 생성 성공 시 로컬 브라우저 화면 즉시 갱신 (소켓 지연/연결끊김 대비)
let userCurPath = (vars.users && vars.socket && vars.users[vars.socket.id]?.curPath) || JSON.parse(vars.userInfoString).curPath || '';
let extractedPath = extractPathByLength(userCurPath, 1);
// 1. 헤더 버튼 갱신
await preparePageRendering({
scope: 'headerBtn',
from: 'createFolder - local',
resourcePath: userCurPath,
pushState: false
});
// 2. 트리 갱신
await preparePageRendering({
scope: 'tree',
resourcePath: extractedPath,
userCurPath: userCurPath,
pushState: false
});
// 3. 리스트 갱신
await preparePageRendering({
scope: 'list',
resourcePath: userCurPath,
pushState: false
});
}
}
}

View File

@@ -43,6 +43,18 @@ const socket = io();
//// 소켓은 하나만...
vars.socket = socket;
function getMyCurPath() {
if (vars.users && vars.users[socket.id] && vars.users[socket.id].curPath) {
return vars.users[socket.id].curPath;
}
if (vars.userInfoString) {
try {
return JSON.parse(vars.userInfoString).curPath || '';
} catch (e) {}
}
return '';
}
//// 접속자 정보 가져오기
export function getUsers() {
vars.socket.emit('getUsers');
@@ -536,8 +548,7 @@ socket.on('createFolder_success', async (resultData) => {
renderLog();
let userCurPath;
if (vars.users[socket.id] && vars.users[socket.id].curPath) userCurPath = vars.users[socket.id].curPath;
let userCurPath = getMyCurPath();
let extractedPath = extractPathByLength(userCurPath, 1);
// let resourcePath = resultData.resourcePath;
@@ -578,6 +589,21 @@ socket.on('createFolder_success', async (resultData) => {
let mainTreeItem = document.querySelector(`.archive-main-left .tree-container .tree-wrap .tree-item-wrap[data-resource-path="${vars.lastMainTreeItem.dataset.resourcePath}"]`)
if (mainTreeItem) changeTreeItemStyle(mainTreeItem);
}
// 폴더 생성 시 중앙 리스트 영역(list) 즉시 갱신 추가
let pageRanderingOptionList = {
scope: 'list',
resourcePath: userCurPath,
pushState: false,
debug: '폴더생성완료 - list'
}
await preparePageRendering(pageRanderingOptionList);
if (vars.lastListItem) {
let lastListItemPath = vars.lastListItem.dataset.resourcePath;
let listItem = document.querySelector(`.archive-main-center .list-container .list-body .list-item[data-resource-path="${lastListItemPath}"]`);
if (listItem) changeListItemStyle(listItem);
}
}
})