Commit Graph

13 Commits

Author SHA1 Message Date
6c2bb888b4 feat: 프로필 사진 업로드·프로필 페이지 + 모달/이름 개선
- 프로필 페이지 /u/:sabun 신설 (본인=비공개 포함, 타인=공개만).
  헤더 "내 프로필", 카드·모달·댓글 작성자 클릭 시 프로필로 이동.
- 프로필 사진 업로드: users.avatar(bytea) 저장, GET /avatar/:sabun
  (업로드본 없으면 identicon SVG 폴백), POST /profile/avatar(express.raw).
  브라우저 canvas 크롭(256px webp) — 서버 이미지 라이브러리/멀터 불필요.
  identicon 6개 렌더 지점을 avatar() 헬퍼로 통일.
- 상세 모달 폭 640→760px, 소유자 액션(비공개 전환·삭제)을 우측 그룹으로
  묶어 한 줄 정렬.
- 표시 이름을 한국식 성+이름(family_name+given_name)으로 교정.
- .project-env.example ADMIN_ROLE→ADMIN_GROUP 정리.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 15:45:47 +09:00
ac545651e6 refactor(tools): Harbor 관리자 전용 · Kubero SSO 표시 · SSO 배지 제거
Harbor 를 관리자 전용(adminOnly)으로 옮기고, Kubero 도 Keycloak SSO 로
로그인 가능하므로 sso 표시를 추가한다. 일반 사용자에게 보이는 도구가
모두 SSO 라 구분 의미가 사라진 SSO 배지(마크업·CSS)를 제거한다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 14:19:49 +09:00
76c82ed24e fix(ui): 푸터를 한 줄로 정리하고 이모지 제거
브랜드 · 버그 제보 안내 · 기술 스택을 한 줄에 배치하고(footer-left 그룹),
버그 제보 문구 끝의 🐛 이모지를 뺐다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 14:19:18 +09:00
da1653a8ea feat(projects): 설명 마크다운 렌더링 + 저장소 README 가져오기
등록 모달의 '한 줄 설명' input 을 여러 줄 textarea 로 바꾸고, 설명을
markdown-it 로 렌더링한다(html:false 로 raw HTML 이스케이프·javascript:
링크 차단 — XSS 안전). 상세 화면은 마크다운으로, 카드 미리보기는 기호를
걷어낸 순수 텍스트(mdPlain) + 3줄 클램프로 표시.

'저장소 README 가져오기' 버튼과 GET /api/readme 라우트를 추가해 repo_url
의 Gitea README 를 설명란으로 불러올 수 있다(gitea.js fetchReadme).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 14:18:27 +09:00
761b1a1936 fix(comments): 답글 배너 상시 표시 버그 수정 + 사번 대신 이름 표시
.reply-banner 에 display:flex 가 걸려 [hidden] 기본 규칙을 이겨 배너가
항상 보이던 문제를 .reply-banner[hidden]{display:none} 으로 해결.
댓글/대댓글 작성자·답글 대상·프로젝트 소유자를 사번 대신 이름(author_name/
owner_name)으로 표시하고, 사번은 title 툴팁으로 남긴다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 14:14:23 +09:00
0310700
3ddf920e56 feat(ui): 푸터에 버그 제보(Gitea 이슈) 링크 추가
대시보드 푸터에 '버그가 있다면 이슈에 제보바랍니다' 안내를 자체 줄로 작게 표시.
링크는 gitea playground/ai-dev-portal issues, 새 탭·rel=noopener.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 10:12:47 +09:00
0310700
1f76329140 fix(reactions): 좋아요·즐겨찾기 값을 카드·통계·모달에서 전역 동기화
같은 프로젝트가 피드 카드 버튼·내 프로젝트 통계 줄·상세 모달(template) 세 곳에
렌더되는데, 기존 syncReaction 은 라이브 data-react 버튼만 갱신해 통계 줄과
모달(inert template 스냅샷)이 옛 값으로 남아 서로 달라졌다.

- reactions.js: 프로젝트별 {on,count} 를 단일 store(Map)로 관리. 로드 시
  detailStore 템플릿에서 서버 원본값을 시드하고, 변경 시 그 값을 그리는 모든
  라이브 DOM(버튼·통계 줄·data-pop)을 자동으로 다시 칠함.
- modals.js: 모달 마운트 직후 applyReactions 로 현재 store 값을 덮어써
  템플릿 스냅샷의 옛 값 대신 최신 값을 표시.
- dashboard.ejs: 내 프로젝트 통계 숫자에 data-rcount/data-id/data-kind 바인딩 추가.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 10:12:38 +09:00
ebf9599199 feat(projects): 메인 언어 Gitea 자동 판별 + 수동 선택 폴백
- src/gitea.js: repo_url 파싱 + 언어 통계 API(fetchMainLang) 신규
- 등록 폼에 '메인 언어' 드롭다운 추가(기본 '자동 감지')
- 결정 순서: 드롭다운 → Gitea 자동감지 → 태그 추론 → 미표시
- langFromTags 기본값 TypeScript 제거(안 맞으면 미표시)
- GITEA_TOKEN(선택): 비공개 레포 자동감지용 스위치

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 15:56:00 +09:00
2b74b59f81 refactor(js): app.js 를 브라우저 네이티브 ESM 모듈로 분할
public/js/{util,ui,reactions,modals,comments,feed,main}.js 로 분리하고
dashboard/project 에서 <script type="module" src="/public/js/main.js"> 로 로드.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 17:53:46 +09:00
Hyemin Lee
42542a0912 feat(ui): 상세/공유 모달과 단독 상세·로그인 페이지
- _project_detail.ejs: 모달/단독 공용 상세(헤더·반응·바로가기·댓글 스레드·입력)
- dashboard: 상세 모달 오버레이 + 프로젝트별 template 저장소 + 새 프로젝트 등록 모달
- project.ejs(단독)·login.ejs 새 디자인으로 재작성

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 17:26:50 +09:00
Hyemin Lee
6549cc5870 feat(dashboard): 도구·내 프로젝트·공유 피드 3개 섹션 재구성
app.js DOM 계약(data-* 속성)에 맞춘 카드/배지/반응 버튼 렌더.
검색·정렬·필터·모달 오픈을 위한 data-search/created/pop/starred/vis 부여.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 17:12:52 +09:00
0310700
792b9b9c72 포털 사이트 링크에 SSO 자동로그인 적용 (Coder/Gitea OIDC 시작 URL + 뱃지)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 17:53:07 +09:00
0310700
9eb3fd1b4c AI DEV portal 초기 커밋
Express+EJS+Postgres 사내 개발 포털.
- Keycloak OIDC(사번 로그인), GitHub 감성 UI
- 사이트 모음 + 프로젝트 공유/코멘트/스타
- DB: OpenEverest appdb portal schema (portal_app role)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 16:16:40 +09:00