Commit f5246fcd by Lee Munkyeong

add Dao, Js file

parent c73df9b5
package jp.agentec.abook.abv.bl.data.dao;
import java.util.List;
import jp.agentec.abook.abv.bl.common.db.Cursor;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.ArchiveDto;
import jp.agentec.abook.abv.bl.dto.ChatMessageDto;
import jp.agentec.abook.abv.bl.dto.CollaborationDto;
public class ArchiveDao extends AbstractDao {
/**
* {@link ArchiveDao} のインスタンスを初期化します。
* アンドロイドの android.content.Context のインスタンス
* @throws ClassCastException 引数のcontextが android.content.Context 又は、その継承クラスではありません。
* @since 1.0.0
*/
/*package*/ ArchiveDao() {
}
@Override
protected ArchiveDto convert(Cursor cursor) {
ArchiveDto dto = new ArchiveDto();
int column = cursor.getColumnIndex("archive_id");
if (column != -1) {
dto.archiveId = cursor.getInt(column);
}
column = cursor.getColumnIndex("archive_name");
if (column != -1) {
dto.archiveName = cursor.getString(column);
}
column = cursor.getColumnIndex("archive_type");
if (column != -1) {
dto.archiveType = cursor.getInt(column);
}
column = cursor.getColumnIndex("archive_url");
if (column != -1) {
dto.archiveUrl = cursor.getString(column);
}
column = cursor.getColumnIndex("collaboration_id");
if (column != -1) {
dto.collaborationId = cursor.getInt(column);
}
column = cursor.getColumnIndex("shop_member_id");
if (column != -1) {
dto.shopMemberId = cursor.getInt(column);
}
column = cursor.getColumnIndex("archive_save_path");
if (column != -1) {
dto.archiveSavePath = cursor.getString(column);
}
return dto;
}
public List<ArchiveDto> getArchive(int archiveId) {
List<ArchiveDto> list = rawQueryGetDtoList("select * from t_archive where archive_id = ?", new String[]{""+ archiveId}, ArchiveDto.class);
return list;
}
public void insertArchive(ArchiveDto dto) {
insert("insert into t_archive (archive_id, archive_name, archive_type, archive_url, collaboration_id, shop_member_id, archive_save_path) values (?,?)", dto.getInsertValues());
}
public boolean updateArchive(ArchiveDto dto) {
long count = update("update t_archive set archive_name=?, archive_type=?, archive_url=?, collaboration_id=?, shop_member_id=?, archive_save_path=? where archive_id=?", dto.getUpdateValues());
return count > 0;
}
public void deleteArchive() {
try {
beginTransaction();
delete("t_archive", null, null);
commit();
} catch (Exception e) {
rollback();
Logger.e("deleteArchive failed.", e);
throw new RuntimeException(e);
}
}
}
package jp.agentec.abook.abv.bl.data.dao;
import java.util.List;
import jp.agentec.abook.abv.bl.common.db.Cursor;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.ChatMessageDto;
import jp.agentec.abook.abv.bl.dto.ChatRoomDto;
public class ChatMessageDao extends AbstractDao {
/**
* {@link ChatMessageDao} のインスタンスを初期化します。
* アンドロイドの android.content.Context のインスタンス
* @throws ClassCastException 引数のcontextが android.content.Context 又は、その継承クラスではありません。
* @since 1.0.0
*/
/*package*/ ChatMessageDao() {
}
@Override
protected ChatMessageDto convert(Cursor cursor) {
ChatMessageDto dto = new ChatMessageDto();
int column = cursor.getColumnIndex("chat_message_id");
if (column != -1) {
dto.chatMessageId = cursor.getInt(column);
}
column = cursor.getColumnIndex("chat_room_id");
if (column != -1) {
dto.chatRoomId = cursor.getInt(column);
}
column = cursor.getColumnIndex("shop_member_id");
if (column != -1) {
dto.shopMemberId = cursor.getInt(column);
}
column = cursor.getColumnIndex("message");
if (column != -1) {
dto.message = cursor.getString(column);
}
column = cursor.getColumnIndex("message_type");
if (column != -1) {
dto.messageType = cursor.getInt(column);
}
column = cursor.getColumnIndex("image_name");
if (column != -1) {
dto.imageName = cursor.getString(column);
}
column = cursor.getColumnIndex("download_file_name");
if (column != -1) {
dto.downloadFileName = cursor.getString(column);
}
column = cursor.getColumnIndex("save_path");
if (column != -1) {
dto.savePath = cursor.getString(column);
}
return dto;
}
public List<ChatMessageDto> getChatMessage(int chatRoomId) {
List<ChatMessageDto> list = rawQueryGetDtoList("select * from t_chat_message where chat_room_id = ?", new String[]{""+ chatRoomId}, ChatMessageDto.class);
return list;
}
public void insertChatMessage(ChatMessageDto dto) {
insert("insert into t_chat_message (chat_message_id, chat_room_id, shop_member_id, message, message_type, image_name, download_file_name, save_path) values (?,?,?,?,?,?,?,?)", dto.getInsertValues());
}
public boolean updateChatMessage(ChatMessageDto dto) {
long count = update("update t_chat_message set chat_room_id=?, shop_member_id=?, message=?, message_type=?, image_name=?, download_file_name=?, save_path=? where chat_message_id=?", dto.getUpdateValues());
return count > 0;
}
public void deleteChatMessage() {
try {
beginTransaction();
delete("t_chat_message", null, null);
commit();
} catch (Exception e) {
rollback();
Logger.e("deleteChatMessage failed.", e);
throw new RuntimeException(e);
} finally {
}
}
}
package jp.agentec.abook.abv.bl.data.dao;
import java.util.List;
import jp.agentec.abook.abv.bl.common.db.Cursor;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.ChatMessageDto;
import jp.agentec.abook.abv.bl.dto.CollaborationDto;
public class CollaborationDao extends AbstractDao {
/**
* {@link CollaborationDao} のインスタンスを初期化します。
* アンドロイドの android.content.Context のインスタンス
* @throws ClassCastException 引数のcontextが android.content.Context 又は、その継承クラスではありません。
* @since 1.0.0
*/
/*package*/ CollaborationDao() {
}
@Override
protected CollaborationDto convert(Cursor cursor) {
CollaborationDto dto = new CollaborationDto();
int column = cursor.getColumnIndex("collaboration_id");
if (column != -1) {
dto.collaborationId = cursor.getInt(column);
}
column = cursor.getColumnIndex("chat_message_id");
if (column != -1) {
dto.chatMessageId = cursor.getInt(column);
}
return dto;
}
public List<CollaborationDto> getCollaboration(int collaborationId) {
List<CollaborationDto> list = rawQueryGetDtoList("select * from t_collaboration where collaboration_id = ?", new String[]{""+ collaborationId}, CollaborationDto.class);
return list;
}
public void insertCollaboration(CollaborationDto dto) {
insert("insert into t_collaboration (collaboration_id, chat_message_id) values (?,?)", dto.getInsertValues());
}
public void deleteCollaboration() {
try {
beginTransaction();
delete("t_collaboration", null, null);
commit();
} catch (Exception e) {
rollback();
Logger.e("deleteCollaboration failed.", e);
throw new RuntimeException(e);
}
}
}
package jp.agentec.abook.abv.bl.data.dao;
import java.util.List;
import jp.agentec.abook.abv.bl.common.db.Cursor;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.CollaborationDetailDto;
public class CollaborationDetailDao extends AbstractDao {
/**
* {@link CollaborationDetailDao} のインスタンスを初期化します。
* アンドロイドの android.content.Context のインスタンス
* @throws ClassCastException 引数のcontextが android.content.Context 又は、その継承クラスではありません。
* @since 1.0.0
*/
/*package*/ CollaborationDetailDao() {
}
@Override
protected CollaborationDetailDto convert(Cursor cursor) {
CollaborationDetailDto dto = new CollaborationDetailDto();
int column = cursor.getColumnIndex("collaboration_detial_id");
if (column != -1) {
dto.collaborationDetialId = cursor.getInt(column);
}
column = cursor.getColumnIndex("collaboration_id");
if (column != -1) {
dto.collaborationId = cursor.getInt(column);
}
column = cursor.getColumnIndex("collaboration_type");
if (column != -1) {
dto.collaborationType = cursor.getInt(column);
}
column = cursor.getColumnIndex("collaboration_duration");
if (column != -1) {
dto.collaborationDuration = cursor.getString(column);
}
return dto;
}
public List<CollaborationDetailDto> getCollaborationDetail(int collaborationDetialId) {
List<CollaborationDetailDto> list = rawQueryGetDtoList("select * from t_collaboration_detail where collaboration_detial_id = ?", new String[]{""+ collaborationDetialId}, CollaborationDetailDto.class);
return list;
}
public void insertCollaborationDetail(CollaborationDetailDto dto) {
insert("insert into t_collaboration_detail (collaboration_detial_id, collaboration_id, collaboration_type, collaboration_duration) values (?,?,?,?)", dto.getInsertValues());
}
public void deleteCollaborationDetail() {
try {
beginTransaction();
delete("t_collaboration_detail", null, null);
commit();
} catch (Exception e) {
rollback();
Logger.e("deleteCollaborationDetail failed.", e);
throw new RuntimeException(e);
}
}
}
...@@ -21,10 +21,10 @@ public class TChatMessage extends SQLiteTableScript { ...@@ -21,10 +21,10 @@ public class TChatMessage extends SQLiteTableScript {
sql.append(" , shop_member_id INTEGER NOT NULL "); sql.append(" , shop_member_id INTEGER NOT NULL ");
sql.append(" , message VARCHAR2 "); sql.append(" , message VARCHAR2 ");
sql.append(" , message_type INTEGER "); sql.append(" , message_type INTEGER ");
sql.append(" , link_url VARCHAR2 "); sql.append(" , image_name VARCHAR2 ");
sql.append(" , download_file_name VARCHAR2 ");
sql.append(" , save_path VARCHAR2 ");
sql.append(" , PRIMARY KEY (chat_message_id) "); sql.append(" , PRIMARY KEY (chat_message_id) ");
sql.append(" , FOREIGN KEY (chat_room_id) REFERENCES t_chat_room (chat_room_id) ");
sql.append(" , FOREIGN KEY (shop_member_id) REFERENCES m_shop_member (shop_member_id) ");
sql.append(" ) "); sql.append(" ) ");
ddl.add(sql.toString()); ddl.add(sql.toString());
......
...@@ -19,7 +19,6 @@ public class TCollaboration extends SQLiteTableScript { ...@@ -19,7 +19,6 @@ public class TCollaboration extends SQLiteTableScript {
sql.append(" collaboration_id INTEGER NOT NULL "); sql.append(" collaboration_id INTEGER NOT NULL ");
sql.append(" , chat_message_id INTEGER NOT NULL "); sql.append(" , chat_message_id INTEGER NOT NULL ");
sql.append(" , PRIMARY KEY (collaboration_id)"); sql.append(" , PRIMARY KEY (collaboration_id)");
sql.append(" , FOREIGN KEY (chat_message_id) REFERENCES t_chat_message (chat_message_id) ");
sql.append(" ) "); sql.append(" ) ");
ddl.add(sql.toString()); ddl.add(sql.toString());
......
package jp.agentec.abook.abv.bl.dto; package jp.agentec.abook.abv.bl.dto;
public class ArchiveDto extends AbstractDto { public class ArchiveDto extends AbstractDto {
public Integer archiveId; public Integer archiveId;
public String archiveName; public String archiveName;
public Integer archiveType; public Integer archiveType;
public String archiveUrl; public String archiveUrl;
public Integer collaborationId; public Integer collaborationId;
public Integer shop_memberId; public Integer shopMemberId;
public String archiveSavePath; public String archiveSavePath;
@Override @Override
public Object[] getInsertValues() { public Object[] getInsertValues() {
return new Object[]{archiveId, archiveName, archiveType, archiveUrl, collaborationId, shop_memberId, archiveSavePath}; return new Object[]{archiveId, archiveName, archiveType, archiveUrl, collaborationId, shopMemberId, archiveSavePath};
} }
@Override @Override
public Object[] getUpdateValues() { public Object[] getUpdateValues() {
return new Object[]{archiveSavePath, archiveName, archiveType, archiveUrl, collaborationId, shop_memberId, archiveId}; return new Object[]{archiveName, archiveType, archiveUrl, collaborationId, shopMemberId,archiveSavePath, archiveId};
} }
@Override @Override
......
...@@ -6,17 +6,18 @@ public class ChatMessageDto extends AbstractDto { ...@@ -6,17 +6,18 @@ public class ChatMessageDto extends AbstractDto {
public Integer shopMemberId; public Integer shopMemberId;
public String message; public String message;
public Integer messageType; public Integer messageType;
public String linkUrl; public String imageName;
public String downloadFileName;
public String savePath;
@Override @Override
public Object[] getInsertValues() { public Object[] getInsertValues() {
return new Object[]{chatMessageId, chatRoomId, shopMemberId, shopMemberId, message, messageType, linkUrl}; return new Object[]{chatMessageId, chatRoomId, shopMemberId, message, messageType, imageName, downloadFileName, savePath};
} }
@Override @Override
public Object[] getUpdateValues() { public Object[] getUpdateValues() {
return new Object[]{chatRoomId, shopMemberId, shopMemberId, message, messageType, linkUrl, chatMessageId}; return new Object[]{chatRoomId, shopMemberId, message, messageType, imageName, downloadFileName, savePath, chatMessageId};
} }
@Override @Override
......
package jp.agentec.abook.abv.bl.logic;
import org.json.adf.JSONArray;
import org.json.adf.JSONObject;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import jdk.nashorn.internal.parser.JSONParser;
import jp.agentec.abook.abv.bl.acms.client.AcmsClient;
import jp.agentec.abook.abv.bl.acms.client.json.DownloadedContentInfoJSON;
import jp.agentec.abook.abv.bl.acms.client.json.content.ContentJSON;
import jp.agentec.abook.abv.bl.acms.client.parameters.AcmsContentCheckParameters;
import jp.agentec.abook.abv.bl.common.ABVEnvironment;
import jp.agentec.abook.abv.bl.common.exception.AcmsException;
import jp.agentec.abook.abv.bl.common.exception.NetworkDisconnectedException;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.common.util.ContentFileUtil;
import jp.agentec.abook.abv.bl.common.util.JsonUtil;
import jp.agentec.abook.abv.bl.data.dao.AbstractDao;
import jp.agentec.abook.abv.bl.data.dao.ChatRoomDao;
import jp.agentec.abook.abv.bl.data.dao.ContentCategoryDao;
import jp.agentec.abook.abv.bl.data.dao.ContentDao;
import jp.agentec.abook.abv.bl.data.dao.ContentGroupDao;
import jp.agentec.abook.abv.bl.data.dao.ContentMarkingDao;
import jp.agentec.abook.abv.bl.data.dao.ContentPageDao;
import jp.agentec.abook.abv.bl.data.dao.ContentResourceDao;
import jp.agentec.abook.abv.bl.data.dao.ContentTagDao;
import jp.agentec.abook.abv.bl.dto.ChatRoomDto;
import jp.agentec.abook.abv.bl.dto.ContentDto;
import jp.agentec.abook.abv.bl.dto.ContentPageDto;
import jp.agentec.abook.abv.bl.dto.ContentTagDto;
import jp.agentec.abook.abv.bl.dto.comparator.ContentPageDtoComparator;
import jp.agentec.adf.util.FileUtil;
import jp.agentec.adf.util.StringUtil;
/**
* @author Lee-mk
*/
public class CommunicationLogic extends AbstractLogic {
private static final String TAG = "CommunicationLogic";
private ChatRoomDao chatRoomDao = AbstractDao.getDao(ChatRoomDao.class);
/**
* {@link CommunicationLogic} クラスのインスタンスを初期化します。
* context Androidとの互換性の為のプロパティです。Androidの android.content.Context のインスタンスを指定します。<br>
* UIがAndroidでない場合、何かのオブジェクトを指定しても、nullと見なします。
* @see AbstractLogic
* @since 1.2.3.6
*/
/*package*/ CommunicationLogic() {
}
public String getChatRoomList() {
List<ChatRoomDto> chatRoomList = chatRoomDao.getAllChatRoom();
JSONArray resultJsonArray = new JSONArray();
for (ChatRoomDto chatRoomDto : chatRoomList) {
Map<String, Object> chatRoomMap = new HashMap<String, Object>();
chatRoomMap.put("chatRoomId",chatRoomDto.chatRoomId);
chatRoomMap.put("chatRoomName",chatRoomDto.chatRoomName);
chatRoomMap.put("type",chatRoomDto.type);
JSONObject jsonObject =new JSONObject(chatRoomMap);
resultJsonArray.put(jsonObject);
}
String testStr1 = resultJsonArray.toString();
return testStr1;
}
}
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
let ASSET_PATH = './'; let ASSET_PATH = './';
let PLATFORM = ''; let PLATFORM = '';
let IS_MOBILE = true; let IS_MOBILE = true;
let IS_ONLINE = true; let IS_ONLINE = false;
function getGlobalParam(chatServerUrl, cmsServerUrl, platform, isMobile, isOnline) { function getGlobalParam(chatServerUrl, cmsServerUrl, platform, isMobile, isOnline) {
console.log('TEST get GP'); console.log('TEST get GP');
......
// 名前空間
var CHAT_DB = {};
//ロカールDBからルーム一覧情報を取得
CHAT_DB.getRoomList = function(input) {
if (CHAT_UTIL.isIOS()) {
//TODO IOS処理追加必要
} else (CHAT_UTIL.isAndroid()) {
//String形式をJsonに変更してReturn
return JSON.parse(android.getRoomList());
}
}
\ No newline at end of file
...@@ -764,4 +764,92 @@ CHAT_UI.waitForLoadingImage = function(div, callback) { ...@@ -764,4 +764,92 @@ CHAT_UI.waitForLoadingImage = function(div, callback) {
} }
}); });
} }
\ No newline at end of file
CHAT_UI.refreshRoomList = function(rooms, activeRoomId = null){
CHAT.globalIsInvite = false;
// #36146に対応
let keywordSearchMode = false;
if ($('#room-search').val().length > 0) {
keywordSearchMode = true;
}
$('#room_list').html('');
let roomListTitle = getLocalizedString("roomListTitle");
$('.titleRoomName').text(roomListTitle);
if (rooms.length === 0) {
// 検索結果がない場合のメッセージを追加
if (!keywordSearchMode) {
let emptyListString = getLocalizedString("roomListEmptyString")
$('#room_list').append(`<center class="text-secondary">${emptyListString}</center>`);
} else {
let emptyListString = getLocalizedString("searchRoomListEmptyString")
$('#room_list').append(`<center class="text-secondary">${emptyListString}</center>`);
}
}
// チャットルームの様式を読み込む
const template = $('#room-template').html();
rooms.forEach( function(room) {
room.profileImagePath = ASSET_PATH + 'images/user-profile.png'
if (room.message) {
room.message = room.message.toString()
} else {
room.message = getLocalizedString("noMessages")
}
let html = Mustache.render(template, {
roomName: room.roomName,
roomId: room.roomId,
profileImage: room.profileImagePath,
active: activeRoomId === room.roomId ? 'active_chat' : null, // 現在、入っているルームだとhilight表示
lastMessage: room.message.includes('<img') ? getLocalizedString("image") : (keywordSearchMode ? `${room.message}${getLocalizedString("searchResult")}` : room.message) ,
time: room.time ? CHAT_UTIL.formatDate(room.time.time).createdAt : '',
unreadMsgCnt: room.unreadCnt,
userCnt: room.userCnt
});
// Click event
let obj = $(jQuery.parseHTML(html)).on('click',function(){
if (activeRoomId === room.roomId) {
// 既存チャットルームをタッチする場合、チャット画面に遷移
$('#pills-chat-tab').tab('show');
} else {
// loadingIndicatorを表示しない
CHAT_UI.showLoadingIndicator();
// 新しいチャットルームをタッチする場合、チャットルームの接続処理を実行
socket.emit('joinRoom', room.roomId, room.roomName, function (){
CHAT.saveRoomInfo(room.roomId, room.roomName);
$('#messages').html('');
// チャットルーム名を変更する
$('.titleRoomName').text(room.roomName).data('roomName', room.roomName);
});
}
});
// チャットルームリストに追加する
$('#room_list').append(obj);
});
if(rooms.length > 0) {
if(!keywordSearchMode) {
$(".roomListIcon").show()
$('#roomDeleteButton, #arrangeRooms').show()
} else {
$(".roomListIcon").show()
$('#roomDeleteButton, #arrangeRooms').hide()
}
} else {
if(!keywordSearchMode) {
$(".roomListIcon").hide()
} else {
$(".roomListIcon").show()
$('#roomDeleteButton, #arrangeRooms').hide()
}
}
$('#createChatRoom').show()
if(CHAT_UI.isLandscapeMode()) {
$(".chat_list").removeClass("col-12").addClass("col-6");
}
$("#userSelectionDeleteBtn").hide();
// チャットルームリスト画面に遷移
$('#pills-chatlist-tab').tab('show');
// loadingIndicatorを表示しない
CHAT_UI.dismissLoadingIndicator();
};
var socket = io(CHAT_SERVER_URL); console.log('isOnlineRead');
console.log(IS_ONLINE);
var socket;
connectSocket(IS_ONLINE);
function connectSocket(isOnline) {
console.log(isOnline);
if (isOnline == 'true') {
socket = io(CHAT_SERVER_URL);
setSocketAction();
} else {
//オフラインの場合、DBからルーム一覧を表示。
if (CHAT_UTIL.isIOS()) {
//TODO IOSの場合
} else if (CHAT_UTIL.isAndroid()) {
var result = CHAT_DB.getRoomList();
console.log(result);
}
}
}
/* --------------------------------------------------- /* ---------------------------------------------------
* Socket Connect/Disconnect * Socket Connect/Disconnectc
* --------------------------------------------------- */ * --------------------------------------------------- */
function setSocketAction () {
socket.on('connect', function (){ socket.on('connect', function (){
// socketが接続されたらチャット画面で画面を更新する console.log('connect');
$('.overlay').removeClass('active undismissable'); // socketが接続されたらチャット画面で画面を更新する
// loadingIndicatorを表示 $('.overlay').removeClass('active undismissable');
CHAT_UI.showLoadingIndicator(); // loadingIndicatorを表示
// チャットルームに入場する際、sid, loginId, shopName, roomId, roomNameの情報を取得しNodeJsに渡す CHAT_UI.showLoadingIndicator();
if (CHAT_UTIL.isIOS()) { // チャットルームに入場する際、sid, loginId, shopName, roomId, roomNameの情報を取得しNodeJsに渡す
webkit.messageHandlers.loginInfoRequestMessageHandlerId.postMessage({}); if (CHAT_UTIL.isIOS()) {
} else if (CHAT_UTIL.isAndroid()) { webkit.messageHandlers.loginInfoRequestMessageHandlerId.postMessage({});
android.getLoginParameter(); } else if (CHAT_UTIL.isAndroid()) {
} android.getLoginParameter();
}); }
});
socket.on('disconnect', function (){
//socketが切断されたら黒画面で画面を更新する socket.on('disconnect', function (){
$('.overlay').addClass('active undismissable'); console.log('disconnect');
//alert('Disconnected from the server'); //socketが切断されたら黒画面で画面を更新する
CHAT_UI.dismissLoadingIndicator(); $('.overlay').addClass('active undismissable');
}); //alert('Disconnected from the server');
CHAT_UI.dismissLoadingIndicator();
socket.on('connect_error', function (){ });
// $('.overlay').addClass('active undismissable');
// #36174 socket.on('connect_error', function (){
// $("#customAlertTitle").text(getLocalizedString("errorConnect")); console.log('connect_error');
// $("#customAlertOk").text(getLocalizedString("yesTitle")); // $('.overlay').addClass('active undismissable');
// // #36174
// $('#customAlert').appendTo("body").modal({ // $("#customAlertTitle").text(getLocalizedString("errorConnect"));
// backdrop: 'static', // $("#customAlertOk").text(getLocalizedString("yesTitle"));
// keyboard: false //
// }) // $('#customAlert').appendTo("body").modal({
// .on('click', '#customAlertOk', function(e) { // backdrop: 'static',
// }); // keyboard: false
CHAT_UI.dismissLoadingIndicator(); // })
}); // .on('click', '#customAlertOk', function(e) {
// });
/* ---------------------------------------------------------------------- CHAT_UI.dismissLoadingIndicator();
* });
* Chat Room List Tab
* /* ----------------------------------------------------------------------
* ---------------------------------------------------------------------- */ *
* Chat Room List Tab
// Update Room List *
socket.on('refreshRoomList', function(rooms, activeRoomId = null){ * ---------------------------------------------------------------------- */
CHAT.globalIsInvite = false;
// Update Room List
socket.on('refreshRoomList', function(rooms, activeRoomId = null){
// #36146に対応 CHAT.globalIsInvite = false;
let keywordSearchMode = false;
if ($('#room-search').val().length > 0) {
keywordSearchMode = true; // #36146に対応
} let keywordSearchMode = false;
if ($('#room-search').val().length > 0) {
$('#room_list').html(''); keywordSearchMode = true;
let roomListTitle = getLocalizedString("roomListTitle"); }
$('.titleRoomName').text(roomListTitle);
$('#room_list').html('');
if (rooms.length === 0) { let roomListTitle = getLocalizedString("roomListTitle");
// #36146に対応 $('.titleRoomName').text(roomListTitle);
// 検索結果がない場合のメッセージを追加
if (!keywordSearchMode) { if (rooms.length === 0) {
let emptyListString = getLocalizedString("roomListEmptyString") // #36146に対応
$('#room_list').append(`<center class="text-secondary">${emptyListString}</center>`); // 検索結果がない場合のメッセージを追加
} else { if (!keywordSearchMode) {
let emptyListString = getLocalizedString("searchRoomListEmptyString") let emptyListString = getLocalizedString("roomListEmptyString")
$('#room_list').append(`<center class="text-secondary">${emptyListString}</center>`); $('#room_list').append(`<center class="text-secondary">${emptyListString}</center>`);
} } else {
} let emptyListString = getLocalizedString("searchRoomListEmptyString")
$('#room_list').append(`<center class="text-secondary">${emptyListString}</center>`);
// チャットルームの様式を読み込む }
const template = $('#room-template').html(); }
rooms.forEach( function(room) { // チャットルームの様式を読み込む
room.profileImagePath = ASSET_PATH + 'images/user-profile.png' const template = $('#room-template').html();
if (room.message) { rooms.forEach( function(room) {
room.message = room.message.toString() room.profileImagePath = ASSET_PATH + 'images/user-profile.png'
} else {
room.message = getLocalizedString("noMessages") if (room.message) {
} room.message = room.message.toString()
} else {
let html = Mustache.render(template, { room.message = getLocalizedString("noMessages")
roomName: room.roomName, }
roomId: room.roomId,
profileImage: room.profileImagePath, let html = Mustache.render(template, {
active: activeRoomId === room.roomId ? 'active_chat' : null, // 現在、入っているルームだとhilight表示 roomName: room.roomName,
lastMessage: room.message.includes('<img') ? getLocalizedString("image") : (keywordSearchMode ? `${room.message}${getLocalizedString("searchResult")}` : room.message) , roomId: room.roomId,
time: room.time ? CHAT_UTIL.formatDate(room.time.time).createdAt : '', profileImage: room.profileImagePath,
unreadMsgCnt: room.unreadCnt, active: activeRoomId === room.roomId ? 'active_chat' : null, // 現在、入っているルームだとhilight表示
userCnt: room.userCnt lastMessage: room.message.includes('<img') ? getLocalizedString("image") : (keywordSearchMode ? `${room.message}${getLocalizedString("searchResult")}` : room.message) ,
}); time: room.time ? CHAT_UTIL.formatDate(room.time.time).createdAt : '',
unreadMsgCnt: room.unreadCnt,
// Click event userCnt: room.userCnt
let obj = $(jQuery.parseHTML(html)).on('click',function(){ });
if (activeRoomId === room.roomId) {
// 既存チャットルームをタッチする場合、チャット画面に遷移 // Click event
$('#pills-chat-tab').tab('show'); let obj = $(jQuery.parseHTML(html)).on('click',function(){
} else { if (activeRoomId === room.roomId) {
// loadingIndicatorを表示しない // 既存チャットルームをタッチする場合、チャット画面に遷移
CHAT_UI.showLoadingIndicator(); $('#pills-chat-tab').tab('show');
// 新しいチャットルームをタッチする場合、チャットルームの接続処理を実行 } else {
socket.emit('joinRoom', room.roomId, room.roomName, function (){ // loadingIndicatorを表示しない
CHAT.saveRoomInfo(room.roomId, room.roomName); CHAT_UI.showLoadingIndicator();
$('#messages').html(''); // 新しいチャットルームをタッチする場合、チャットルームの接続処理を実行
// チャットルーム名を変更する socket.emit('joinRoom', room.roomId, room.roomName, function (){
$('.titleRoomName').text(room.roomName).data('roomName', room.roomName); CHAT.saveRoomInfo(room.roomId, room.roomName);
}); $('#messages').html('');
} // チャットルーム名を変更する
}); $('.titleRoomName').text(room.roomName).data('roomName', room.roomName);
// チャットルームリストに追加する });
$('#room_list').append(obj); }
}); });
// チャットルームリストに追加する
// #36146に対応 $('#room_list').append(obj);
if(rooms.length > 0) { });
if(!keywordSearchMode) {
$(".roomListIcon").show() // #36146に対応
$('#roomDeleteButton, #arrangeRooms').show() if(rooms.length > 0) {
} else { if(!keywordSearchMode) {
$(".roomListIcon").show() $(".roomListIcon").show()
$('#roomDeleteButton, #arrangeRooms').hide() $('#roomDeleteButton, #arrangeRooms').show()
} } else {
} else { $(".roomListIcon").show()
if(!keywordSearchMode) { $('#roomDeleteButton, #arrangeRooms').hide()
$(".roomListIcon").hide() }
} else { } else {
$(".roomListIcon").show() if(!keywordSearchMode) {
$('#roomDeleteButton, #arrangeRooms').hide() $(".roomListIcon").hide()
} } else {
} $(".roomListIcon").show()
$('#roomDeleteButton, #arrangeRooms').hide()
$('#createChatRoom').show() }
}
// Rotate
if(CHAT_UI.isLandscapeMode()) { $('#createChatRoom').show()
$(".chat_list").removeClass("col-12").addClass("col-6");
} // Rotate
if(CHAT_UI.isLandscapeMode()) {
$("#userSelectionDeleteBtn").hide(); $(".chat_list").removeClass("col-12").addClass("col-6");
// チャットルームリスト画面に遷移 }
$('#pills-chatlist-tab').tab('show');
$("#userSelectionDeleteBtn").hide();
// loadingIndicatorを表示しない // チャットルームリスト画面に遷移
CHAT_UI.dismissLoadingIndicator(); $('#pills-chatlist-tab').tab('show');
});
// loadingIndicatorを表示しない
// New Message CHAT_UI.dismissLoadingIndicator();
// #36170 });
socket.on('newMessage', function (message, roomId, roomName){
let template = $('#message-template').html(); // New Message
if (message.id === socket.id) { // #36170
// ユーザーが送信したメッセージの場合、自分のメッセージ様式を適用して表示する socket.on('newMessage', function (message, roomId, roomName){
template = $('#message-template-me').html(); let template = $('#message-template').html();
} if (message.id === socket.id) {
let messageTime = CHAT_UTIL.formatDate(message.createdAt); // ユーザーが送信したメッセージの場合、自分のメッセージ様式を適用して表示する
template = $('#message-template-me').html();
message.profileImagePath = CHAT.getProfileImgUrl(message.profileImagePath) }
try { let messageTime = CHAT_UTIL.formatDate(message.createdAt);
message.text = decodeURIComponent(message.text)
} catch(e) { message.profileImagePath = CHAT.getProfileImgUrl(message.profileImagePath)
message.text = message.text try {
} message.text = decodeURIComponent(message.text)
} catch(e) {
let html = Mustache.render(template, { message.text = message.text
text: message.text, }
from: message.from,
profileImage: message.profileImagePath, let html = Mustache.render(template, {
createdAtDay: messageTime.createdAtDay, text: message.text,
createdAtTime: messageTime.createdAtTime from: message.from,
}); profileImage: message.profileImagePath,
// イメージの場合、img tagを追加する createdAtDay: messageTime.createdAtDay,
html = message.text.includes('attachedImages') || message.text.includes('attachedVideos') ? CHAT_UTIL.htmlDecode(html) : html; createdAtTime: messageTime.createdAtTime
$('#messages').append(html); });
// イメージの場合、img tagを追加する
// 画像、動画の描画を待ってからスクロール html = message.text.includes('attachedImages') || message.text.includes('attachedVideos') ? CHAT_UTIL.htmlDecode(html) : html;
setTimeout(function () { $('#messages').append(html);
CHAT_UI.scrollToBottom();
}, 1500); // 画像、動画の描画を待ってからスクロール
}); setTimeout(function () {
CHAT_UI.scrollToBottom();
// Notification }, 1500);
socket.on('newNotification', function(keyword, event){ });
var notificationString = getLocalizedString(event, keyword)
$('#messageNotification').finish().text(notificationString).delay(500).slideDown().delay(1500).slideUp(); // Notification
}); socket.on('newNotification', function(keyword, event){
var notificationString = getLocalizedString(event, keyword)
// 新しいメッセージを受信する場合の処理 $('#messageNotification').finish().text(notificationString).delay(500).slideDown().delay(1500).slideUp();
// #36170 });
socket.on('loadMessages', function(messages, shopMemberId, users, roomId, roomName){
let jQueryMessages = $('#messages'); // 新しいメッセージを受信する場合の処理
// スクロールの変化を防ぐため以前画面の高さを保存する // #36170
let beforeHeight = jQueryMessages.prop('scrollHeight'); socket.on('loadMessages', function(messages, shopMemberId, users, roomId, roomName){
// メッセージ文字列の生成 let jQueryMessages = $('#messages');
let workVal = ""; // スクロールの変化を防ぐため以前画面の高さを保存する
messages.forEach(function(message) { let beforeHeight = jQueryMessages.prop('scrollHeight');
let template = $('#message-template').html(); // メッセージ文字列の生成
if (message.shopMemberId == shopMemberId) { let workVal = "";
template = $('#message-template-me').html(); messages.forEach(function(message) {
} let template = $('#message-template').html();
let messageTime = CHAT_UTIL.formatDate(message.time.time); if (message.shopMemberId == shopMemberId) {
template = $('#message-template-me').html();
if(users != undefined) { }
let user = users.find((user) => user.loginId == message.loginId) let messageTime = CHAT_UTIL.formatDate(message.time.time);
// userProfilePathが使えるpathかをcheckして使えないpathの場合、default画像の経路に変更 if(users != undefined) {
if(user) { let user = users.find((user) => user.loginId == message.loginId)
message.profileImagePath = CHAT.getProfileImgUrl(user.profileImagePath)
} else { // userProfilePathが使えるpathかをcheckして使えないpathの場合、default画像の経路に変更
message.profileImagePath = CHAT.getProfileImgUrl("") if(user) {
} message.profileImagePath = CHAT.getProfileImgUrl(user.profileImagePath)
} else { } else {
message.profileImagePath = CHAT.getProfileImgUrl(message.profileImagePath) message.profileImagePath = CHAT.getProfileImgUrl("")
} }
} else {
// #36147 message.profileImagePath = CHAT.getProfileImgUrl(message.profileImagePath)
message.message = message.message.toString(); }
console.log(message.message);
//message.message.replaceAll('/acms',CHAT_SERVER_URL+"/acms"); // #36147
var replacePath = message.message; message.message = message.message.toString();
replacePath = replacePath.replaceAll('/acms',CHAT_SERVER_URL+'/acms'); console.log(message.message);
message.message = replacePath; //message.message.replaceAll('/acms',CHAT_SERVER_URL+"/acms");
console.log(message.message); var replacePath = message.message;
let html = Mustache.render(template, { replacePath = replacePath.replaceAll('/acms',CHAT_SERVER_URL+'/acms');
text: message.message, message.message = replacePath;
from: message.loginId, console.log(message.message);
profileImage: message.profileImagePath, let html = Mustache.render(template, {
createdAtDay: messageTime.createdAtDay, text: message.message,
createdAtTime: messageTime.createdAtTime from: message.loginId,
}); profileImage: message.profileImagePath,
console.log(message.message); createdAtDay: messageTime.createdAtDay,
html = message.message.includes('attachedImages') || message.message.includes('attachedVideos') ? CHAT_UTIL.htmlDecode(html) : html; createdAtTime: messageTime.createdAtTime
workVal = html + workVal; });
}) console.log(message.message);
html = message.message.includes('attachedImages') || message.message.includes('attachedVideos') ? CHAT_UTIL.htmlDecode(html) : html;
// メッセージの画面描画 workVal = html + workVal;
jQueryMessages.prepend(workVal); })
if (beforeHeight !== 0) {
// 追加のメッセージ読み込み時は読み込み前のスクロール位置を維持 // メッセージの画面描画
setTimeout(function () { jQueryMessages.prepend(workVal);
jQueryMessages.scrollTop(jQueryMessages.prop('scrollHeight') - beforeHeight); if (beforeHeight !== 0) {
}, 400); // 追加のメッセージ読み込み時は読み込み前のスクロール位置を維持
} else { setTimeout(function () {
// 新規に入室の場合は最下部へスクロール jQueryMessages.scrollTop(jQueryMessages.prop('scrollHeight') - beforeHeight);
CHAT_UI.waitForLoadingImage(jQueryMessages, CHAT_UI.scrollToBottom); }, 400);
// タブレット等、画面サイズが大きい場合、スクロール出来なくならないよう追加で10件メッセージを取得 } else {
if ($(window).height() > jQueryMessages.height()) { // 新規に入室の場合は最下部へスクロール
$('#messages').scroll(); CHAT_UI.waitForLoadingImage(jQueryMessages, CHAT_UI.scrollToBottom);
} // タブレット等、画面サイズが大きい場合、スクロール出来なくならないよう追加で10件メッセージを取得
} if ($(window).height() > jQueryMessages.height()) {
$('#messages').scroll();
// ユーザ削除ボタン表示しない }
$("#userSelectionDeleteBtn").hide(); }
CHAT_UI.dismissLoadingIndicator();// add some... // ユーザ削除ボタン表示しない
$("#userSelectionDeleteBtn").hide();
// チャットに遷移する
$('#pills-chat-tab').tab('show'); CHAT_UI.dismissLoadingIndicator();// add some...
});
// チャットに遷移する
// Update User List In Room $('#pills-chat-tab').tab('show');
// サイドバーのユーザーリストアップデート。 });
socket.on('updateUserList', function(users, onlineUsers){
if (users.length > 0) { // Update User List In Room
$('#users').removeData(); // サイドバーのユーザーリストアップデート。
$('#users').data(users); socket.on('updateUserList', function(users, onlineUsers){
} else { if (users.length > 0) {
const data = $('#users').data(); $('#users').removeData();
if(data && Object.keys(data).length > 0){ $('#users').data(users);
users = Object.keys(data).map(function(key) { } else {
return data[key]; const data = $('#users').data();
}); if(data && Object.keys(data).length > 0){
} users = Object.keys(data).map(function(key) {
} return data[key];
});
const ul = $('<ul/>', {class: 'list-unstyled components'}); }
// ユーザーリストを入れる前にユーザー招待ボタンを入れてくれる。 }
let inviteString = getLocalizedString("inviteUsersButton")
const ul = $('<ul/>', {class: 'list-unstyled components'});
ul.append($('<li/>').append(`<a>${inviteString} <i class='fa fa-user-plus'><i/></a>`).on('click', function(event){ // ユーザーリストを入れる前にユーザー招待ボタンを入れてくれる。
$('#dismiss').click(); let inviteString = getLocalizedString("inviteUsersButton")
// loadingIndicatorを表示
CHAT_UI.showLoadingIndicator(); ul.append($('<li/>').append(`<a>${inviteString} <i class='fa fa-user-plus'><i/></a>`).on('click', function(event){
let isInvite = true; $('#dismiss').click();
CHAT.globalIsInvite = isInvite; // loadingIndicatorを表示
socket.emit('getGroupList', isInvite); CHAT_UI.showLoadingIndicator();
})); let isInvite = true;
CHAT.globalIsInvite = isInvite;
// ユーザーリストを入れる socket.emit('getGroupList', isInvite);
users.forEach(function (user){ }));
let li = $('<li/>');
let a = $('<a/>').text(user); // ユーザーリストを入れる
if (onlineUsers.includes(user)) { users.forEach(function (user){
// 接続されているユーザにバッジを付ける。 let li = $('<li/>');
a.append($('<span/>',{class:'badge badge-success'}).text('online')); let a = $('<a/>').text(user);
} if (onlineUsers.includes(user)) {
li.append(a); // 接続されているユーザにバッジを付ける。
ul.append(li); a.append($('<span/>',{class:'badge badge-success'}).text('online'));
}); }
$('#users').html(ul); li.append(a);
}); ul.append(li);
});
// Update Group List(Invite) $('#users').html(ul);
socket.on('refreshGroupList', function(groups, isInvite){ });
$('#group_list').html('');
const template = $('#group-template').html(); // Update Group List(Invite)
if (groups.length === 0) { socket.on('refreshGroupList', function(groups, isInvite){
$('#group_list').append('<center class="text-secondary">'+ getLocalizedString(everyoneIsHere) +'</center>'); $('#group_list').html('');
} const template = $('#group-template').html();
// グループ名と人数を表記する。 if (groups.length === 0) {
groups.forEach( function(group) { $('#group_list').append('<center class="text-secondary">'+ getLocalizedString(everyoneIsHere) +'</center>');
let html = Mustache.render(template, { }
name: group.groupName, // グループ名と人数を表記する。
info: group.memberCnt + getLocalizedString("people") groups.forEach( function(group) {
}); let html = Mustache.render(template, {
// グループをクリックすると、該当グループのユーザーリストを読み込むようにイベントを与える name: group.groupName,
let obj = $(jQuery.parseHTML(html)).on('click',function(){ info: group.memberCnt + getLocalizedString("people")
// loadingIndicatorを表示 });
CHAT_UI.showLoadingIndicator(); // グループをクリックすると、該当グループのユーザーリストを読み込むようにイベントを与える
socket.emit('getUserListInGroup', group.groupId, isInvite); let obj = $(jQuery.parseHTML(html)).on('click',function(){
$('#groupName').text(group.groupName); // loadingIndicatorを表示
}); CHAT_UI.showLoadingIndicator();
$('#group_list').append(obj); socket.emit('getUserListInGroup', group.groupId, isInvite);
}); $('#groupName').text(group.groupName);
});
// Rotate $('#group_list').append(obj);
if(CHAT_UI.isLandscapeMode()) { });
$(".group_list").addClass("col-6").removeClass("col-12");
} // Rotate
if(CHAT_UI.isLandscapeMode()) {
// Set Title $(".group_list").addClass("col-6").removeClass("col-12");
let memberSelectTitle = getLocalizedString("groupSearch") }
$('#pills-group-tab').tab('show'); // Set Title
let memberSelectTitle = getLocalizedString("groupSearch")
$('#backButton').show();
$('#pills-group-tab').tab('show');
if (isInvite) {
$('.titleRoomName').text(memberSelectTitle); $('#backButton').show();
$('#newRoomName, .roomListIcon, .chatRoomIcon').hide();
$('#userSelectionConfirmBtn').show(); if (isInvite) {
$("#userSelectionConfirmBtn").off().on('click', function(){ $('.titleRoomName').text(memberSelectTitle);
CHAT_UI.setConfirmButtonEvent(isInvite); $('#newRoomName, .roomListIcon, .chatRoomIcon').hide();
}); $('#userSelectionConfirmBtn').show();
} else { $("#userSelectionConfirmBtn").off().on('click', function(){
$('.titleRoomName').text(memberSelectTitle); CHAT_UI.setConfirmButtonEvent(isInvite);
$('.roomListIcon, .chatRoomIcon, #newRoomName').hide(); });
$('#userSelectionConfirmBtn').show(); } else {
$("#userSelectionConfirmBtn").off().on('click', function(){ $('.titleRoomName').text(memberSelectTitle);
CHAT_UI.setConfirmButtonEvent(isInvite); $('.roomListIcon, .chatRoomIcon, #newRoomName').hide();
}); $('#userSelectionConfirmBtn').show();
} $("#userSelectionConfirmBtn").off().on('click', function(){
CHAT_UI.setConfirmButtonEvent(isInvite);
if (CHAT.globalSelectedUserList.length > 0) { });
$('#userSelectionLength').text(CHAT.globalSelectedUserList.length); }
} else {
$('#userSelectionLength').text(''); if (CHAT.globalSelectedUserList.length > 0) {
} $('#userSelectionLength').text(CHAT.globalSelectedUserList.length);
} else {
$('#backButton').off().on('click', function() { $('#userSelectionLength').text('');
// loadingIndicatorを表示 }
CHAT_UI.showLoadingIndicator();
if (isInvite) { $('#backButton').off().on('click', function() {
$('#pills-chat-tab').tab('show'); // loadingIndicatorを表示
} else { CHAT_UI.showLoadingIndicator();
socket.emit('getRoomList'); if (isInvite) {
} $('#pills-chat-tab').tab('show');
}); } else {
}); socket.emit('getRoomList');
}
// Update User List(Invite) });
// #36170 });
socket.on('refreshUserListInGroup', function(users, groupId, isInvite){
$('#user_list').html(''); // Update User List(Invite)
const template = $('#user-template').html(); // #36170
socket.on('refreshUserListInGroup', function(users, groupId, isInvite){
// Set Title $('#user_list').html('');
let memberSelectTitle = getLocalizedString("userSearch") const template = $('#user-template').html();
$('.titleRoomName').text(memberSelectTitle);
// Set Title
users.forEach( function(user) { let memberSelectTitle = getLocalizedString("userSearch")
// loadingIndicatorを表示 $('.titleRoomName').text(memberSelectTitle);
CHAT_UI.showLoadingIndicator();
users.forEach( function(user) {
user.profileImagePath = CHAT.getProfileImgUrl(user.profileImagePath) // loadingIndicatorを表示
CHAT_UI.showLoadingIndicator();
let html = Mustache.render(template, {
id: user.shopMemberId, user.profileImagePath = CHAT.getProfileImgUrl(user.profileImagePath)
profileImage: user.profileImagePath,
name: user.loginId let html = Mustache.render(template, {
}); id: user.shopMemberId,
profileImage: user.profileImagePath,
// クリックするとactive クラスを与え、チェック表示を出させる。 name: user.loginId
let obj = $(jQuery.parseHTML(html)).on('click',function(){ });
if ($(this).find('.userCheckBox.active').length > 0) {
// remove // クリックするとactive クラスを与え、チェック表示を出させる。
CHAT.globalSelectedUserList = CHAT.globalSelectedUserList.filter(function(element) { let obj = $(jQuery.parseHTML(html)).on('click',function(){
return user.loginId != element.loginId; if ($(this).find('.userCheckBox.active').length > 0) {
}); // remove
} else { CHAT.globalSelectedUserList = CHAT.globalSelectedUserList.filter(function(element) {
// add return user.loginId != element.loginId;
CHAT.globalSelectedUserList.push({loginId:user.loginId, shopMemberId : user.shopMemberId, profileImagePath: user.profileImagePath}); });
} } else {
$(this).find('.userCheckBox').toggleClass('active'); // add
CHAT.globalSelectedUserList.push({loginId:user.loginId, shopMemberId : user.shopMemberId, profileImagePath: user.profileImagePath});
if (CHAT.globalSelectedUserList.length > 0) { }
$('#userSelectionLength').text(CHAT.globalSelectedUserList.length); $(this).find('.userCheckBox').toggleClass('active');
} else {
$('#userSelectionLength').text(''); if (CHAT.globalSelectedUserList.length > 0) {
} $('#userSelectionLength').text(CHAT.globalSelectedUserList.length);
}); } else {
$('#userSelectionLength').text('');
let findObj = CHAT.globalSelectedUserList.find(function(selectedUser) { }
return selectedUser.loginId == user.loginId; });
})
let findObj = CHAT.globalSelectedUserList.find(function(selectedUser) {
if (findObj) { return selectedUser.loginId == user.loginId;
$(obj).find('.userCheckBox').toggleClass('active'); })
}
if (findObj) {
$('#user_list').append(obj); $(obj).find('.userCheckBox').toggleClass('active');
}) }
$('.userCheckBox').show();
$('#user_list').append(obj);
// Rotate })
if(CHAT_UI.isLandscapeMode()) { $('.userCheckBox').show();
$(".user_list").addClass("col-6").removeClass("col-12");
$(".squareBoxContent span").addClass("landscape_span"); // Rotate
} if(CHAT_UI.isLandscapeMode()) {
$(".user_list").addClass("col-6").removeClass("col-12");
$('#backButton').off().on('click', function() { $(".squareBoxContent span").addClass("landscape_span");
// loadingIndicatorを表示 }
CHAT_UI.showLoadingIndicator();
socket.emit('getGroupList', isInvite) $('#backButton').off().on('click', function() {
}); // loadingIndicatorを表示
CHAT_UI.showLoadingIndicator();
$("#userSelectionConfirmBtn").off().on('click', function(){ socket.emit('getGroupList', isInvite)
// loadingIndicatorを表示 });
CHAT_UI.showLoadingIndicator();
CHAT_UI.setConfirmButtonEvent(isInvite); $("#userSelectionConfirmBtn").off().on('click', function(){
}); // loadingIndicatorを表示
CHAT_UI.showLoadingIndicator();
$('#backButton').show(); CHAT_UI.setConfirmButtonEvent(isInvite);
$('.roomListIcon, .chatRoomIcon').hide(); });
$('#userSelectionConfirmBtn').show();
$('.userCheckBox').show(); $('#backButton').show();
$('#pills-user-tab').tab('show'); $('.roomListIcon, .chatRoomIcon').hide();
}); $('#userSelectionConfirmBtn').show();
$('.userCheckBox').show();
/* ---------------------------------------------------------------------- */ $('#pills-user-tab').tab('show');
/* Show Error Log */ });
/* ---------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- */
socket.on('showServerError', function (message){ /* Show Error Log */
// #36174 /* ---------------------------------------------------------------------- */
// #36215 socket.on('showServerError', function (message){
if(message.includes("SC_FORBIDDEN")) // #36174
{
alert('SC_FORBIDDEN'); // #36215
return; if(message.includes("SC_FORBIDDEN"))
} {
alert('SC_FORBIDDEN');
if (message == 'server error Ocurred') { return;
message = getLocalizedString("serverErrorOccured"); }
} else if (message == 'Room not found') {
message = getLocalizedString("errorRoomNotFound"); if (message == 'server error Ocurred') {
} message = getLocalizedString("serverErrorOccured");
$("#customAlertTitle").text(message); } else if (message == 'Room not found') {
$("#customAlertOk").text(getLocalizedString("yesTitle")); message = getLocalizedString("errorRoomNotFound");
}
$('#customAlert').appendTo("body").modal({ $("#customAlertTitle").text(message);
backdrop: 'static', $("#customAlertOk").text(getLocalizedString("yesTitle"));
keyboard: false
}) $('#customAlert').appendTo("body").modal({
.on('click', '#customAlertOk', function(e) { backdrop: 'static',
}); keyboard: false
CHAT_UI.dismissLoadingIndicator(); })
.on('click', '#customAlertOk', function(e) {
if(message == "Room not found"){ });
CHAT.saveRoomInfo(); CHAT_UI.dismissLoadingIndicator();
}
}); if(message == "Room not found"){
CHAT.saveRoomInfo();
// server's request : user info (retry join) }
socket.on("retryJoinProcess", () => { });
var ua = window.navigator.userAgent.toLowerCase();
//if((ua.indexOf('iphone') > 0 || ua.indexOf('ipad') > 0) && ua.indexOf("safari") == -1) { // server's request : user info (retry join)
if (CHAT_UTIL.isIOS()) { socket.on("retryJoinProcess", () => {
// iosでの場合 var ua = window.navigator.userAgent.toLowerCase();
webkit.messageHandlers.loginInfoRequestMessageHandlerId.postMessage({}); //if((ua.indexOf('iphone') > 0 || ua.indexOf('ipad') > 0) && ua.indexOf("safari") == -1) {
// } else if(ua.indexOf('android') > 0 && ua.indexOf('linux') == -1){ if (CHAT_UTIL.isIOS()) {
} else if (CHAT_UTIL.isAndroid()) { // iosでの場合
// androidでの場合 webkit.messageHandlers.loginInfoRequestMessageHandlerId.postMessage({});
android.getLoginParameter(); // } else if(ua.indexOf('android') > 0 && ua.indexOf('linux') == -1){
} else { } else if (CHAT_UTIL.isAndroid()) {
CHAT_UI.htmlElementTextInitialize("ko") // androidでの場合
// webでのsocket connect android.getLoginParameter();
socket.emit('join', params, function (err) { } else {
if (err) { CHAT_UI.htmlElementTextInitialize("ko")
// #36174 // webでのsocket connect
$("#customAlertTitle").text(err); socket.emit('join', params, function (err) {
$("#customAlertOk").text(getLocalizedString("yesTitle")); if (err) {
// #36174
$('#customAlert').appendTo("body").modal({ $("#customAlertTitle").text(err);
backdrop: 'static', $("#customAlertOk").text(getLocalizedString("yesTitle"));
keyboard: false
}) $('#customAlert').appendTo("body").modal({
.on('click', '#customAlertOk', function(e) { backdrop: 'static',
}); keyboard: false
} else { })
if(params.roomName != undefined) { .on('click', '#customAlertOk', function(e) {
$('.titleRoomName').text(params.roomName).data('roomName', params.roomName); });
} else { } else {
let roomListTitle = getLocalizedString("roomListTitle") if(params.roomName != undefined) {
$('.titleRoomName').text(roomListTitle) $('.titleRoomName').text(params.roomName).data('roomName', params.roomName);
} } else {
} let roomListTitle = getLocalizedString("roomListTitle")
// loadingIndicatorを表示しない $('.titleRoomName').text(roomListTitle)
CHAT_UI.dismissLoadingIndicator(); }
}); }
} // loadingIndicatorを表示しない
}) CHAT_UI.dismissLoadingIndicator();
\ No newline at end of file });
}
})
}
\ No newline at end of file
...@@ -28,8 +28,13 @@ import android.widget.ImageView; ...@@ -28,8 +28,13 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Toast; import android.widget.Toast;
import org.json.JSONArray;
import java.io.File; import java.io.File;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import jp.agentec.abook.abv.bl.acms.client.AcmsClient; import jp.agentec.abook.abv.bl.acms.client.AcmsClient;
...@@ -38,7 +43,12 @@ import jp.agentec.abook.abv.bl.common.constant.ABookKeys; ...@@ -38,7 +43,12 @@ import jp.agentec.abook.abv.bl.common.constant.ABookKeys;
import jp.agentec.abook.abv.bl.common.exception.NetworkDisconnectedException; import jp.agentec.abook.abv.bl.common.exception.NetworkDisconnectedException;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.data.ABVDataCache; import jp.agentec.abook.abv.bl.data.ABVDataCache;
import jp.agentec.abook.abv.bl.dto.ChatRoomDto;
import jp.agentec.abook.abv.bl.dto.ContentReadingLogDto;
import jp.agentec.abook.abv.bl.dto.PushMessageDto; import jp.agentec.abook.abv.bl.dto.PushMessageDto;
import jp.agentec.abook.abv.bl.logic.AbstractLogic;
import jp.agentec.abook.abv.bl.logic.CommunicationLogic;
import jp.agentec.abook.abv.bl.logic.ContentLogic;
import jp.agentec.abook.abv.cl.util.PreferenceUtil; import jp.agentec.abook.abv.cl.util.PreferenceUtil;
import jp.agentec.abook.abv.launcher.android.R; import jp.agentec.abook.abv.launcher.android.R;
import jp.agentec.abook.abv.ui.common.appinfo.AppDefType; import jp.agentec.abook.abv.ui.common.appinfo.AppDefType;
...@@ -83,6 +93,8 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -83,6 +93,8 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
private BroadcastReceiver receiver; private BroadcastReceiver receiver;
private CommunicationLogic communicationLogic = AbstractLogic.getLogic(CommunicationLogic.class);
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -665,6 +677,27 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -665,6 +677,27 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
}); });
} }
@JavascriptInterface
public String getRoomList() {
Map<String, Object> chatRoomList;
//chatRoomList = communicationLogic.getChatRoomList();
String chatRoomListStr = communicationLogic.getChatRoomList();
return chatRoomListStr;
/* mChatWebView.post(new Runnable() {
@Override
public void run() {
List<ChatRoomDto> chatRoomList;
chatRoomList = communicationLogic.getChatRoomList();
JSONArray resulttest = new JSONArray(chatRoomList);
String resultString = resulttest.toString();
mChatWebView.loadUrl(String.format("javascript:CHAT_UI.getRoomList('%s')",resultString));
}
});*/
}
} }
/** /**
......
...@@ -38,6 +38,8 @@ app_versioncode=1 ...@@ -38,6 +38,8 @@ app_versioncode=1
# abvEnvironments.xml # abvEnvironments.xml
#cms server #cms server
#acms_address=http://10.0.2.2:8081/acms
#download_server_address=http://10.0.2.2:8081/acms
acms_address=https://chatdev2.abook.bz/acms acms_address=https://chatdev2.abook.bz/acms
download_server_address=https://chatdev2.abook.bz/acms download_server_address=https://chatdev2.abook.bz/acms
......
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