Commit 4dbca001 by Lee Munkyeong

Merge branch 'feature/abcomm_sp3_archive' into 'release_sp3'

Feature/abcomm sp3 archive

See merge request !40
parents 2a9e8193 bc275966
...@@ -50,11 +50,9 @@ ...@@ -50,11 +50,9 @@
<main id="archive"> <main id="archive">
<!-- 検索 --> <!-- 検索 -->
<div class="search_form"> <div class="search_form">
<form>
<input type="search" name="search" placeholder="検索"> <input type="search" name="search" placeholder="検索">
<span class="src_icon"></span> <span class="src_icon"></span>
<a href="#" class="cancel none">キャンセル</a> <a href="#" class="cancel none">キャンセル</a>
</form>
</div> </div>
<!-- アーカイブリスト --> <!-- アーカイブリスト -->
<div class="archive_list content"> <div class="archive_list content">
...@@ -161,7 +159,7 @@ ...@@ -161,7 +159,7 @@
PLATFORM = platform; PLATFORM = platform;
IS_MOBILE = isMobile; IS_MOBILE = isMobile;
IS_ONLINE = isOnline; IS_ONLINE = isOnline;
CHAT_UI.loadMessages(CHAT.globalLoginParameter.roomId, CHAT.globalLoginParameter.roomName); CHAT_UI.refreshArchiveScreen();
}; };
</script> </script>
</body> </body>
......
...@@ -16,16 +16,21 @@ ...@@ -16,16 +16,21 @@
<link rel="stylesheet" href="./css/footer.css"> <link rel="stylesheet" href="./css/footer.css">
<link rel="stylesheet" href="./css/font-awesome.css"> <link rel="stylesheet" href="./css/font-awesome.css">
<script> </head>
<script>
var archiveId;
window.addEventListener('DOMContentLoaded', function(){ window.addEventListener('DOMContentLoaded', function(){
var urlPrm = new Object; var urlPrm = new Object;
var urlSearch = location.search.substring(1).split('&'); var urlSearch = location.search.substring(1).split('&');
var kv = urlSearch[0].split('='); var kv = urlSearch[0].split('=');
urlPrm[kv[0]]=kv[1]; urlPrm[kv[0]]=kv[1];
CHAT_UI.refreshArchiveDetailScreen(urlPrm.archiveId); archiveId = urlPrm.archiveId
if (typeof(android) != "undefined") {
} else {
CHAT_UI.refreshArchiveDetailScreen(urlPrm.archiveId);
}
}); });
</script> </script>
</head>
<body> <body>
<!-- ナビメニュー --> <!-- ナビメニュー -->
...@@ -92,7 +97,7 @@ ...@@ -92,7 +97,7 @@
</div> </div>
<div class="archive_detail_room_nm item"> <div class="archive_detail_room_nm item">
<h2 class="ttl" id="archiveRoomName">ChatRoomName</h2> <h2 class="ttl" id="archiveRoomName">ChatRoomName</h2>
<span>{{chatRoomName}}</span> <span class="archive_chat_room">{{chatRoomName}}</span>
<button id="joinChatRoom"> <button id="joinChatRoom">
<img src="icon/icon_join_room.png" alt=""> <img src="icon/icon_join_room.png" alt="">
</button> </button>
...@@ -101,7 +106,7 @@ ...@@ -101,7 +106,7 @@
<h2 class="ttl" id="archiveSaveUser">SaveUser</h2> <h2 class="ttl" id="archiveSaveUser">SaveUser</h2>
<div class="d-flex flex-row"> <div class="d-flex flex-row">
<div class="d-flex flex-column"> <div class="d-flex flex-column">
<img src="{{profileImage}}" alt="プロフィール画像"> <img src="{{profileImage}}" alt="プロフィール画像" onclick="CHAT_UI.makeNameCard({{userId}})" >
<span>{{userName}}</span> <span>{{userName}}</span>
</div> </div>
</div> </div>
...@@ -188,6 +193,21 @@ ...@@ -188,6 +193,21 @@
let PLATFORM = ''; let PLATFORM = '';
let IS_MOBILE = true; let IS_MOBILE = true;
let IS_ONLINE = false; 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> </script>
</body> </body>
......
...@@ -121,6 +121,16 @@ ...@@ -121,6 +121,16 @@
width: 24px; width: 24px;
height: 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){ @media screen and (max-width: 768px){
.archive_name{ .archive_name{
font-size: 14px; font-size: 14px;
......
...@@ -3,16 +3,31 @@ var ARCHIVE_UI = {}; ...@@ -3,16 +3,31 @@ var ARCHIVE_UI = {};
$(function() { $(function() {
// アーカイブ検索 // アーカイブ検索
$('#archive .search_form input[type="search"]').keyup(function(){ $('#archive .search_form input[type="search"]').keyup(function(e) {
$('.overlay_src_msg').empty();
var keyword = $('#archive .search_form input[type="search"]').val(); var keyword = $('#archive .search_form input[type="search"]').val();
if (keyword == '') { if (e.KeyCode == 13 || e.key == "Enter") {
return; 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);
}); });
}); });
......
...@@ -178,7 +178,7 @@ CHAT_DB.getArchiveList = function() { ...@@ -178,7 +178,7 @@ CHAT_DB.getArchiveList = function() {
if (CHAT_UTIL.isIOS()) { if (CHAT_UTIL.isIOS()) {
return JSON.parse(callNativeApp("getArchiveList", {})); return JSON.parse(callNativeApp("getArchiveList", {}));
} else if (CHAT_UTIL.isAndroid()) { } else if (CHAT_UTIL.isAndroid()) {
// TODO return JSON.parse(android.getArchiveList());
} }
}; };
...@@ -186,7 +186,7 @@ CHAT_DB.updateArchiveList = function() { ...@@ -186,7 +186,7 @@ CHAT_DB.updateArchiveList = function() {
if (CHAT_UTIL.isIOS()) { if (CHAT_UTIL.isIOS()) {
webkit.messageHandlers.updateArchiveList.postMessage({}); webkit.messageHandlers.updateArchiveList.postMessage({});
} else if (CHAT_UTIL.isAndroid()) { } else if (CHAT_UTIL.isAndroid()) {
// TODO android.updateArchiveList();
} }
}; };
...@@ -195,7 +195,7 @@ CHAT_DB.getArchiveByName = function(archiveName) { ...@@ -195,7 +195,7 @@ CHAT_DB.getArchiveByName = function(archiveName) {
if (CHAT_UTIL.isIOS()) { if (CHAT_UTIL.isIOS()) {
return JSON.parse(callNativeApp("getArchiveByName", {"archiveName": archiveName})); return JSON.parse(callNativeApp("getArchiveByName", {"archiveName": archiveName}));
} else if (CHAT_UTIL.isAndroid()) { } else if (CHAT_UTIL.isAndroid()) {
// TODO return JSON.parse(android.getArchiveListByName(archiveName));
} }
}; };
...@@ -204,7 +204,7 @@ CHAT_DB.getArchiveDetail = function(archiveId) { ...@@ -204,7 +204,7 @@ CHAT_DB.getArchiveDetail = function(archiveId) {
if (CHAT_UTIL.isIOS()) { if (CHAT_UTIL.isIOS()) {
return JSON.parse(callNativeApp("getArchiveDetail", {"archiveId": archiveId})); return JSON.parse(callNativeApp("getArchiveDetail", {"archiveId": archiveId}));
} else if (CHAT_UTIL.isAndroid()) { } else if (CHAT_UTIL.isAndroid()) {
// TODO return JSON.parse(android.getArchiveDetail(archiveId));
} }
}; };
...@@ -212,7 +212,7 @@ CHAT_DB.updateArchiveDetail = function(archiveId) { ...@@ -212,7 +212,7 @@ CHAT_DB.updateArchiveDetail = function(archiveId) {
if (CHAT_UTIL.isIOS()) { if (CHAT_UTIL.isIOS()) {
webkit.messageHandlers.updateArchiveDetail.postMessage({archiveId}); webkit.messageHandlers.updateArchiveDetail.postMessage({archiveId});
} else if (CHAT_UTIL.isAndroid()) { } else if (CHAT_UTIL.isAndroid()) {
// TODO android.updateArchiveDetail(archiveId);
} }
}; };
...@@ -231,4 +231,13 @@ CHAT_DB.getMyGroupUsersNotInRoom = function() { ...@@ -231,4 +231,13 @@ CHAT_DB.getMyGroupUsersNotInRoom = function() {
//String形式をJsonに変更してReturn //String形式をJsonに変更してReturn
return JSON.parse(android.getMyGroupUsersNotInRoom()); 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
...@@ -1612,10 +1612,8 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) { ...@@ -1612,10 +1612,8 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// 初期化 // 初期化
$('#archiveDetail').html(''); $('#archiveDetail').html('');
// アーカイブ詳細の様式を読み込む // アーカイブ詳細の様式を読み込む
const archiveDetailTemplate = $('#archive-detail-template').html(); const archiveDetailTemplate = $('#archive-detail-template').html();
if (IS_ONLINE == 'true') { if (IS_ONLINE == 'true') {
CHAT_DB.updateArchiveDetail(archiveId); CHAT_DB.updateArchiveDetail(archiveId);
} }
...@@ -1625,24 +1623,20 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) { ...@@ -1625,24 +1623,20 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// チャットルーム情報を取得 // チャットルーム情報を取得
var roomId = archive.roomId; var roomId = archive.roomId;
var roomInfo = CHAT_DB.getChatRoomInfo(roomId);
// アーカイブ情報を表示 //保存ユーザ情報を取得
// let html = Mustache.render(archiveDetailTemplate, { var userInfo = CHAT_DB.getUserInfo(archive.saveUserId);
// fileName: archive.archiveName, userInfo.profileUrl = CHAT.getProfileImgUrl(userInfo.profileUrl);
// insertDate: archive.archiveDate,
// chatRoomName: roomInfo.chatRoomName,
// profileImage: "",
// userName: userName
// });
// アーカイブ情報を表示 // アーカイブ情報を表示
var html = Mustache.render(archiveDetailTemplate, { var html = Mustache.render(archiveDetailTemplate, {
fileName: "ファイル名", fileName: archive.archiveName,
insertDate: "2021/04/01 18:00", insertDate: archive.archiveDate,
chatRoomName: "チャットルーム名", chatRoomName: archive.roomName,
profileImage: "https://img01.suumo.com/front/gazo/chumon/220/67/main/10646700010021p01.jpg", chatRoomId: archive.roomId,
userName: "ユーザ名" profileImage: userInfo.profileUrl,
userName: userInfo.shopMembername,
userId: userInfo.shopMemberId
}); });
var obj = $(jQuery.parseHTML(html)).on('click', function() { var obj = $(jQuery.parseHTML(html)).on('click', function() {
...@@ -1650,18 +1644,23 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) { ...@@ -1650,18 +1644,23 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
$('#archiveDetail').append(obj); $('#archiveDetail').append(obj);
// プレイヤーの切り替え // プレイヤーの切り替え
var archiveFilePath = CHAT.createGetDataUrl(archive.filePath, archive.roomId);
switch(archive.archiveType) { switch(archive.archiveType) {
case "0": // 画像 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; break;
case "1": // 動画 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; break;
case "2": // 音声 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" + ' />'); $('#archive_player').prepend('<img class="archive_player" src=' + "https://via.placeholder.com/1280x720" + ' />');
break; break;
case "3": // 文書 case "3": // 文書
case 3:
// リリースに文書とその他は含めないため今回は非表示 // リリースに文書とその他は含めないため今回は非表示
break; break;
default: default:
...@@ -1673,33 +1672,22 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) { ...@@ -1673,33 +1672,22 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// 参加ユーザ情報を表示 // 参加ユーザ情報を表示
let attendUserList = archive.attendUserIds; let attendUserList = archive.attendUserIds;
if (CHAT_UTIL.isAndroid()) {
attendUserList = JSON.parse(archive.attendUserIds);
}
attendUserList.forEach(function(user) { attendUserList.forEach(function(user) {
// TODO ユーザIDからユーザ情報を取得
var userInfo = CHAT_DB.getUserInfo(user);
userInfo.profileUrl = CHAT.getProfileImgUrl(userInfo.profileUrl);
var html = Mustache.render(archiveUserTemplate, { var html = Mustache.render(archiveUserTemplate, {
profileImage: "https://img01.suumo.com/front/gazo/chumon/220/67/main/10646700010021p01.jpg", profileImage: userInfo.profileUrl,
userName: "ユーザ名" userName: userInfo.shopMemberName
}); });
var obj = $(jQuery.parseHTML(html)).on('click', function() { var obj = $(jQuery.parseHTML(html)).on('click', function() {
// ネームカード表示 // ネームカード表示
const namecardTemplate = $('#archive-namecard-template').html(); CHAT_UI.makeNameCard(user);
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');
}); });
$('#attendUser').append(obj); $('#attendUser').append(obj);
...@@ -1709,13 +1697,7 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) { ...@@ -1709,13 +1697,7 @@ CHAT_UI.refreshArchiveDetailScreen = function(archiveId) {
// チャットルームへのリンク付け // チャットルームへのリンク付け
document.getElementById('joinChatRoom').onclick = function() { document.getElementById('joinChatRoom').onclick = function() {
// socket.emit('joinRoom', roomId, roomInfo.chatRoomName, function () { CHAT_UI.joinRoom(archive.roomId, archive.roomName);
// $('#archive_detail').html('');
// $('#messages').html('');
// $('.titleRoomName').text(roomInfo.chatRoomName).data('roomName', roomInfo.chatRoomName);
// $('#pills-chat-tab').tab('show');
// });
console.log("遷移");
} }
// loadingIndicatorを非表示 // loadingIndicatorを非表示
......
...@@ -165,6 +165,11 @@ CHAT.uploadImage = function(formData) { ...@@ -165,6 +165,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のファイルを生成する。 // Thumbnailのファイルを生成する。
CHAT.createThumbnailAndUpload = function(sourceImage, callback) { CHAT.createThumbnailAndUpload = function(sourceImage, callback) {
const fileReader = new FileReader(); const fileReader = new FileReader();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment