Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
chat_webview
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abookCommunication
chat_webview
Commits
71a7c5c9
Commit
71a7c5c9
authored
Apr 12, 2021
by
Lee Munkyeong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release_sp3' into 'bugFix/#467_dose_not_show_profile_on_offline'
# Conflicts: # public_new/js/chat-ui.js
parents
70abde24
4dbca001
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
190 additions
and
59 deletions
+190
-59
public_new/archive.html
+1
-3
public_new/archive_detail.html
+25
-5
public_new/css/archive.css
+10
-0
public_new/css/chat.css
+3
-0
public_new/js/archive.js
+20
-5
public_new/js/chat-db.js
+16
-7
public_new/js/chat-ui.js
+41
-34
public_new/js/chat-util.js
+34
-0
public_new/js/chat.js
+5
-0
public_new/js/language_en.js
+11
-1
public_new/js/language_ja.js
+11
-1
public_new/js/language_ko.js
+11
-1
public_new/template/template_system_message.html
+2
-2
No files found.
public_new/archive.html
View file @
71a7c5c9
...
...
@@ -50,11 +50,9 @@
<main
id=
"archive"
>
<!-- 検索 -->
<div
class=
"search_form"
>
<form>
<input
type=
"search"
name=
"search"
placeholder=
"検索"
>
<span
class=
"src_icon"
></span>
<a
href=
"#"
class=
"cancel none"
>
キャンセル
</a>
</form>
</div>
<!-- アーカイブリスト -->
<div
class=
"archive_list content"
>
...
...
@@ -161,7 +159,7 @@
PLATFORM
=
platform
;
IS_MOBILE
=
isMobile
;
IS_ONLINE
=
isOnline
;
CHAT_UI
.
loadMessages
(
CHAT
.
globalLoginParameter
.
roomId
,
CHAT
.
globalLoginParameter
.
roomName
);
CHAT_UI
.
refreshArchiveScreen
(
);
};
</script>
</body>
...
...
public_new/archive_detail.html
View file @
71a7c5c9
...
...
@@ -16,16 +16,21 @@
<link
rel=
"stylesheet"
href=
"./css/footer.css"
>
<link
rel=
"stylesheet"
href=
"./css/font-awesome.css"
>
<script>
</head>
<script>
var
archiveId
;
window
.
addEventListener
(
'DOMContentLoaded'
,
function
(){
var
urlPrm
=
new
Object
;
var
urlSearch
=
location
.
search
.
substring
(
1
).
split
(
'&'
);
var
kv
=
urlSearch
[
0
].
split
(
'='
);
urlPrm
[
kv
[
0
]]
=
kv
[
1
];
CHAT_UI
.
refreshArchiveDetailScreen
(
urlPrm
.
archiveId
);
archiveId
=
urlPrm
.
archiveId
if
(
typeof
(
android
)
!=
"undefined"
)
{
}
else
{
CHAT_UI
.
refreshArchiveDetailScreen
(
urlPrm
.
archiveId
);
}
});
</script>
</head>
<body>
<!-- ナビメニュー -->
...
...
@@ -92,7 +97,7 @@
<
/div
>
<
div
class
=
"archive_detail_room_nm item"
>
<
h2
class
=
"ttl"
id
=
"archiveRoomName"
>
ChatRoomName
<
/h2
>
<
span
>
{{
chatRoomName
}}
<
/span
>
<
span
class
=
"archive_chat_room"
>
{{
chatRoomName
}}
<
/span
>
<
button
id
=
"joinChatRoom"
>
<
img
src
=
"icon/icon_join_room.png"
alt
=
""
>
<
/button
>
...
...
@@ -101,7 +106,7 @@
<
h2
class
=
"ttl"
id
=
"archiveSaveUser"
>
SaveUser
<
/h2
>
<
div
class
=
"d-flex flex-row"
>
<
div
class
=
"d-flex flex-column"
>
<
img
src
=
"{{profileImage}}"
alt
=
"プロフィール画像"
>
<
img
src
=
"{{profileImage}}"
alt
=
"プロフィール画像"
onclick
=
"CHAT_UI.makeNameCard({{userId}})"
>
<
span
>
{{
userName
}}
<
/span
>
<
/div
>
<
/div
>
...
...
@@ -188,6 +193,21 @@
let
PLATFORM
=
''
;
let
IS_MOBILE
=
true
;
let
IS_ONLINE
=
false
;
if
(
typeof
(
android
)
!=
"undefined"
)
{
android
.
getLoginParameter
();
android
.
getGlobalParameter
();
}
else
{
}
function
getGlobalParam
(
chatServerUrl
,
cmsServerUrl
,
platform
,
isMobile
,
isOnline
)
{
CHAT_SERVER_URL
=
chatServerUrl
;
CMS_SERVER_URL
=
cmsServerUrl
;
PLATFORM
=
platform
;
IS_MOBILE
=
isMobile
;
IS_ONLINE
=
isOnline
;
CHAT_UI
.
refreshArchiveDetailScreen
(
archiveId
);
};
</script>
</body>
...
...
public_new/css/archive.css
View file @
71a7c5c9
...
...
@@ -121,6 +121,16 @@
width
:
24px
;
height
:
24px
;
}
.archive_chat_room
{
display
:
inline-block
;
vertical-align
:
middle
;
max-width
:
80%
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
@media
screen
and
(
max-width
:
768px
){
.archive_name
{
font-size
:
14px
;
...
...
public_new/css/chat.css
View file @
71a7c5c9
...
...
@@ -742,6 +742,9 @@ input[name="tab_item"] {
border
:
none
;
font-size
:
18px
;
}
.dow
{
margin-left
:
10px
;
}
/**************************** modal *************************/
/* メニューモーダル */
...
...
public_new/js/archive.js
View file @
71a7c5c9
...
...
@@ -3,16 +3,31 @@ var ARCHIVE_UI = {};
$
(
function
()
{
// アーカイブ検索
$
(
'#archive .search_form input[type="search"]'
).
keyup
(
function
(
)
{
$
(
'.overlay_src_msg'
).
empty
();
$
(
'#archive .search_form input[type="search"]'
).
keyup
(
function
(
e
)
{
var
keyword
=
$
(
'#archive .search_form input[type="search"]'
).
val
();
if
(
keyword
==
''
)
{
return
;
if
(
e
.
KeyCode
==
13
||
e
.
key
==
"Enter"
)
{
if
(
keyword
.
length
!=
0
&&
keyword
!=
''
)
{
$
(
'#archive .search_form input[type="search"]'
).
blur
();
return
;
}
}
else
if
(
keyword
==
''
||
keyword
.
length
<
2
)
{
$
(
'.overlay_src_msg'
).
empty
();
return
;
}
$
(
'.overlay_src_msg'
).
empty
();
if
(
CHAT_UTIL
.
isIOS
())
{
CHAT_DB
.
callGetArchiveByName
(
keyword
);
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
ARCHIVE_UI
.
refreshSearchScreen
(
keyword
);
}
if
(
e
.
KeyCode
==
13
||
e
.
key
==
"Enter"
)
{
$
(
'#archive .search_form input[type="search"]'
).
blur
();
return
;
}
// 検索結果を表示
CHAT_DB
.
callGetArchiveByName
(
keyword
);
});
});
...
...
public_new/js/chat-db.js
View file @
71a7c5c9
...
...
@@ -178,7 +178,7 @@ CHAT_DB.getArchiveList = function() {
if
(
CHAT_UTIL
.
isIOS
())
{
return
JSON
.
parse
(
callNativeApp
(
"getArchiveList"
,
{}));
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
// TODO
return
JSON
.
parse
(
android
.
getArchiveList
());
}
};
...
...
@@ -186,7 +186,7 @@ CHAT_DB.updateArchiveList = function() {
if
(
CHAT_UTIL
.
isIOS
())
{
webkit
.
messageHandlers
.
updateArchiveList
.
postMessage
({});
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
// TODO
android
.
updateArchiveList
();
}
};
...
...
@@ -195,7 +195,7 @@ CHAT_DB.getArchiveByName = function(archiveName) {
if
(
CHAT_UTIL
.
isIOS
())
{
return
JSON
.
parse
(
callNativeApp
(
"getArchiveByName"
,
{
"archiveName"
:
archiveName
}));
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
// TODO
return
JSON
.
parse
(
android
.
getArchiveListByName
(
archiveName
));
}
};
...
...
@@ -204,7 +204,7 @@ CHAT_DB.getArchiveDetail = function(archiveId) {
if
(
CHAT_UTIL
.
isIOS
())
{
return
JSON
.
parse
(
callNativeApp
(
"getArchiveDetail"
,
{
"archiveId"
:
archiveId
}));
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
// TODO
return
JSON
.
parse
(
android
.
getArchiveDetail
(
archiveId
));
}
};
...
...
@@ -212,7 +212,7 @@ CHAT_DB.updateArchiveDetail = function(archiveId) {
if
(
CHAT_UTIL
.
isIOS
())
{
webkit
.
messageHandlers
.
updateArchiveDetail
.
postMessage
({
archiveId
});
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
// TODO
android
.
updateArchiveDetail
(
archiveId
);
}
};
...
...
@@ -231,4 +231,13 @@ CHAT_DB.getMyGroupUsersNotInRoom = function() {
//String形式をJsonに変更してReturn
return
JSON
.
parse
(
android
.
getMyGroupUsersNotInRoom
());
}
};
\ No newline at end of file
};
CHAT_DB
.
getUserInfo
=
function
(
shopMemberId
)
{
if
(
CHAT_UTIL
.
isIOS
())
{
//TODO IOS処理追加必要
}
else
if
(
CHAT_UTIL
.
isAndroid
())
{
//String形式をJsonに変更してReturn
return
JSON
.
parse
(
android
.
getUserInfo
(
shopMemberId
));
}
}
\ No newline at end of file
public_new/js/chat-ui.js
View file @
71a7c5c9
...
...
@@ -1202,7 +1202,8 @@ CHAT_UI.loadMessages = function(roomId, roomName) {
let
filterObj
=
jQuery
.
parseHTML
(
filterHtml
);
$
(
'#filter'
).
append
(
filterObj
);
var
checkBeforeDate
=
""
;
var
beforeDate
=
""
;
messages
.
forEach
(
function
(
message
)
{
let
template
=
userMessageTemplate
;
if
(
message
.
shopMemberId
==
CHAT
.
globalLoginParameter
.
shopMemberId
)
{
...
...
@@ -1232,6 +1233,19 @@ CHAT_UI.loadMessages = function(roomId, roomName) {
if
(
messageTime
.
createdAt
.
includes
(
':'
))
{
isToday
=
true
;
}
if
(
messageTime
.
createdAtDay
!=
checkBeforeDate
&&
checkBeforeDate
!=
""
)
{
let
messageDay
=
CHAT_UTIL
.
systemDay
(
beforeDate
);
let
html
=
Mustache
.
render
(
systemMessageTemplate
,
{
year
:
messageDay
.
year
+
getLocalizedString
(
'year'
),
month
:
messageDay
.
month
+
getLocalizedString
(
'month'
),
day
:
messageDay
.
day
+
getLocalizedString
(
'day'
),
dow
:
CHAT_UTIL
.
findDow
(
messageDay
.
dow
)
});
workVal
=
html
+
workVal
;
}
checkBeforeDate
=
messageTime
.
createdAtDay
;
beforeDate
=
message
.
insertDate
;
let
html
=
Mustache
.
render
(
template
,
{
text
:
message
.
message
,
...
...
@@ -1602,10 +1616,8 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// 初期化
$
(
'#archiveDetail'
).
html
(
''
);
// アーカイブ詳細の様式を読み込む
const
archiveDetailTemplate
=
$
(
'#archive-detail-template'
).
html
();
if
(
IS_ONLINE
==
'true'
)
{
CHAT_DB
.
updateArchiveDetail
(
archiveId
);
}
...
...
@@ -1615,19 +1627,20 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// チャットルーム情報を取得
var
roomId
=
archive
.
roomId
;
var
roomInfo
=
CHAT_DB
.
getChatRoomInfo
(
roomId
);
//保存ユーザ情報を取得
var
userInfo
=
CHAT_DB
.
getUserInfo
(
archive
.
saveUserId
);
userInfo
.
profileUrl
=
CHAT
.
getProfileImgUrl
(
userInfo
.
profileUrl
);
// アーカイブ情報を表示
var
html
=
Mustache
.
render
(
archiveDetailTemplate
,
{
fileName
:
"ファイル名"
,
insertDate
:
"2021/04/01 18:00"
,
chatRoomName
:
"チャットルーム名"
,
profileImage
:
"https://img01.suumo.com/front/gazo/chumon/220/67/main/10646700010021p01.jpg"
,
userName
:
"ユーザ名"
fileName
:
archive
.
archiveName
,
insertDate
:
archive
.
archiveDate
,
chatRoomName
:
archive
.
roomName
,
chatRoomId
:
archive
.
roomId
,
profileImage
:
userInfo
.
profileUrl
,
userName
:
userInfo
.
shopMembername
,
userId
:
userInfo
.
shopMemberId
});
var
obj
=
$
(
jQuery
.
parseHTML
(
html
)).
on
(
'click'
,
function
()
{
...
...
@@ -1635,18 +1648,23 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
$
(
'#archiveDetail'
).
append
(
obj
);
// プレイヤーの切り替え
var
archiveFilePath
=
CHAT
.
createGetDataUrl
(
archive
.
filePath
,
archive
.
roomId
);
switch
(
archive
.
archiveType
)
{
case
"0"
:
// 画像
$
(
'#archive_player'
).
prepend
(
'<img class="archive_player" src="https://img01.suumo.com/front/gazo/chumon/220/67/main/10646700010021p01.jpg" />'
);
case
0
:
$
(
'#archive_player'
).
prepend
(
'<img class="archive_player" src="'
+
archiveFilePath
+
'" />'
);
break
;
case
"1"
:
// 動画
$
(
'#archive_player'
).
prepend
(
'<video class="archive_player" src='
+
"https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4"
+
' controls autoplay muted playsinline></video>'
);
case
1
:
$
(
'#archive_player'
).
prepend
(
'<video class="archive_player" src='
+
archiveFilePath
+
' controls autoplay muted playsinline></video>'
);
break
;
case
"2"
:
// 音声
$
(
'#archive_player'
).
prepend
(
'<audio class="archive_audio_player" src='
+
archive
.
archiveUrl
+
' controls></audio>'
);
case
2
:
$
(
'#archive_player'
).
prepend
(
'<audio class="archive_audio_player" src='
+
archiveFilePath
+
' controls></audio>'
);
$
(
'#archive_player'
).
prepend
(
'<img class="archive_player" src='
+
"https://via.placeholder.com/1280x720"
+
' />'
);
break
;
case
"3"
:
// 文書
case
3
:
// リリースに文書とその他は含めないため今回は非表示
break
;
default
:
...
...
@@ -1658,33 +1676,22 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// 参加ユーザ情報を表示
let
attendUserList
=
archive
.
attendUserIds
;
if
(
CHAT_UTIL
.
isAndroid
())
{
attendUserList
=
JSON
.
parse
(
archive
.
attendUserIds
);
}
attendUserList
.
forEach
(
function
(
user
)
{
// TODO ユーザIDからユーザ情報を取得
var
userInfo
=
CHAT_DB
.
getUserInfo
(
user
);
userInfo
.
profileUrl
=
CHAT
.
getProfileImgUrl
(
userInfo
.
profileUrl
);
var
html
=
Mustache
.
render
(
archiveUserTemplate
,
{
profileImage
:
"https://img01.suumo.com/front/gazo/chumon/220/67/main/10646700010021p01.jpg"
,
userName
:
"ユーザ名"
profileImage
:
userInfo
.
profileUrl
,
userName
:
userInfo
.
shopMemberName
});
var
obj
=
$
(
jQuery
.
parseHTML
(
html
)).
on
(
'click'
,
function
()
{
// ネームカード表示
const
namecardTemplate
=
$
(
'#archive-namecard-template'
).
html
();
let
namecardHtml
=
Mustache
.
render
(
namecardTemplate
,
{
shopMemberId
:
1
,
profileImage
:
"https://img01.suumo.com/front/gazo/chumon/220/67/main/10646700010021p01.jpg"
,
name
:
"ユーザ名"
,
groupPathList
:
""
,
chat
:
getLocalizedString
(
"chat"
),
voice
:
getLocalizedString
(
"voice"
),
favorite
:
getLocalizedString
(
"addFavorite"
),
isFavorite
:
""
});
let
namecardObj
=
$
(
jQuery
.
parseHTML
(
namecardHtml
)).
on
(
'click'
,
function
()
{
});
$
(
'#userProfileModal'
).
html
(
namecardObj
);
$
(
'#userNameCard'
).
modal
(
'show'
);
CHAT_UI
.
makeNameCard
(
user
);
});
$
(
'#attendUser'
).
append
(
obj
);
...
...
public_new/js/chat-util.js
View file @
71a7c5c9
...
...
@@ -55,3 +55,37 @@ CHAT_UTIL.generateUUID = function() {
});
return
uuid
;
};
CHAT_UTIL
.
systemDay
=
function
(
date
)
{
let
createdAt
=
moment
(
date
);
createdAt
=
moment
(
date
,
'YYYYMMDDhhmmss'
);
const
createdAtDow
=
createdAt
.
format
(
'YYYY-MM-DD'
);
let
systemDay
=
new
Object
();
systemDay
.
year
=
createdAt
.
format
(
'YYYY'
);
systemDay
.
month
=
createdAt
.
format
(
'MM'
);
systemDay
.
day
=
createdAt
.
format
(
'DD'
);
systemDay
.
dow
=
moment
(
createdAtDow
).
day
();
return
systemDay
;
}
CHAT_UTIL
.
findDow
=
function
(
data
)
{
let
dow
=
""
;
if
(
data
==
0
)
{
dow
=
getLocalizedString
(
'sunday'
);
}
else
if
(
data
==
1
)
{
dow
=
getLocalizedString
(
'monday'
);
}
else
if
(
data
==
2
)
{
dow
=
getLocalizedString
(
'thusday'
);
}
else
if
(
data
==
3
)
{
dow
=
getLocalizedString
(
'wednesday'
);
}
else
if
(
data
==
4
)
{
dow
=
getLocalizedString
(
'thursday'
);
}
else
if
(
data
==
5
)
{
dow
=
getLocalizedString
(
'friday'
);
}
else
if
(
data
==
6
)
{
dow
=
getLocalizedString
(
'sunday'
);
}
return
dow
;
}
public_new/js/chat.js
View file @
71a7c5c9
...
...
@@ -169,6 +169,11 @@ CHAT.uploadImage = function(formData) {
})
}
CHAT
.
createGetDataUrl
=
function
(
fileName
,
roomId
)
{
var
filePath
=
CMS_SERVER_URL
+
'/chatapi/file/getImage?sid='
+
CHAT
.
globalLoginParameter
.
sid
+
'&fileName='
+
fileName
+
'&roomId='
+
roomId
;
return
filePath
;
}
// Thumbnailのファイルを生成する。
CHAT
.
createThumbnailAndUpload
=
function
(
sourceImage
,
callback
)
{
const
fileReader
=
new
FileReader
();
...
...
public_new/js/language_en.js
View file @
71a7c5c9
...
...
@@ -78,5 +78,15 @@ $.lang.en = {
"archiveSaveUser"
:
"Save User"
,
"archiveAttendUser"
:
"Attend User"
,
"noResult"
:
"there is no search result."
,
"searchUserAndGroup"
:
"search user and group."
"searchUserAndGroup"
:
"search user and group."
,
"year"
:
"year"
,
"month"
:
"month"
,
"day"
:
"day"
,
"monday"
:
"monday"
,
"thusday"
:
"thusday"
,
"wednesday"
:
"wednesday"
,
"thursday"
:
"thursday"
,
"friday"
:
"friday"
,
"saturday"
:
"saturday"
,
"sunday"
:
"sunday"
}
public_new/js/language_ja.js
View file @
71a7c5c9
...
...
@@ -78,5 +78,15 @@ $.lang.ja = {
"archiveSaveUser"
:
"保存ユーザー"
,
"archiveAttendUser"
:
"参加ユーザー"
,
"noResult"
:
"検索結果がありませんでした。"
,
"searchUserAndGroup"
:
"ユーザーとグループ検索"
"searchUserAndGroup"
:
"ユーザーとグループ検索"
,
"year"
:
"年"
,
"month"
:
"月"
,
"day"
:
"日"
,
"monday"
:
"月曜日"
,
"thusday"
:
"火曜日"
,
"wednesday"
:
"水曜日"
,
"thursday"
:
"木曜日"
,
"friday"
:
"金曜日"
,
"saturday"
:
"土曜日"
,
"sunday"
:
"日曜日"
}
public_new/js/language_ko.js
View file @
71a7c5c9
...
...
@@ -78,5 +78,15 @@ $.lang.ko = {
"archiveSaveUser"
:
"저장 사용자"
,
"archiveAttendUser"
:
"참여자"
,
"noResult"
:
"검색결과가 존재하지않습니다"
,
"searchUserAndGroup"
:
"유저,그룹 검색"
"searchUserAndGroup"
:
"유저,그룹 검색"
,
"year"
:
"년"
,
"month"
:
"월"
,
"day"
:
"일"
,
"monday"
:
"월요일"
,
"thusday"
:
"화요일"
,
"wednesday"
:
"수요일"
,
"thursday"
:
"목요일"
,
"friday"
:
"금요일"
,
"saturday"
:
"토요일"
,
"sunday"
:
"일요일"
}
public_new/template/template_system_message.html
View file @
71a7c5c9
<div
class=
"sys_msg text-center"
>
2021/03/04
</div>
\ No newline at end of file
<div
class=
"sys_msg text-center"
>
{{year}}{{month}}{{day}}
<span
class=
"dow"
>
{{dow}}
</span></div>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment