0710 sync
This commit is contained in:
parent
3271e678e2
commit
490553c411
|
@ -1,8 +1,8 @@
|
||||||
총 47개
|
총 53개
|
||||||
처리완료 24개
|
처리완료 29개
|
||||||
UI 3개
|
UI 5개
|
||||||
진행중 16
|
진행중 11
|
||||||
논의 필요 6
|
논의 필요 7
|
||||||
|
|
||||||
35번
|
35번
|
||||||
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
||||||
|
@ -18,30 +18,73 @@
|
||||||
-> 그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
-> 그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
||||||
|
|
||||||
오늘
|
오늘
|
||||||
131번, 134번
|
개선사항
|
||||||
-> 그룹 오픈 유지 및 정렬 유지
|
|
||||||
|
이슈
|
||||||
|
165번
|
||||||
|
체크/체크해제 동작 느림
|
||||||
|
167번
|
||||||
|
새로고침 시 프레즌스 기능 사라짐
|
||||||
작업 목록
|
작업 목록
|
||||||
|
이슈
|
||||||
|
131번, 134번 개선사항 1번 중복
|
||||||
|
-> 그룹 오픈 유지 및 정렬 유지
|
||||||
39번
|
39번
|
||||||
화면 이동될 때 이전 화면 이미지 보임
|
화면 이동될 때 이전 화면 이미지 보임
|
||||||
6번
|
6번
|
||||||
검색기록, 자동완성 기능 문의건
|
검색기록, 자동완성 기능 문의건
|
||||||
|
103번
|
||||||
|
검색목록 200개까지만 노출됨
|
||||||
136번
|
136번
|
||||||
-> 조직도 프레즌스 오류
|
-> 조직도 프레즌스 오류
|
||||||
119번
|
119번
|
||||||
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||||
137번
|
137번
|
||||||
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||||
138번
|
166번
|
||||||
조직도 회사 변경 후 검색어 지울 시 회사 유지되지 않음
|
사용자 검색 목록 색상 오류 (UI)
|
||||||
|
174번
|
||||||
|
간헐적으로 빈 말풍선 노출됨
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
3번 프레즌스 아이콘을 현재보다 크게 변경(UI)
|
||||||
|
4번 그룹이름바꾸기 팝업창(UI)
|
||||||
|
11번 조직 인원 리스트에서 조직 인원 위에 마우스 오버시 연계 기능 아이콘 보이도록 변경
|
||||||
|
12번 조직 인원 선택한 창에서 선택 취소를 할 수 있는 X버튼 추가
|
||||||
|
|
||||||
|
완료
|
||||||
|
개선사항
|
||||||
|
2번 그룹 멤버관리 메뉴 화면 및 기능을 새로운 기획에 맞추어서 변경
|
||||||
|
수정사항ppt 5,6
|
||||||
|
5번 그룹이름바꾸기 엔터키 누르면 적용되도록 변경
|
||||||
|
13번 대화방에서 상대방 프로필 사진 클릭 시 상대방 프로필이 팝업되도록 변경
|
||||||
|
14번 조직도에서 상대방 프로필 사진 클릭 시 상대방 프로필이 팝업되도록 변경
|
||||||
|
이슈
|
||||||
148번
|
148번
|
||||||
프로필 사진 영역 선택 시 프로필 화면 진입되지 않음
|
프로필 사진 영역 선택 시 프로필 화면 진입되지 않음
|
||||||
164번
|
164번
|
||||||
그룹 목록에서 체크 시 조직도 목록에서 체크되지 않음
|
그룹 목록에서 체크 시 조직도 목록에서 체크되지 않음
|
||||||
165번
|
138번
|
||||||
체크/체크해제 동작 느림
|
조직도 회사 변경 후 검색어 지울 시 회사 유지되지 않음
|
||||||
166번
|
|
||||||
사용자 검색 목록 색상 오류 (UI)
|
세션저장
|
||||||
167번
|
[{인덱스, 그룹 seq, opened}, {}]
|
||||||
새로고침 시 프레즌스 기능 사라짐
|
그룹 초기화
|
||||||
174번
|
인덱스 데이터 있는 경우
|
||||||
간헐적으로 빈 말풍선 노출됨
|
조회후 expansion component 호출
|
||||||
|
없는 경우
|
||||||
|
인덱스 데이터 생성 후 세션에 저장
|
||||||
|
그룹 추가
|
||||||
|
인덱스 정보 갱신
|
||||||
|
그룹 삭제
|
||||||
|
인덱스 정보 갱신
|
||||||
|
그룹 수정
|
||||||
|
인덱스 정보 갱신
|
||||||
|
|
||||||
|
expand component
|
||||||
|
expand(expandInfo[])
|
||||||
|
refreshNode()
|
||||||
|
인덱스 정보가 있는 경우
|
||||||
|
expand()
|
||||||
|
없는 경우
|
||||||
|
header click emit
|
86
documents/업무/7월/2째주/0707.txt
Normal file
86
documents/업무/7월/2째주/0707.txt
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
총 52개
|
||||||
|
처리완료 30개
|
||||||
|
UI 5개
|
||||||
|
진행중 11
|
||||||
|
논의 필요 7
|
||||||
|
|
||||||
|
35번
|
||||||
|
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
||||||
|
19번
|
||||||
|
그룹 선택화면에 검색칸 노출됨
|
||||||
|
80번
|
||||||
|
북마크 날짜 미표기 (날짜로 표기 되거나 날짜도 같이 표기되게 수정)(UI)
|
||||||
|
86번
|
||||||
|
멤버 추가 팝업크기 다른 팝업에 비해 큼 (UI)
|
||||||
|
120번
|
||||||
|
그룹명 입력하지 않고 사용자 체크 후 완료 시 팝업 미발생
|
||||||
|
135번
|
||||||
|
-> 그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
||||||
|
|
||||||
|
오늘
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
|
||||||
|
이슈
|
||||||
|
|
||||||
|
167번
|
||||||
|
새로고침 시 프레즌스 기능 사라짐
|
||||||
|
작업 목록
|
||||||
|
이슈
|
||||||
|
131번, 134번 개선사항 1번 중복
|
||||||
|
-> 그룹 오픈 유지 및 정렬 유지
|
||||||
|
39번
|
||||||
|
화면 이동될 때 이전 화면 이미지 보임
|
||||||
|
6번
|
||||||
|
검색기록, 자동완성 기능 문의건
|
||||||
|
103번
|
||||||
|
검색목록 200개까지만 노출됨
|
||||||
|
136번
|
||||||
|
-> 조직도 프레즌스 오류
|
||||||
|
119번
|
||||||
|
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||||
|
137번
|
||||||
|
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||||
|
166번
|
||||||
|
사용자 검색 목록 색상 오류 (UI)
|
||||||
|
174번
|
||||||
|
간헐적으로 빈 말풍선 노출됨
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
3번 프레즌스 아이콘을 현재보다 크게 변경(UI)
|
||||||
|
4번 그룹이름바꾸기 팝업창(UI)
|
||||||
|
11번 조직 인원 리스트에서 조직 인원 위에 마우스 오버시 연계 기능 아이콘 보이도록 변경
|
||||||
|
|
||||||
|
완료
|
||||||
|
개선사항
|
||||||
|
그룹복사, 그룹이동 그룹 메뉴 수정 및 소스 적용
|
||||||
|
그룹 멤버 관리 팝업 출력 시 선택한 그룹 헤더
|
||||||
|
이슈
|
||||||
|
165번
|
||||||
|
체크/체크해제 동작 느림
|
||||||
|
|
||||||
|
선행작업
|
||||||
|
다이얼로그 expansion
|
||||||
|
checkbox
|
||||||
|
|
||||||
|
디폴트 expansion
|
||||||
|
|
||||||
|
세션저장
|
||||||
|
[{인덱스, 그룹 seq, opened}, {}]
|
||||||
|
헤더 클릭
|
||||||
|
인덱스 정보 갱신
|
||||||
|
|
||||||
|
초기화
|
||||||
|
인덱스 데이터 있는 경우
|
||||||
|
expansion expand() 호출
|
||||||
|
없는 경우
|
||||||
|
인덱스 데이터 생성 후 세션에 저장
|
||||||
|
그룹 추가
|
||||||
|
그룹 삭제
|
||||||
|
그룹 수정
|
||||||
|
동료 추가
|
||||||
|
동료 삭제
|
||||||
|
즐겨찾기 추가
|
||||||
|
즐겨찾기 삭제
|
||||||
|
인덱스 정보 갱신
|
||||||
|
expansion expand() 호출
|
135
documents/업무/7월/2째주/0708.txt
Normal file
135
documents/업무/7월/2째주/0708.txt
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
총 77개
|
||||||
|
처리완료 37개
|
||||||
|
UI 7개
|
||||||
|
진행중 30
|
||||||
|
논의 필요 6
|
||||||
|
|
||||||
|
35번
|
||||||
|
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
||||||
|
19번
|
||||||
|
그룹 선택화면에 검색칸 노출됨
|
||||||
|
80번
|
||||||
|
북마크 날짜 미표기 (날짜로 표기 되거나 날짜도 같이 표기되게 수정)(UI)
|
||||||
|
86번
|
||||||
|
멤버 추가 팝업크기 다른 팝업에 비해 큼 (UI)
|
||||||
|
120번
|
||||||
|
그룹명 입력하지 않고 사용자 체크 후 완료 시 팝업 미발생
|
||||||
|
135번
|
||||||
|
-> 그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
||||||
|
|
||||||
|
오늘
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
|
||||||
|
이슈
|
||||||
|
182번
|
||||||
|
그룹 정렬 시 즐겨찾기 그룹없음
|
||||||
|
183번
|
||||||
|
사용자 삭제 시 화면 유지 되지 않음
|
||||||
|
187번
|
||||||
|
조직도에서 즐겨찾기 추가/해제 시 동작되지 않음
|
||||||
|
188번
|
||||||
|
조직도 그룹 추가 시 체크 초기화되지 않음
|
||||||
|
190번
|
||||||
|
대화 상대 복사/이동 시 금지단어 그룹 추가 가능함
|
||||||
|
214번
|
||||||
|
프로필 화면에서 회사 정보 미노출
|
||||||
|
작업 목록
|
||||||
|
이슈
|
||||||
|
39번
|
||||||
|
화면 이동될 때 이전 화면 이미지 보임
|
||||||
|
6번
|
||||||
|
검색기록, 자동완성 기능 문의건
|
||||||
|
103번
|
||||||
|
검색목록 200개까지만 노출됨
|
||||||
|
136번
|
||||||
|
-> 조직도 프레즌스 오류
|
||||||
|
119번
|
||||||
|
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||||
|
137번
|
||||||
|
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||||
|
166번
|
||||||
|
사용자 검색 목록 색상 오류 (UI)
|
||||||
|
167번
|
||||||
|
새로고침 시 프레즌스 기능 사라짐
|
||||||
|
174번
|
||||||
|
간헐적으로 빈 말풍선 노출됨
|
||||||
|
176번
|
||||||
|
조직도 화면 크기 줄일 시 목록 미노출
|
||||||
|
178번
|
||||||
|
내 프레즌스 오프라인으로 보여짐
|
||||||
|
179번
|
||||||
|
간헐적으로 프로필 버튼 선택 시 선택되지 않음
|
||||||
|
180번
|
||||||
|
조직도 첫 진입시 프레즌스 표시 미노출
|
||||||
|
181번
|
||||||
|
프로필 사진 변경 시 목록 사진은 변경되지 않음 (테스트 케이스 문의)
|
||||||
|
186번
|
||||||
|
조직도에서 대화 선택 시 프로필 팝업 닫혀지지 않음
|
||||||
|
189번
|
||||||
|
그룹명 금지단어 안내 문구 표기 오류 및 소속부서 생성 불가능
|
||||||
|
191번
|
||||||
|
화면크기 중간 사이즈 일 경우 조직도 체크박스 잘림 (UI)
|
||||||
|
194번
|
||||||
|
상태메시지/회의중 내용 변경 시 변경되지 않음
|
||||||
|
195번
|
||||||
|
상태메시지/회의중 내용 취소시 변경 전 내용으로 입력되어 있음 (취소 버튼 클릭 시 어떤 액션을 취해야 하는지 정해야함)
|
||||||
|
196번
|
||||||
|
상태 메시지/회의중 입력 제한 수 오류
|
||||||
|
197번
|
||||||
|
프로필 메뉴 동작안함
|
||||||
|
202번
|
||||||
|
모바일에서 그룹추가/삭제/변경 시 PC실시간 방영되지 않음
|
||||||
|
203번
|
||||||
|
조직도 추가화면에서 불필요한 스크롤 노출됨 (UI)
|
||||||
|
206번
|
||||||
|
자동 로그인 동작되지 않음
|
||||||
|
209번
|
||||||
|
아이디 저장 해제 되지 않음
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
3번 프레즌스 아이콘을 현재보다 크게 변경(UI)
|
||||||
|
4번 그룹이름바꾸기 팝업창(UI)
|
||||||
|
11번 조직 인원 리스트에서 조직 인원 위에 마우스 오버시 연계 기능 아이콘 보이도록 변경
|
||||||
|
|
||||||
|
완료
|
||||||
|
개선사항
|
||||||
|
131번, 134번 개선사항 1번 중복
|
||||||
|
-> 그룹 오픈 유지 및 정렬 유지
|
||||||
|
이슈
|
||||||
|
|
||||||
|
|
||||||
|
conferenceStatus: "X"
|
||||||
|
imessengerStatus: "X"
|
||||||
|
mobileConferenceStatus: "X"
|
||||||
|
mobileStatus: "X"
|
||||||
|
pcStatus: "X"
|
||||||
|
phoneStatus: "X"
|
||||||
|
statusMessage: "."
|
||||||
|
terminalStatus: "TERMINAL_STATE_UNKNOWN"
|
||||||
|
terminalStatusNumber: 0
|
||||||
|
userSeq: "338127"
|
||||||
|
workstatus: undefined
|
||||||
|
|
||||||
|
this.onlineBuddies.push({
|
||||||
|
group,
|
||||||
|
buddyList: buddies.filter((buddy) => {
|
||||||
|
if (-1 < group.userSeqs.indexOf(String(buddy.seq))) {
|
||||||
|
const tempBulkinfos = bulkInfos.filter(
|
||||||
|
(bulk) => bulk.userSeq === buddy.seq + ''
|
||||||
|
);
|
||||||
|
if (!!tempBulkinfos && tempBulkinfos.length > 0) {
|
||||||
|
const pcStatus = tempBulkinfos[0].pcStatus;
|
||||||
|
const mStatus = tempBulkinfos[0].mobileStatus;
|
||||||
|
|
||||||
|
if (pcStatus === StatusCode.OnLine) {
|
||||||
|
return tempBuddyList.push(buddy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
130
documents/업무/7월/2째주/0709.txt
Normal file
130
documents/업무/7월/2째주/0709.txt
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
총 77개
|
||||||
|
처리완료 39개
|
||||||
|
UI 7개
|
||||||
|
진행중 28
|
||||||
|
논의 필요 6
|
||||||
|
|
||||||
|
35번
|
||||||
|
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
||||||
|
19번
|
||||||
|
그룹 선택화면에 검색칸 노출됨
|
||||||
|
80번
|
||||||
|
북마크 날짜 미표기 (날짜로 표기 되거나 날짜도 같이 표기되게 수정)(UI)
|
||||||
|
86번
|
||||||
|
멤버 추가 팝업크기 다른 팝업에 비해 큼 (UI)
|
||||||
|
120번
|
||||||
|
그룹명 입력하지 않고 사용자 체크 후 완료 시 팝업 미발생
|
||||||
|
135번
|
||||||
|
-> 그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
||||||
|
|
||||||
|
오늘
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
|
||||||
|
이슈
|
||||||
|
183번
|
||||||
|
사용자 삭제 시 화면 유지 되지 않음
|
||||||
|
187번
|
||||||
|
조직도에서 즐겨찾기 추가/해제 시 동작되지 않음
|
||||||
|
188번
|
||||||
|
조직도 그룹 추가 시 체크 초기화되지 않음
|
||||||
|
|
||||||
|
|
||||||
|
작업 목록
|
||||||
|
이슈
|
||||||
|
|
||||||
|
6번
|
||||||
|
검색기록, 자동완성 기능 문의건
|
||||||
|
103번
|
||||||
|
검색목록 200개까지만 노출됨
|
||||||
|
136번
|
||||||
|
-> 조직도 프레즌스 오류
|
||||||
|
150번
|
||||||
|
-> 스크롤 오류
|
||||||
|
119번
|
||||||
|
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||||
|
137번
|
||||||
|
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||||
|
174번
|
||||||
|
간헐적으로 빈 말풍선 노출됨
|
||||||
|
176번
|
||||||
|
조직도 화면 크기 줄일 시 목록 미노출
|
||||||
|
178번
|
||||||
|
내 프레즌스 오프라인으로 보여짐
|
||||||
|
179번
|
||||||
|
간헐적으로 프로필 버튼 선택 시 선택되지 않음
|
||||||
|
180번
|
||||||
|
조직도 첫 진입시 프레즌스 표시 미노출
|
||||||
|
181번
|
||||||
|
프로필 사진 변경 시 목록 사진은 변경되지 않음 (테스트 케이스 문의)
|
||||||
|
186번
|
||||||
|
조직도에서 대화 선택 시 프로필 팝업 닫혀지지 않음
|
||||||
|
189번
|
||||||
|
그룹명 금지단어 안내 문구 표기 오류 및 소속부서 생성 불가능
|
||||||
|
191번
|
||||||
|
화면크기 중간 사이즈 일 경우 조직도 체크박스 잘림 (UI)
|
||||||
|
194번
|
||||||
|
상태메시지/회의중 내용 변경 시 변경되지 않음
|
||||||
|
195번
|
||||||
|
상태메시지/회의중 내용 취소시 변경 전 내용으로 입력되어 있음 (취소 버튼 클릭 시 어떤 액션을 취해야 하는지 정해야함)
|
||||||
|
196번
|
||||||
|
상태 메시지/회의중 입력 제한 수 오류
|
||||||
|
197번
|
||||||
|
프로필 메뉴 동작안함
|
||||||
|
202번
|
||||||
|
모바일에서 그룹추가/삭제/변경 시 PC실시간 방영되지 않음
|
||||||
|
203번
|
||||||
|
조직도 추가화면에서 불필요한 스크롤 노출됨 (UI)
|
||||||
|
206번
|
||||||
|
자동 로그인 동작되지 않음
|
||||||
|
209번
|
||||||
|
아이디 저장 해제 되지 않음
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
3번 프레즌스 아이콘을 현재보다 크게 변경(UI)
|
||||||
|
4번 그룹이름바꾸기 팝업창(UI)
|
||||||
|
11번 조직 인원 리스트에서 조직 인원 위에 마우스 오버시 연계 기능 아이콘 보이도록 변경
|
||||||
|
|
||||||
|
완료
|
||||||
|
개선사항
|
||||||
|
|
||||||
|
이슈
|
||||||
|
39번
|
||||||
|
화면 이동될 때 이전 화면 이미지 보임 (오차장님)
|
||||||
|
182번
|
||||||
|
그룹 정렬 시 즐겨찾기 그룹없음
|
||||||
|
190번
|
||||||
|
대화 상대 복사/이동 시 금지단어 그룹 추가 가능함
|
||||||
|
166번
|
||||||
|
사용자 검색 목록 색상 오류 (UI)(오차장님)
|
||||||
|
214번
|
||||||
|
프로필 화면에서 회사 정보 미노출
|
||||||
|
|
||||||
|
|
||||||
|
if (forbidden) {
|
||||||
|
errMsg = this.i18nService.t('group:error.useOnlyForSpecialCharacter', {
|
||||||
|
specialCharacter: '-,'
|
||||||
|
});
|
||||||
|
} else if (inputValue.trim().localeCompare('') === 0) {
|
||||||
|
errMsg = this.i18nService.t('group:error.requireInput');
|
||||||
|
} else if (!!ban && ban !== '') {
|
||||||
|
errMsg = this.i18nService.t('group:error.bannedWords', {
|
||||||
|
bannedWords: this.appService.bannedGroupNames.join(',')
|
||||||
|
});
|
||||||
|
} else if (
|
||||||
|
-1 <
|
||||||
|
this.groupList.findIndex((g) => g.name.trim() === inputValue.trim())
|
||||||
|
) {
|
||||||
|
errMsg = this.i18nService.t('group:error.sameNameExist');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!!errMsg) {
|
||||||
|
return this._alertErr(errMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
height: 100%; min-height: 100%; min-width: 100%; width: 100%;
|
181
documents/업무/7월/2째주/0710.txt
Normal file
181
documents/업무/7월/2째주/0710.txt
Normal file
|
@ -0,0 +1,181 @@
|
||||||
|
총 77개
|
||||||
|
처리완료 49개
|
||||||
|
UI 5개
|
||||||
|
진행중 19
|
||||||
|
논의 필요 6
|
||||||
|
|
||||||
|
35번
|
||||||
|
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
||||||
|
19번
|
||||||
|
그룹 선택화면에 검색칸 노출됨
|
||||||
|
80번
|
||||||
|
북마크 날짜 미표기 (날짜로 표기 되거나 날짜도 같이 표기되게 수정)(UI)
|
||||||
|
86번
|
||||||
|
멤버 추가 팝업크기 다른 팝업에 비해 큼 (UI)
|
||||||
|
120번
|
||||||
|
그룹명 입력하지 않고 사용자 체크 후 완료 시 팝업 미발생
|
||||||
|
135번
|
||||||
|
그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
||||||
|
|
||||||
|
오늘
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
|
||||||
|
이슈
|
||||||
|
137번
|
||||||
|
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||||
|
119번
|
||||||
|
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||||
|
189번
|
||||||
|
그룹명 금지단어 안내 문구 표기 오류 및 소속부서 생성 불가능
|
||||||
|
178번
|
||||||
|
내 프레즌스 오프라인으로 보여짐
|
||||||
|
180번
|
||||||
|
조직도 첫 진입시 프레즌스 표시 미노출
|
||||||
|
|
||||||
|
작업 목록
|
||||||
|
이슈
|
||||||
|
6번
|
||||||
|
검색기록, 자동완성 기능 문의건
|
||||||
|
103번
|
||||||
|
검색목록 200개까지만 노출됨
|
||||||
|
136번
|
||||||
|
-> 조직도 프레즌스 오류
|
||||||
|
176번
|
||||||
|
조직도 화면 크기 줄일 시 목록 미노출
|
||||||
|
179번
|
||||||
|
간헐적으로 프로필 버튼 선택 시 선택되지 않음
|
||||||
|
194번
|
||||||
|
상태메시지/회의중 내용 변경 시 변경되지 않음
|
||||||
|
195번
|
||||||
|
상태메시지/회의중 내용 취소시 변경 전 내용으로 입력되어 있음 (취소 버튼 클릭 시 어떤 액션을 취해야 하는지 정해야함)
|
||||||
|
196번
|
||||||
|
상태 메시지/회의중 입력 제한 수 오류
|
||||||
|
197번
|
||||||
|
프로필 메뉴 동작안함
|
||||||
|
202번
|
||||||
|
모바일에서 그룹추가/삭제/변경 시 PC실시간 방영되지 않음
|
||||||
|
206번
|
||||||
|
자동 로그인 동작되지 않음
|
||||||
|
209번
|
||||||
|
아이디 저장 해제 되지 않음
|
||||||
|
|
||||||
|
개선사항
|
||||||
|
3번 프레즌스 아이콘을 현재보다 크게 변경(UI)
|
||||||
|
4번 그룹이름바꾸기 팝업창(UI)
|
||||||
|
11번 조직 인원 리스트에서 조직 인원 위에 마우스 오버시 연계 기능 아이콘 보이도록 변경
|
||||||
|
|
||||||
|
완료
|
||||||
|
개선사항
|
||||||
|
|
||||||
|
이슈
|
||||||
|
174번
|
||||||
|
간헐적으로 빈 말풍선 노출됨
|
||||||
|
203번
|
||||||
|
조직도 추가화면에서 불필요한 스크롤 노출됨 (UI)
|
||||||
|
204번
|
||||||
|
조직도 추가화면에서 불필요한 스크롤 노출됨 (UI)
|
||||||
|
211번 (재현불가)
|
||||||
|
150번 (재현불가)
|
||||||
|
181번
|
||||||
|
프로필 사진 변경 시 목록 사진은 변경되지 않음 (테스트 케이스 문의)
|
||||||
|
183번
|
||||||
|
사용자 삭제 시 화면 유지 되지 않음
|
||||||
|
187번
|
||||||
|
조직도에서 즐겨찾기 추가/해제 시 동작되지 않음
|
||||||
|
188번
|
||||||
|
조직도 그룹 추가 시 체크 초기화되지 않음
|
||||||
|
191번(오차장님)
|
||||||
|
화면크기 중간 사이즈 일 경우 조직도 체크박스 잘림 (UI)
|
||||||
|
186번
|
||||||
|
조직도에서 대화 선택 시 프로필 팝업 닫혀지지 않음
|
||||||
|
|
||||||
|
|
||||||
|
⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽
|
||||||
|
|
||||||
|
122 멤버 추가화면에서 사용자 검색 시 상태메시지 오류 P2 OPEN 기능 수정필요 (하) "[검증절차]
|
||||||
|
1. 그룹 탭
|
||||||
|
2. 멤버 추가 버튼 선택
|
||||||
|
3. 그룹명 입력 후 그룹지정후 완료 버튼 선택
|
||||||
|
4. '이상윤' 검색
|
||||||
|
5. 재검색
|
||||||
|
|
||||||
|
[검증결과]
|
||||||
|
1. 상태메시지 노출되었다가 재검색 시 노출되지 않음
|
||||||
|
|
||||||
|
[정상동작]
|
||||||
|
1. 노출되는게 정상동작이라면 노출 유지되어야 하고 노출되지 않는게 정상동작이라면 노출되면 안됨
|
||||||
|
(기존 엠메신저는 노출되지 않음)
|
||||||
|
|
||||||
|
[검증환경]
|
||||||
|
PC_0.0.11
|
||||||
|
" - PC 이유진 06월 23일 박병은 07월 03일 -> 07/06 확인 시 해당 현상은 수정되었지만 간헐적으로 상태메시지 텍스트가 일반 텍스트처럼 보여지고 있습니다. 재확인 부탁드립니다.
|
||||||
|
|
||||||
|
|
||||||
|
123 그룹 검색화면에서 상태메시지 노출되지 않음 P2 OPEN 기능 수정필요 (중) "[검증절차]
|
||||||
|
1. 그룹 탭
|
||||||
|
2. 상태메시지 있는 사용자명 입력 후 검색
|
||||||
|
3. 검색결과 확인 >> 1번 이슈
|
||||||
|
4. 상태메시지 없는 사용자명 입력 후 검색
|
||||||
|
5. 검색결과 확인 >> 2번 이슈
|
||||||
|
|
||||||
|
[검증결과]
|
||||||
|
1. 간헐적으로 상태메시지 노출되지 않음
|
||||||
|
2. 간헐적으로 말풍선 아이콘 보여짐(마우스 오버 시 아이콘 사라짐)
|
||||||
|
|
||||||
|
[정상동작]
|
||||||
|
1. 상태메시지 노출되어야 함
|
||||||
|
2. 말풍선 아이콘 노출되면 안됨
|
||||||
|
|
||||||
|
[검증환경]
|
||||||
|
PC_0.0.11
|
||||||
|
" - PC 이유진 06월 23일 박병은 07월 03일 -> 07/06 확인 시 해당 현상은 수정되었지만 간헐적으로 상태메시지 텍스트가 일반 텍스트처럼 보여지고 있습니다. 재확인 부탁드립니다.
|
||||||
|
|
||||||
|
131 그룹 정렬 후 탭 재진입 시 유지되지 않음 P3 OPEN 기능 수정필요 (중) "[검증절차]
|
||||||
|
1. 그룹 탭
|
||||||
|
2. 정렬 : 접속한 동료만보기, 온/오프라인 보기 선택
|
||||||
|
3. 그룹 제외한 다른 탭(대화, 조직도 등) 선택
|
||||||
|
4. 그룹 탭 > 목록 확인
|
||||||
|
|
||||||
|
[검증결과]
|
||||||
|
1. 정렬 유지되지 않음
|
||||||
|
|
||||||
|
[정상동작]
|
||||||
|
1. 정렬 유지되지 않는게 정상동작인지 문의드립니다.
|
||||||
|
(기존 엠메신저 유지됨)
|
||||||
|
|
||||||
|
[검증환경]
|
||||||
|
PC_0.0.11
|
||||||
|
" - PC 이유진 06월 24일 박병은 07월 08일 -> 07/09 확인 시 재현되고 있습니다. 재확인 부탁드립니다.
|
||||||
|
|
||||||
|
138 회사변경 후 검색어 지울 시 회사 유지되지 않음 P2 OPEN 기능 검토 필요 "[검증절차]
|
||||||
|
1. 조직도 탭
|
||||||
|
2. 검색칸 > 타 회사로 변경
|
||||||
|
3. 검색어 입력 후 검색
|
||||||
|
4. 검색칸에서 X버튼 선택
|
||||||
|
|
||||||
|
[검증결과]
|
||||||
|
1. 회사 유지되지 않고 내 회사로 변경됨
|
||||||
|
|
||||||
|
[정상동작]
|
||||||
|
1. 선택한 회사 유지되어야 함
|
||||||
|
|
||||||
|
[검증환경]
|
||||||
|
PC_0.0.11
|
||||||
|
" - PC 이유진 06월 24일 박병은 07월 06일 -> 07/09 확인 시 재현되고 있습니다. 재확인 부탁드립니다.
|
||||||
|
140 상태메시지 편집모드 해제 불가능 및 설정 속도 느림 P2 OPEN 기능 수정필요 (상) "[검증절차]
|
||||||
|
1. 그룹 탭
|
||||||
|
2. 내 프로필 선택
|
||||||
|
3. 프로필 화면에서 상태메시지 입력 후 확인 선택
|
||||||
|
|
||||||
|
[검증결과]
|
||||||
|
1. 상태메시지 편집모드 해제되지 않음
|
||||||
|
2. 상태메시지 변경되는 속도 매우 느림
|
||||||
|
|
||||||
|
[정상동작]
|
||||||
|
1. 편집모드 해제되어야 함
|
||||||
|
2. 상태메시지 바로 변경되어야 함
|
||||||
|
|
||||||
|
[검증환경]
|
||||||
|
PC_0.0.11
|
||||||
|
" - PC 이유진 06월 24일 박병은 07월 02일 -> 7/10 화면정의서 26p처럼 연필 아이콘 선택 시 편집모드 진입되고 체크 아이콘 선택 시 편집모드 해제되는 것처럼 수정 부탁드립니다.
|
133
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.html
Normal file
133
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.html
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
<div class="dialog-container">
|
||||||
|
<app-layouts-default-dialog
|
||||||
|
[disableClose]="false"
|
||||||
|
(closed)="onClosed($event)"
|
||||||
|
>
|
||||||
|
<div appLayoutsDefaultDialog="header">{{ title }}</div>
|
||||||
|
<div class="dialog-body" appLayoutsDefaultDialog="body">
|
||||||
|
<mat-horizontal-stepper
|
||||||
|
fxFlexFill
|
||||||
|
[linear]="true"
|
||||||
|
#stepper
|
||||||
|
[selectedIndex]="currentStep"
|
||||||
|
(animationDone)="doneAnimation()"
|
||||||
|
>
|
||||||
|
<mat-step label="Step 1">
|
||||||
|
<div class="ucap-dialog-group-manage-container">
|
||||||
|
<div class="group-name">
|
||||||
|
<span class="sub-title">{{
|
||||||
|
data.groupBuddyList.group.name
|
||||||
|
}}</span>
|
||||||
|
<button
|
||||||
|
mat-button
|
||||||
|
(click)="onAdd(stepper)"
|
||||||
|
aria-label="대화상대 추가"
|
||||||
|
>
|
||||||
|
<mat-icon class="material-icons-outlined">person_add</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ucap-dialog-app-group-profile-list">
|
||||||
|
<app-group-profile-list-01
|
||||||
|
[userInfos]="data.groupBuddyList.buddyList"
|
||||||
|
[selectedUser]="selectedUserList"
|
||||||
|
[checkable]="true"
|
||||||
|
[isDialog]="true"
|
||||||
|
(toggleCheck)="onChangeSelectedUserList($event)"
|
||||||
|
>
|
||||||
|
</app-group-profile-list-01>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</mat-step>
|
||||||
|
<mat-step label="Step 2">
|
||||||
|
<div class="ucap-dialog-app-group-select-user">
|
||||||
|
<app-group-select-user
|
||||||
|
*ngIf="
|
||||||
|
currentStep > 0 && currentManageType === GroupManageType.Add
|
||||||
|
"
|
||||||
|
[isDialog]="true"
|
||||||
|
[checkable]="true"
|
||||||
|
[selectedUserList]="selectedUserList"
|
||||||
|
(toggleCheckUser)="onChangeSelectedUserList($event)"
|
||||||
|
(toggleCheckGroup)="onSelectBySectionUserGroup($event)"
|
||||||
|
></app-group-select-user>
|
||||||
|
|
||||||
|
<app-sections-select-group
|
||||||
|
*ngIf="
|
||||||
|
currentStep > 0 &&
|
||||||
|
(currentManageType === GroupManageType.Copy ||
|
||||||
|
GroupManageType.Move)
|
||||||
|
"
|
||||||
|
[isDialog]="true"
|
||||||
|
[checkable]="true"
|
||||||
|
[curGroup]="data.groupBuddyList.group"
|
||||||
|
[selectedGroupList]="selectedGroupList"
|
||||||
|
[selectedUserList]="selectedUserList"
|
||||||
|
(changeUserList)="onChangeSelectedUserList($event)"
|
||||||
|
(changeGroupList)="onSelectBySectionGroup($event)"
|
||||||
|
(changeGroupName)="onChangeGroupName($event)"
|
||||||
|
></app-sections-select-group>
|
||||||
|
<!-- </ng-container> -->
|
||||||
|
</div>
|
||||||
|
<div class="ucap-dialog-organization-profile-selection">
|
||||||
|
<ucap-organization-profile-selection-01
|
||||||
|
[userInfoList]="selectedUserList"
|
||||||
|
[removableFor]="removableForSelection"
|
||||||
|
[colorFor]="colorForSelection"
|
||||||
|
(removed)="onRemovedProfileSelection($event)"
|
||||||
|
class="ucap-organization-selected-list"
|
||||||
|
>
|
||||||
|
<ng-template ucapOrganizationProfileSelection01Header>
|
||||||
|
{{ 'group:dialog.selectedMember' | ucapI18n }} (<span
|
||||||
|
class="number"
|
||||||
|
>{{ selectedUserList.length }}</span
|
||||||
|
>)
|
||||||
|
</ng-template>
|
||||||
|
</ucap-organization-profile-selection-01>
|
||||||
|
</div>
|
||||||
|
</mat-step>
|
||||||
|
</mat-horizontal-stepper>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div appLayoutsDefaultDialog="action" class="btn-box">
|
||||||
|
<div *ngIf="currentStep === 0">
|
||||||
|
<button
|
||||||
|
mat-stroked-button
|
||||||
|
(click)="onDelete(stepper)"
|
||||||
|
[disabled]="checkDisableBtn()"
|
||||||
|
>
|
||||||
|
{{ 'group:dialog.btn.remove' | ucapI18n }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-button
|
||||||
|
class="bg-primary-darkest"
|
||||||
|
[disabled]="checkDisableBtn()"
|
||||||
|
(click)="onUpdateMember(stepper, GroupManageType.Copy)"
|
||||||
|
>
|
||||||
|
{{ 'group:dialog.title.copyGroup' | ucapI18n }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-button
|
||||||
|
class="bg-primary-darkest"
|
||||||
|
[disabled]="checkDisableBtn()"
|
||||||
|
(click)="onUpdateMember(stepper, GroupManageType.Move)"
|
||||||
|
>
|
||||||
|
{{ 'group:dialog.title.moveGroup' | ucapI18n }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="currentStep > 0">
|
||||||
|
<button mat-button mat-stroked-button (click)="onCancel(stepper)">
|
||||||
|
{{ 'group:dialog.btn.cancel' | ucapI18n }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-button
|
||||||
|
class="bg-primary-darkest"
|
||||||
|
(click)="onConfirm(stepper)"
|
||||||
|
[disabled]="checkDisableBtnConfirm()"
|
||||||
|
>
|
||||||
|
{{ 'group:dialog.btn.compleate' | ucapI18n }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</app-layouts-default-dialog>
|
||||||
|
</div>
|
81
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.scss
Normal file
81
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.scss
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
@import '~@ucap/lg-scss/mixins';
|
||||||
|
.dialog-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.dialog-body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
.ucap-dialog-group-manage-container {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
.group-name {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row;
|
||||||
|
height: 40px;
|
||||||
|
border-bottom: 1px solid #999999;
|
||||||
|
.sub-title {
|
||||||
|
display: inline-flex;
|
||||||
|
height: 100%;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
display: flex;
|
||||||
|
margin-left: auto;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ucap-dialog-app-group-profile-list {
|
||||||
|
height: calc(100% - 40px);
|
||||||
|
// overflow-y: hidden;
|
||||||
|
overflow: hidden;
|
||||||
|
.profile-list-01-item-container {
|
||||||
|
.ucap-virtual-scroll-viewport {
|
||||||
|
.ps__rail-x {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ucap-dialog-app-group-select-user {
|
||||||
|
width: 60%;
|
||||||
|
border-bottom: 1px solid #cccccc;
|
||||||
|
@include screen(xs) {
|
||||||
|
width: 100%;
|
||||||
|
height: 78%;
|
||||||
|
margin-bottom: 2%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ucap-dialog-organization-profile-selection {
|
||||||
|
position: relative;
|
||||||
|
width: 40%;
|
||||||
|
padding-left: $default-space;
|
||||||
|
border-bottom: 1px solid #cccccc;
|
||||||
|
@include screen(xs) {
|
||||||
|
width: 100%;
|
||||||
|
height: 20%;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.ucap-organization-selected-list {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
border-bottom: none;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
button {
|
||||||
|
margin-left: 4px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
26
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.spec.ts
Normal file
26
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.spec.ts
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { By } from '@angular/platform-browser';
|
||||||
|
import { DebugElement } from '@angular/core';
|
||||||
|
|
||||||
|
import { ManageDialogComponent } from './manage.dialog.component';
|
||||||
|
|
||||||
|
describe('ucap::ui-organization::ManageDialogComponent', () => {
|
||||||
|
let component: ManageDialogComponent;
|
||||||
|
let fixture: ComponentFixture<ManageDialogComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ManageDialogComponent]
|
||||||
|
}).compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(ManageDialogComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
396
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.ts
Normal file
396
documents/업무/7월/2째주/그룹관리백업/manage.dialog.component.ts
Normal file
|
@ -0,0 +1,396 @@
|
||||||
|
import { Subject, of } from 'rxjs';
|
||||||
|
|
||||||
|
import {
|
||||||
|
Component,
|
||||||
|
OnInit,
|
||||||
|
OnDestroy,
|
||||||
|
ChangeDetectionStrategy,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Inject,
|
||||||
|
ViewChild,
|
||||||
|
ViewContainerRef
|
||||||
|
} from '@angular/core';
|
||||||
|
|
||||||
|
import { Store } from '@ngrx/store';
|
||||||
|
|
||||||
|
import {
|
||||||
|
MatDialogRef,
|
||||||
|
MAT_DIALOG_DATA,
|
||||||
|
MatDialog
|
||||||
|
} from '@angular/material/dialog';
|
||||||
|
|
||||||
|
import { UserInfo, GroupDetailData } from '@ucap/protocol-sync';
|
||||||
|
import { UserInfoSS, UserInfoF, UserInfoDN } from '@ucap/protocol-query';
|
||||||
|
import { UserInfo as RoomUserInfo } from '@ucap/protocol-room';
|
||||||
|
import { MatStepper } from '@angular/material/stepper';
|
||||||
|
import { I18nService } from '@ucap/ng-i18n';
|
||||||
|
import { GroupActions } from '@ucap/ng-store-group';
|
||||||
|
import {
|
||||||
|
AlertDialogComponent,
|
||||||
|
AlertDialogData,
|
||||||
|
AlertDialogResult,
|
||||||
|
ConfirmDialogComponent,
|
||||||
|
ConfirmDialogResult,
|
||||||
|
ConfirmDialogData
|
||||||
|
} from '@ucap/ng-ui';
|
||||||
|
|
||||||
|
import { take, map, catchError } from 'rxjs/operators';
|
||||||
|
|
||||||
|
import { SelectUserDialogType, GroupManageType } from '@app/types';
|
||||||
|
import { AppGroupService } from '@app/services/app-group.service';
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
export type UserInfoTypes =
|
||||||
|
| UserInfo
|
||||||
|
| UserInfoSS
|
||||||
|
| UserInfoF
|
||||||
|
| UserInfoDN
|
||||||
|
| RoomUserInfo;
|
||||||
|
|
||||||
|
export interface ManageDialogData {
|
||||||
|
title: string;
|
||||||
|
groupBuddyList?: { group: GroupDetailData; buddyList: UserInfo[] };
|
||||||
|
}
|
||||||
|
export interface ManageDialogResult {
|
||||||
|
type: GroupManageType;
|
||||||
|
groupName: string;
|
||||||
|
group?: GroupDetailData;
|
||||||
|
selelctUserList?: UserInfoTypes[];
|
||||||
|
selectGroupList?: GroupDetailData[];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-dialog-group-manage',
|
||||||
|
templateUrl: './manage.dialog.component.html',
|
||||||
|
styleUrls: ['./manage.dialog.component.scss'],
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush
|
||||||
|
})
|
||||||
|
export class ManageDialogComponent implements OnInit, OnDestroy {
|
||||||
|
constructor(
|
||||||
|
public dialogRef: MatDialogRef<ManageDialogData, ManageDialogResult>,
|
||||||
|
@Inject(MAT_DIALOG_DATA) public data: ManageDialogData,
|
||||||
|
private changeDetectorRef: ChangeDetectorRef,
|
||||||
|
private store: Store<any>,
|
||||||
|
private i18nService: I18nService,
|
||||||
|
public dialog: MatDialog,
|
||||||
|
private appGroupService: AppGroupService,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.moveTitle = this.i18nService.t('group:dialog.title.moveGroup');
|
||||||
|
this.copyTitle = this.i18nService.t('group:dialog.title.copyGroup');
|
||||||
|
this.addTitle = this.i18nService.t('group:dialog.title.addBuddy');
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewChild('dialogContainer', { static: true, read: ViewContainerRef })
|
||||||
|
dialogContainer: ViewContainerRef;
|
||||||
|
|
||||||
|
private ngOnDestroySubject: Subject<void>;
|
||||||
|
private moveTitle: string;
|
||||||
|
private copyTitle: string;
|
||||||
|
private addTitle: string;
|
||||||
|
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
GroupManageType = GroupManageType;
|
||||||
|
currentManageType: GroupManageType;
|
||||||
|
currentStep = 0;
|
||||||
|
groupName = '';
|
||||||
|
|
||||||
|
selectedUserList: UserInfoTypes[] = [];
|
||||||
|
selectedGroupList: GroupDetailData[] = [];
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.ngOnDestroySubject = new Subject();
|
||||||
|
|
||||||
|
this.currentManageType = GroupManageType.None;
|
||||||
|
this.title = this.data.title;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
if (!!this.ngOnDestroySubject) {
|
||||||
|
this.ngOnDestroySubject.next();
|
||||||
|
this.ngOnDestroySubject.complete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onClosed(event: MouseEvent): void {
|
||||||
|
this.dialogRef.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
onDelete(stepper: MatStepper) {
|
||||||
|
if (
|
||||||
|
!!this.selectedUserList &&
|
||||||
|
this.selectedUserList.length > 0 &&
|
||||||
|
this.currentStep === 0
|
||||||
|
) {
|
||||||
|
let titleStr = '';
|
||||||
|
|
||||||
|
this.selectedUserList.map((user, idx) => {
|
||||||
|
let userTitle = user.name + ' ' + user.grade;
|
||||||
|
if (this.selectedUserList.length - 1 > idx) {
|
||||||
|
userTitle = userTitle + ', ';
|
||||||
|
titleStr = titleStr.concat('', userTitle);
|
||||||
|
} else {
|
||||||
|
titleStr = titleStr.concat('', userTitle);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.appGroupService
|
||||||
|
.removeMemberToGroup(
|
||||||
|
this.i18nService.t('group:dialog.removeBuddyConfirm', {
|
||||||
|
targetMember: titleStr
|
||||||
|
}),
|
||||||
|
this.selectedUserList,
|
||||||
|
this.data.groupBuddyList.group
|
||||||
|
)
|
||||||
|
.then(() => this.dialogRef.close())
|
||||||
|
.catch((reson) => this.logService.error(reson));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onUpdateMember(stepper: MatStepper, type: GroupManageType) {
|
||||||
|
this.currentManageType = type;
|
||||||
|
|
||||||
|
if (type === GroupManageType.Move) {
|
||||||
|
this.title = this.moveTitle;
|
||||||
|
} else {
|
||||||
|
this.title = this.copyTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currentStep++;
|
||||||
|
stepper.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
onAdd(stepper: MatStepper) {
|
||||||
|
this.title = this.addTitle;
|
||||||
|
this.currentManageType = GroupManageType.Add;
|
||||||
|
this.selectedUserList = this.data.groupBuddyList.buddyList;
|
||||||
|
|
||||||
|
this.currentStep++;
|
||||||
|
stepper.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
onChangeGroupName(data: { invalid: boolean; groupName: string }) {
|
||||||
|
this.groupName = data.groupName;
|
||||||
|
}
|
||||||
|
|
||||||
|
onSelectBySectionGroup(data: { checked: boolean; group: GroupDetailData }) {
|
||||||
|
const i = this.selectedGroupList.findIndex((u) => u.seq === data.group.seq);
|
||||||
|
|
||||||
|
if (data.checked) {
|
||||||
|
if (-1 === i) {
|
||||||
|
this.selectedGroupList = [...this.selectedGroupList, data.group];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (-1 < i) {
|
||||||
|
this.selectedGroupList = this.selectedGroupList.filter(
|
||||||
|
(u) => u.seq !== data.group.seq
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onSelectBySectionUserGroup(params: {
|
||||||
|
isChecked: boolean;
|
||||||
|
groupBuddyList: { group: GroupDetailData; buddyList: UserInfo[] };
|
||||||
|
}) {
|
||||||
|
if (params.isChecked) {
|
||||||
|
params.groupBuddyList.buddyList.forEach((item) => {
|
||||||
|
if (
|
||||||
|
this.selectedUserList.filter((user) => user.seq === item.seq)
|
||||||
|
.length === 0
|
||||||
|
) {
|
||||||
|
this.selectedUserList = [...this.selectedUserList, item];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.selectedUserList = this.selectedUserList.filter(
|
||||||
|
(item) =>
|
||||||
|
params.groupBuddyList.buddyList.filter((del) => del.seq === item.seq)
|
||||||
|
.length === 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
doneAnimation() {
|
||||||
|
this.changeDetectorRef.markForCheck();
|
||||||
|
}
|
||||||
|
onChangeSelectedUserList(
|
||||||
|
datas: {
|
||||||
|
checked: boolean;
|
||||||
|
userInfo: UserInfoSS;
|
||||||
|
}[]
|
||||||
|
) {
|
||||||
|
if (!datas || 0 === datas.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const pushs: UserInfoSS[] = [];
|
||||||
|
const pops: UserInfoSS[] = [];
|
||||||
|
|
||||||
|
datas.forEach((d) => {
|
||||||
|
const i = this.selectedUserList.findIndex(
|
||||||
|
(u) => u.seq === d.userInfo.seq
|
||||||
|
);
|
||||||
|
if (d.checked) {
|
||||||
|
if (-1 === i) {
|
||||||
|
pushs.push(d.userInfo);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (-1 < i) {
|
||||||
|
pops.push(d.userInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (0 < pushs.length) {
|
||||||
|
this.selectedUserList = [...this.selectedUserList, ...pushs];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 < pops.length) {
|
||||||
|
this.selectedUserList = this.selectedUserList.filter(
|
||||||
|
(u) => -1 === pops.findIndex((p) => p.seq === u.seq)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onCancel(stepper: MatStepper) {
|
||||||
|
if (
|
||||||
|
!!this.selectedUserList &&
|
||||||
|
this.selectedUserList.length > 0 &&
|
||||||
|
this.currentManageType === GroupManageType.Add
|
||||||
|
) {
|
||||||
|
this.selectedUserList = [];
|
||||||
|
} else {
|
||||||
|
const tempList = [];
|
||||||
|
this.selectedUserList.map((user) => {
|
||||||
|
this.data.groupBuddyList.buddyList.every((buddy) => {
|
||||||
|
if (user.seq === buddy.seq) {
|
||||||
|
tempList.push(user);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
this.selectedUserList = [...tempList];
|
||||||
|
}
|
||||||
|
this.selectedGroupList = [];
|
||||||
|
this.currentStep--;
|
||||||
|
this.title = this.data.title;
|
||||||
|
stepper.previous();
|
||||||
|
}
|
||||||
|
onConfirm(stepper: MatStepper) {
|
||||||
|
switch (this.currentManageType) {
|
||||||
|
case GroupManageType.Add:
|
||||||
|
{
|
||||||
|
if (!!this.selectedUserList && this.selectedUserList.length > 0) {
|
||||||
|
this.doAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GroupManageType.Copy:
|
||||||
|
case GroupManageType.Move:
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
!!this.selectedUserList &&
|
||||||
|
this.selectedUserList.length === 0 &&
|
||||||
|
this.groupName === ''
|
||||||
|
) {
|
||||||
|
this.dialog.open<
|
||||||
|
AlertDialogComponent,
|
||||||
|
AlertDialogData,
|
||||||
|
AlertDialogResult
|
||||||
|
>(AlertDialogComponent, {
|
||||||
|
panelClass: 'min-create-dialog',
|
||||||
|
data: {
|
||||||
|
title: 'Error',
|
||||||
|
html: this.i18nService.t('group:error.notSelectedUser')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.doAction();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
doAction() {
|
||||||
|
if (!!this.groupName && this.groupName.trim().localeCompare('') !== 0) {
|
||||||
|
this.currentManageType = GroupManageType.Create;
|
||||||
|
} else {
|
||||||
|
this.groupName = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dialogRef.close({
|
||||||
|
type: this.currentManageType,
|
||||||
|
groupName: this.groupName,
|
||||||
|
group: this.data.groupBuddyList.group,
|
||||||
|
selelctUserList: this.selectedUserList,
|
||||||
|
selectGroupList: this.selectedGroupList
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 개별 체크여부 */
|
||||||
|
getCheckedUser(userInfo: UserInfoSS) {
|
||||||
|
if (!!this.selectedUserList && this.selectedUserList.length > 0) {
|
||||||
|
return (
|
||||||
|
this.selectedUserList.filter(
|
||||||
|
(item) => String(item.seq) === String(userInfo.seq)
|
||||||
|
).length > 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkDisableBtn(): boolean {
|
||||||
|
let findUser: UserInfoTypes[];
|
||||||
|
if (!!this.selectedUserList && this.selectedUserList.length > 0) {
|
||||||
|
findUser = this.selectedUserList.filter((user) => {
|
||||||
|
return this.data.groupBuddyList.group.userSeqs.includes(
|
||||||
|
String(user.seq)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!!findUser && findUser.length > 0) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
checkDisableBtnConfirm() {
|
||||||
|
if (
|
||||||
|
(!!this.selectedUserList && this.selectedUserList.length > 0) ||
|
||||||
|
(!!this.groupName && this.groupName.trim().localeCompare('') !== 0)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
onToggleCheck(data: { checked: boolean; userInfo: UserInfoSS }) {
|
||||||
|
this.onChangeSelectedUserList([data]);
|
||||||
|
}
|
||||||
|
|
||||||
|
onRemovedProfileSelection(userInfo: UserInfo) {
|
||||||
|
const i = this.selectedUserList.findIndex(
|
||||||
|
(u) => String(u.seq) === String(userInfo.seq)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (-1 < i) {
|
||||||
|
this.selectedUserList = this.selectedUserList.filter(
|
||||||
|
(u) => String(u.seq) !== String(userInfo.seq)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
removableForSelection = (userInfo: UserInfo) => {
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
colorForSelection = (userInfo: UserInfo) => {
|
||||||
|
return 'accent';
|
||||||
|
};
|
||||||
|
}
|
Binary file not shown.
BIN
documents/업무/new-pc-doc/Issue_2020.07.10 (New PC Messenger).xlsx
Normal file
BIN
documents/업무/new-pc-doc/Issue_2020.07.10 (New PC Messenger).xlsx
Normal file
Binary file not shown.
BIN
documents/업무/new-pc-doc/UCAP 메신저 화면정의서_V1.78_200710.pptx
Normal file
BIN
documents/업무/new-pc-doc/UCAP 메신저 화면정의서_V1.78_200710.pptx
Normal file
Binary file not shown.
BIN
documents/업무/new-pc-doc/추가 수정사항_200629.pptx
Normal file
BIN
documents/업무/new-pc-doc/추가 수정사항_200629.pptx
Normal file
Binary file not shown.
BIN
weekly-report/7월/주간보고_박병은_2020.0710.pptx
Normal file
BIN
weekly-report/7월/주간보고_박병은_2020.0710.pptx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user