0710 sync
This commit is contained in:
parent
3271e678e2
commit
490553c411
|
@ -1,8 +1,8 @@
|
|||
총 47개
|
||||
처리완료 24개
|
||||
UI 3개
|
||||
진행중 16
|
||||
논의 필요 6
|
||||
총 53개
|
||||
처리완료 29개
|
||||
UI 5개
|
||||
진행중 11
|
||||
논의 필요 7
|
||||
|
||||
35번
|
||||
사용자 새 그룹에 대화 상대 이동시 이동되지 않고 복사됨 -> 논의 필요
|
||||
|
@ -18,30 +18,73 @@
|
|||
-> 그룹/조직도 검색어 지울 시 목록 화면으로 진입 불가능 (백스페이스로 지우기) - 이동수단 필요
|
||||
|
||||
오늘
|
||||
131번, 134번
|
||||
-> 그룹 오픈 유지 및 정렬 유지
|
||||
개선사항
|
||||
|
||||
이슈
|
||||
165번
|
||||
체크/체크해제 동작 느림
|
||||
167번
|
||||
새로고침 시 프레즌스 기능 사라짐
|
||||
작업 목록
|
||||
39번
|
||||
화면 이동될 때 이전 화면 이미지 보임
|
||||
6번
|
||||
검색기록, 자동완성 기능 문의건
|
||||
136번
|
||||
-> 조직도 프레즌스 오류
|
||||
119번
|
||||
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||
137번
|
||||
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||
138번
|
||||
조직도 회사 변경 후 검색어 지울 시 회사 유지되지 않음
|
||||
148번
|
||||
프로필 사진 영역 선택 시 프로필 화면 진입되지 않음
|
||||
164번
|
||||
그룹 목록에서 체크 시 조직도 목록에서 체크되지 않음
|
||||
165번
|
||||
체크/체크해제 동작 느림
|
||||
166번
|
||||
사용자 검색 목록 색상 오류 (UI)
|
||||
167번
|
||||
새로고침 시 프레즌스 기능 사라짐
|
||||
174번
|
||||
간헐적으로 빈 말풍선 노출됨
|
||||
이슈
|
||||
131번, 134번 개선사항 1번 중복
|
||||
-> 그룹 오픈 유지 및 정렬 유지
|
||||
39번
|
||||
화면 이동될 때 이전 화면 이미지 보임
|
||||
6번
|
||||
검색기록, 자동완성 기능 문의건
|
||||
103번
|
||||
검색목록 200개까지만 노출됨
|
||||
136번
|
||||
-> 조직도 프레즌스 오류
|
||||
119번
|
||||
멤버 추가화면에서 특수문자 입력 후 완료 선택시 버튼 오류 및 팝업 미발생
|
||||
137번
|
||||
-> 조직도에서 그룹 추가 시 특수문자 입력가능함
|
||||
166번
|
||||
사용자 검색 목록 색상 오류 (UI)
|
||||
174번
|
||||
간헐적으로 빈 말풍선 노출됨
|
||||
|
||||
개선사항
|
||||
3번 프레즌스 아이콘을 현재보다 크게 변경(UI)
|
||||
4번 그룹이름바꾸기 팝업창(UI)
|
||||
11번 조직 인원 리스트에서 조직 인원 위에 마우스 오버시 연계 기능 아이콘 보이도록 변경
|
||||
12번 조직 인원 선택한 창에서 선택 취소를 할 수 있는 X버튼 추가
|
||||
|
||||
완료
|
||||
개선사항
|
||||
2번 그룹 멤버관리 메뉴 화면 및 기능을 새로운 기획에 맞추어서 변경
|
||||
수정사항ppt 5,6
|
||||
5번 그룹이름바꾸기 엔터키 누르면 적용되도록 변경
|
||||
13번 대화방에서 상대방 프로필 사진 클릭 시 상대방 프로필이 팝업되도록 변경
|
||||
14번 조직도에서 상대방 프로필 사진 클릭 시 상대방 프로필이 팝업되도록 변경
|
||||
이슈
|
||||
148번
|
||||
프로필 사진 영역 선택 시 프로필 화면 진입되지 않음
|
||||
164번
|
||||
그룹 목록에서 체크 시 조직도 목록에서 체크되지 않음
|
||||
138번
|
||||
조직도 회사 변경 후 검색어 지울 시 회사 유지되지 않음
|
||||
|
||||
세션저장
|
||||
[{인덱스, 그룹 seq, opened}, {}]
|
||||
그룹 초기화
|
||||
인덱스 데이터 있는 경우
|
||||
조회후 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