This commit is contained in:
@@ -166,7 +166,10 @@
|
||||
|
||||
function bindGlobal() {
|
||||
renderAuth(getAuthUser());
|
||||
authReady = loadAuthUser().then(function (user) { renderAuth(user); return user; });
|
||||
authReady = loadAuthUser().catch(function (error) {
|
||||
console.error('[QA] SSO session load failed:', error);
|
||||
return getAuthUser();
|
||||
}).then(function (user) { renderAuth(user); return user; });
|
||||
const menuButton = qs('.menu-button');
|
||||
const nav = qs('.global-nav');
|
||||
if (menuButton && nav) {
|
||||
@@ -317,8 +320,10 @@
|
||||
}
|
||||
form.addEventListener('submit', async function (event) {
|
||||
event.preventDefault();
|
||||
console.info('[QA] feedback submit started');
|
||||
errorBox.style.display = 'none';
|
||||
const currentUser = await (authReady || Promise.resolve(getAuthUser()));
|
||||
console.info('[QA] SSO user resolved:', Boolean(currentUser), currentUser ? { hasRequesterId: Boolean(currentUser.requesterId), hasTenantId: Boolean(currentUser.requesterTenantId), hasPhone: Boolean(currentUser.phone) } : null);
|
||||
if (!currentUser) { errorBox.textContent = '로그인 후 문의를 등록할 수 있습니다.'; errorBox.style.display = 'block'; return; }
|
||||
if (!currentUser.requesterId || !currentUser.requesterTenantId) { errorBox.textContent = 'SSO에서 작성자 UUID와 테넌트 정보를 확인하지 못했습니다. 다시 로그인한 뒤 시도해주세요.'; errorBox.style.display = 'block'; return; }
|
||||
const title = qs('#title').value.trim();
|
||||
@@ -333,12 +338,15 @@
|
||||
try {
|
||||
const attachments = await uploadFiles(qs('#attachment').files, feedbackId, 'FEEDBACK_ATTACHMENT');
|
||||
const payload = buildFeedbackPayload(post, currentUser, feedbackId, attachments);
|
||||
console.info('[QA] sending feedback to Worker:', config.createFeedbackPath);
|
||||
const result = await postToApi(config.createFeedbackPath, payload);
|
||||
console.info('[QA] Worker feedback response:', result);
|
||||
post.id = result.id || post.id;
|
||||
savePost(post);
|
||||
showToast(result.local ? '테스트 글로 저장했습니다. UUID가 생성되었습니다.' : '문의가 등록되었습니다.');
|
||||
window.setTimeout(function () { window.location.href = 'detail.html?id=' + encodeURIComponent(post.id); }, 500);
|
||||
} catch (error) {
|
||||
console.error('[QA] feedback submit failed:', error);
|
||||
errorBox.textContent = error.message || '등록 중 오류가 발생했습니다.';
|
||||
errorBox.style.display = 'block';
|
||||
submitButton.disabled = false;
|
||||
|
||||
+1
-1
@@ -5,5 +5,5 @@
|
||||
<header class="site-header"><div class="header-inner"><a class="brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><nav class="global-nav" aria-label="주 메뉴"><a class="nav-item" href="#">바론 컨설턴트</a><a class="nav-item" href="#">디지털전환</a><div class="nav-item package"><a href="#">패키지 S/W</a><div class="mega-menu"><strong class="mega-label">EG-BIM</strong><div class="mega-links"><a href="#">소개</a><a href="#">인터페이스</a><a href="#">주요기능</a><a href="index.html" aria-current="page">Q&A</a><a href="#">for BIM</a><a href="#">구매하기</a></div></div></div><a class="nav-item" href="#">서비스 S/W</a><a class="nav-item" href="#">빅룸</a><a class="nav-item" href="#">D/X 체험</a><a class="nav-item" href="#">홍보센터</a></nav><div class="header-tools"><span class="locale"><a href="#">◎ KR</a><span>|</span><a href="#">EN</a></span><a class="login-link" href="https://test.baroncs.co.kr/"><span class="user-icon" aria-hidden="true"></span><span data-auth-name>로그인</span></a><button class="menu-button mobile-menu" type="button" aria-label="메뉴"><span></span><span></span><span></span></button></div></div></header>
|
||||
<main><section class="page-hero"><div class="hero-inner"><span class="hero-kicker">EG-BIM SUPPORT</span><h1>Q&A</h1><p>EG-BIM 관련 문의하기</p></div></section><nav class="sub-nav"><div class="sub-nav-inner"><a href="#">EG-BIM 소개</a><a href="#">주요기능</a><a href="#">사용가이드</a><a href="index.html" aria-current="page">문의하기(Q&A)</a></div></nav>
|
||||
<section class="page-shell" id="detail"><div class="section-heading"><div><h2>문의 상세</h2><p>문의 내용과 답변을 확인할 수 있습니다.</p></div><a class="button button-primary" href="write.html">문의 등록</a></div><article class="detail-card"><div class="detail-head"><div class="detail-title-line"><h2><span class="category" data-detail-category>문의</span> <span data-detail-title>문의 제목</span></h2><span class="status review" data-detail-status>문의접수</span></div><div class="detail-meta"><span data-detail-date>2026-09-17</span><span data-detail-author>작성자</span><span data-detail-company>회사</span><span data-detail-department>부서</span><span data-detail-secret hidden>🔒 비밀글</span></div></div><div class="detail-body" data-detail-content></div><div class="attachments"><h3>첨부파일</h3><span class="help-text">첨부된 파일이 없습니다.</span></div><div class="detail-actions"><a class="button button-outline" href="index.html">목록</a><a class="button button-outline" href="write.html">문의 등록</a></div></article><section class="comment-box"><h3>답변 <span id="commentCount">0</span></h3><div id="comments"></div></section><div class="form-footer"><button class="button button-outline" id="backButton" type="button">목록으로</button></div></section>
|
||||
</main><footer class="site-footer"><div class="footer-inner"><div><a class="brand footer-brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><p class="footer-copy">© BARON Consultants Co., Ltd. All Rights Reserved.</p></div><div class="footer-links"><a href="#">개인정보 처리방침</a><a href="#">이용약관</a></div></div></footer><script src="assets/config.js"></script><script src="app.js"></script>
|
||||
</main><footer class="site-footer"><div class="footer-inner"><div><a class="brand footer-brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><p class="footer-copy">© BARON Consultants Co., Ltd. All Rights Reserved.</p></div><div class="footer-links"><a href="#">개인정보 처리방침</a><a href="#">이용약관</a></div></div></footer><script src="assets/config.js?v=20260921-3"></script><script src="app.js?v=20260921-3"></script>
|
||||
</body></html>
|
||||
|
||||
+1
-1
@@ -36,6 +36,6 @@
|
||||
</main>
|
||||
<footer class="site-footer"><div class="footer-inner"><div><a class="brand footer-brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><p class="footer-copy">© BARON Consultants Co., Ltd. All Rights Reserved.</p></div><div class="footer-links"><a href="#">개인정보 처리방침</a><a href="#">이용약관</a><a href="https://test.baroncs.co.kr/">로그인</a></div></div></footer>
|
||||
<div id="toast" class="toast" role="status" aria-live="polite"></div>
|
||||
<script src="assets/config.js"></script><script src="app.js"></script>
|
||||
<script src="assets/config.js?v=20260921-3"></script><script src="app.js?v=20260921-3"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ export default {
|
||||
headers.set('etag', object.httpEtag);
|
||||
headers.set('x-content-type-options', 'nosniff');
|
||||
headers.set('referrer-policy', 'strict-origin-when-cross-origin');
|
||||
headers.set('cache-control', url.pathname.endsWith('.html') ? 'no-cache' : 'public, max-age=3600');
|
||||
headers.set('cache-control', url.pathname.endsWith('.html') || url.pathname.endsWith('.js') ? 'no-cache' : 'public, max-age=3600');
|
||||
return new Response(request.method === 'HEAD' ? null : object.body, { headers });
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
+1
-1
@@ -5,5 +5,5 @@
|
||||
<header class="site-header"><div class="header-inner"><a class="brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><nav class="global-nav" aria-label="주 메뉴"><a class="nav-item" href="#">바론 컨설턴트</a><a class="nav-item" href="#">디지털전환</a><div class="nav-item package"><a href="#">패키지 S/W</a><div class="mega-menu"><strong class="mega-label">EG-BIM</strong><div class="mega-links"><a href="#">소개</a><a href="#">인터페이스</a><a href="#">주요기능</a><a href="index.html">Q&A</a><a href="#">for BIM</a><a href="#">구매하기</a></div></div></div><a class="nav-item" href="#">서비스 S/W</a><a class="nav-item" href="#">빅룸</a><a class="nav-item" href="#">D/X 체험</a><a class="nav-item" href="#">홍보센터</a></nav><div class="header-tools"><span class="locale"><a href="#">◎ KR</a><span>|</span><a href="#">EN</a></span><a class="login-link" href="https://test.baroncs.co.kr/"><span class="user-icon" aria-hidden="true"></span><span data-auth-name>로그인</span></a><button class="menu-button mobile-menu" type="button" aria-label="메뉴"><span></span><span></span><span></span></button></div></div></header>
|
||||
<main><section class="page-hero"><div class="hero-inner"><span class="hero-kicker">EG-BIM SUPPORT</span><h1>Q&A</h1><p>EG-BIM 관련 문의하기</p></div></section><nav class="sub-nav"><div class="sub-nav-inner"><a href="#">EG-BIM 소개</a><a href="#">주요기능</a><a href="#">사용가이드</a><a href="index.html" aria-current="page">문의하기(Q&A)</a></div></nav>
|
||||
<section class="page-shell"><div class="section-heading"><div><h2>문의 등록</h2><p>로그인한 사용자 정보로 문의가 등록됩니다.</p></div></div><div class="form-notice" data-auth-state>로그인 상태를 확인하고 있습니다.</div><div class="form-error" id="formError" role="alert"></div><form id="qaForm" novalidate><div class="form-card" id="writeFields"><div class="form-row"><label class="form-label" for="category">구분 <span class="required">*</span></label><div class="form-control"><select class="select" id="category" required><option value="">선택해주세요</option><option>오류문의</option><option>개선문의</option><option>일반문의</option></select></div></div><div class="form-row"><label class="form-label" for="title">제목 <span class="required">*</span></label><div class="form-control"><input class="input" id="title" type="text" maxlength="100" placeholder="문의 제목을 입력해주세요" required></div></div><div class="form-row"><span class="form-label">공개 설정</span><div class="form-control"><label class="check"><input id="secret" type="checkbox"> 비밀글로 등록</label></div></div><div class="form-row"><label class="form-label" for="content">내용 <span class="required">*</span></label><div class="form-control column"><textarea class="textarea" id="content" placeholder="문의 내용을 작성해주세요" required></textarea><span class="help-text">개인정보, 비밀번호, 인증번호 등 민감한 정보는 입력하지 마세요.</span></div></div><div class="form-row"><label class="form-label" for="attachment">첨부파일</label><div class="form-control column"><input class="file-input" id="attachment" type="file" multiple><span class="help-text">파일은 presigned URL을 통해 qa_cdn 버킷에 저장됩니다. 파일당 최대 30MB</span></div></div></div><div class="form-footer"><a class="button button-outline" href="index.html">취소</a><button class="button button-primary" id="submitButton" type="submit">문의 등록</button></div></form></section>
|
||||
</main><footer class="site-footer"><div class="footer-inner"><div><a class="brand footer-brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><p class="footer-copy">© BARON Consultants Co., Ltd. All Rights Reserved.</p></div><div class="footer-links"><a href="#">개인정보 처리방침</a><a href="#">이용약관</a></div></div></footer><div id="toast" class="toast" role="status" aria-live="polite"></div><script src="assets/config.js"></script><script src="app.js"></script>
|
||||
</main><footer class="site-footer"><div class="footer-inner"><div><a class="brand footer-brand" href="index.html"><span class="brand-mark">BR</span><span>(주)바론컨설턴트</span></a><p class="footer-copy">© BARON Consultants Co., Ltd. All Rights Reserved.</p></div><div class="footer-links"><a href="#">개인정보 처리방침</a><a href="#">이용약관</a></div></div></footer><div id="toast" class="toast" role="status" aria-live="polite"></div><script src="assets/config.js?v=20260921-3"></script><script src="app.js?v=20260921-3"></script>
|
||||
</body></html>
|
||||
|
||||
Reference in New Issue
Block a user