Commit 3bcc0e4d by Takatoshi Miura

Merge branch 'origin/#42598_search_logic' into 'release_sp3'

iosで2バイト文字で検索できないバグを修正

See merge request !97
parents e19ac453 a0daedff
...@@ -4,8 +4,6 @@ var ARCHIVE_UI = {}; ...@@ -4,8 +4,6 @@ var ARCHIVE_UI = {};
$(function() { $(function() {
// アーカイブ検索 // アーカイブ検索
$('#archive .search_form input[type="search"]').keyup(function(e) { $('#archive .search_form input[type="search"]').keyup(function(e) {
var keyword = $('#archive .search_form input[type="search"]').val(); var keyword = $('#archive .search_form input[type="search"]').val();
if (e.KeyCode == 13 || e.key == "Enter") { if (e.KeyCode == 13 || e.key == "Enter") {
if (keyword.length != 0 && keyword != '') { if (keyword.length != 0 && keyword != '') {
...@@ -26,6 +24,14 @@ $(function() { ...@@ -26,6 +24,14 @@ $(function() {
} }
// 検索結果を表示 // 検索結果を表示
}); });
// iOSキーボード変換検知用
$('#archive .search_form input[type="search"]').on('compositionend', function() {
if (CHAT_UTIL.isIOS()) {
var keyword = $('#archive .search_form input[type="search"]').val();
$('.overlay_src_msg').empty();
ARCHIVE_UI.refreshSearchScreen(keyword);
}
});
}); });
ARCHIVE_UI.refreshSearchScreen = function(keyword) { ARCHIVE_UI.refreshSearchScreen = function(keyword) {
......
// 名前空間
var CHAT_ADD_USER = {};
$(function() { $(function() {
// メンバー検索 // メンバー検索
$('#chat_add_user .search_form input[type="search"]').click(function(e){ $('#chat_add_user .search_form input[type="search"]').click(function(e){
...@@ -7,20 +10,38 @@ $(function() { ...@@ -7,20 +10,38 @@ $(function() {
}) })
$('#chat_add_user .search_form input[type="search"]').keyup(function(e){ $('#chat_add_user .search_form input[type="search"]').keyup(function(e){
var keyword = $('#chat_add_user .search_form input[type="search"]').val();
if (e.key == "Enter" || e.KeyCode == 13) { if (e.key == "Enter" || e.KeyCode == 13) {
$('#chat_add_user .search_form input[type="search"]').blur(); if (keyword != '' && keyword.length != 0) {
$('#chat_add_user .search_form input[type="search"]').blur();
return false;
}
} else if (keyword == '' || keyword.length < 2) {
$('.overlay_src_msg').empty();
return false; return false;
} }
CHAT_ADD_USER.searchUser(keyword);
if (e.key == "Enter" || e.KeyCode == 13) {
$('#chat_add_user .search_form input[type="search"]').blur();
return;
}
});
// iOSキーボード変換検知用
$('#chat_add_user .search_form input[type="search"]').on('compositionend', function() {
if (CHAT_UTIL.isIOS()) {
var keyword = $('#chat_add_user .search_form input[type="search"]').val();
CHAT_ADD_USER.searchUser(keyword);
}
});
});
// ユーザー検索
CHAT_ADD_USER.searchUser = function(keyword) {
var isAllGroup = $('#tabAllGroupOnAddUser').is(':checked'); var isAllGroup = $('#tabAllGroupOnAddUser').is(':checked');
$('.overlay_src_msg').empty(); $('.overlay_src_msg').empty();
//全グループ検索画面 //全グループ検索画面
if (isAllGroup) { if (isAllGroup) {
var keyword = $('#chat_add_user .search_form input[type="search"]').val();
if (keyword == '') {
return;
}
//グループデータ検索 //グループデータ検索
var groupList = CHAT_DB.getGroupByName(keyword); var groupList = CHAT_DB.getGroupByName(keyword);
var groupTemplate; var groupTemplate;
...@@ -67,10 +88,6 @@ $(function() { ...@@ -67,10 +88,6 @@ $(function() {
} }
  //連絡先画面   //連絡先画面
} else { } else {
var keyword = $('#chat_add_user .search_form input[type="search"]').val();
if (keyword == '') {
return;
}
var userList = CHAT_DB.getMyGroupShopMemberNotInRoomByName(keyword); var userList = CHAT_DB.getMyGroupShopMemberNotInRoomByName(keyword);
var userTemplate; var userTemplate;
$.get({ url: "./template/template_make_room_user_list.html", async: false } $.get({ url: "./template/template_make_room_user_list.html", async: false }
...@@ -97,5 +114,4 @@ $(function() { ...@@ -97,5 +114,4 @@ $(function() {
$('.overlay_src_msg').append(noResultMsg); $('.overlay_src_msg').append(noResultMsg);
} }
} }
}); };
});
...@@ -365,62 +365,20 @@ $(function() { ...@@ -365,62 +365,20 @@ $(function() {
$('.overlay_src_msg').empty(); $('.overlay_src_msg').empty();
return; return;
} }
$('.overlay_src_msg').empty(); CHAT.searchRoom(keyword, rooms);
rooms = CHAT_DB.getRoomList(chatRoomType.ALL, keyword);
let roomListTitle = getLocalizedString("room_search_placeholder");
$('#chatTitle').text(roomListTitle);
var template;
$.get({ url: "./template/template_room_list.html", async: false }
, function(text) {
template = text;
});
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")
}
var displayMsg;
if (room.messageType == messageType.TEXT || room.messageType == messageType.SYSTEM) displayMsg = room.message;
if (room.messageType == messageType.IMAGE) displayMsg = getLocalizedString("image");
if (room.messageType == messageType.VIDEO) displayMsg = getLocalizedString("video");
var attendUserName = [];
room.attendUsers.forEach(function(user) {
user.profileUrl = CHAT.getProfileImgUrl(user.profileUrl);
attendUserName.push(user.shopMemberName);
});
var thumbnailCount = room.attendUsers.length > 4 ? 4 : room.attendUsers.length;
if (room.chatRoomName == "") {
room.chatRoomName = attendUserName.join(', ');
}
let html = Mustache.render(template, {
thumbnailCount: thumbnailCount,
roomName: room.chatRoomName,
roomId: room.chatRoomId,
profileImage: room.profileImagePath,
lastMessage: displayMsg ,
time: room.insertDate ? CHAT_UTIL.formatDate(room.insertDate).createdAt : '',
unreadMsgCnt: room.unreadCount == 0 ? '' : room.unreadCount,
userCnt: room.attendUsers.length + 1,
attendUsers: room.attendUsers
});
// Click event
let obj = jQuery.parseHTML(html);
$('.overlay_src_msg').append(obj);
});
if (rooms.length == 0) {
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult"))
$('.overlay_src_msg').append(noResultMsg);
}
if (e.KeyCode == 13 || e.key == "Enter") { if (e.KeyCode == 13 || e.key == "Enter") {
$('#chat .search_form input[type="search"]').blur(); $('#chat .search_form input[type="search"]').blur();
return ; return ;
} }
}); });
// iOSキーボード変換検知用
$('#chat .search_form input[type="search"]').on('compositionend', function(){
if (CHAT_UTIL.isIOS()) {
var rooms;
var keyword = $('#chat .search_form input[type="search"]').val();
CHAT.searchRoom(keyword, rooms);
}
});
var beforeHeight; var beforeHeight;
var beforeScroll; var beforeScroll;
...@@ -448,6 +406,7 @@ $(function() { ...@@ -448,6 +406,7 @@ $(function() {
// チャットルーム // チャットルーム
// メッセージ検索イベント // メッセージ検索イベント
$('.chat_room_src_form input[type="search"]').keyup(function(e){ $('.chat_room_src_form input[type="search"]').keyup(function(e){
let workVal = "";
var keyword = $('.chat_room_src_form input[type="search"]').val(); var keyword = $('.chat_room_src_form input[type="search"]').val();
if (e.key == "Enter" || e.KeyCode == 13) { if (e.key == "Enter" || e.KeyCode == 13) {
if (keyword != '' && keyword.length != 0) { if (keyword != '' && keyword.length != 0) {
...@@ -458,67 +417,22 @@ $(function() { ...@@ -458,67 +417,22 @@ $(function() {
$('.overlay_src_msg').empty(); $('.overlay_src_msg').empty();
return; return;
} }
let workVal = "";
$('.overlay_src_msg').empty(); CHAT.searchMessage(keyword, workVal);
var checkedUserList = [];
$('.img_wrap.filter').each(function(user) {
var selectedUser = $('.img_wrap.filter')[user];
checkedUserList.push($(selectedUser).data('user-id'));
})
var messages = CHAT_DB.searchMessages(keyword, checkedUserList.join(','));
var userMessageTemplate;
$.get({ url: "./template/template_user_message.html", async: false }
, function(text) {
userMessageTemplate = text;
});
var myMessageTemplate;
$.get({ url: "./template/template_my_message.html", async: false }
, function(text) {
myMessageTemplate = text;
});
let jQueryMessages = $('.overlay_src_msg');
messages.forEach(function(message) {
let template = userMessageTemplate;
if (message.shopMemberId == CHAT.globalLoginParameter.shopMemberId) {
template = myMessageTemplate;
}
if (message.messageType == messageType.SYSTEM) {
template = systemMessageTemplate;
}
let messageTime = CHAT_UTIL.formatDate(message.insertDate);
if (message.profileUrl) {
message.profileUrl = CHAT.getProfileImgUrl(message.profileUrl)
} else {
message.profileUrl = CHAT.getProfileImgUrl("")
}
message.message = message.message.toString();
var replacePath = message.message;
replacePath = replacePath.replaceAll('?fileName=', '?sid=' + CHAT.globalLoginParameter.sid + '&fileName=');
message.message = replacePath;
let html = Mustache.render(template, {
text: message.message,
from: message.loginId,
shopMemberId: message.shopMemberId,
profileImage: message.profileUrl,
createdAtDay: messageTime.createdAtDay,
createdAtTime: messageTime.createdAtTime
});
html = message.message.includes('attachedImages') || message.message.includes('attachedVideos') ? CHAT_UTIL.htmlDecode(html) : html;
workVal = html + workVal;
})
jQueryMessages.prepend(workVal);
if (messages.length == 0) {
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult"))
jQueryMessages.append(noResultMsg);
}
if (e.key == "Enter" || e.KeyCode == 13) { if (e.key == "Enter" || e.KeyCode == 13) {
$('#searchMessage').removeClass('onfocus'); $('#searchMessage').removeClass('onfocus');
$('.chat_room_src_form input[type="search"]').blur(); $('.chat_room_src_form input[type="search"]').blur();
return; return;
} }
}); });
// iOSキーボード変換検知用
$('.chat_room_src_form input[type="search"]').on('compositionend', function(){
if (CHAT_UTIL.isIOS()) {
let workVal = "";
var keyword = $('.chat_room_src_form input[type="search"]').val();
CHAT.searchMessage(keyword, workVal);
}
});
$(document).on('click', '.filter_img', function(event) { $(document).on('click', '.filter_img', function(event) {
let workVal = ""; let workVal = "";
...@@ -578,3 +492,114 @@ $(function() { ...@@ -578,3 +492,114 @@ $(function() {
jQueryMessages.prepend(workVal); jQueryMessages.prepend(workVal);
}); });
}); });
// チャットルーム検索
CHAT.searchRoom = function(keyword, rooms) {
$('.overlay_src_msg').empty();
rooms = CHAT_DB.getRoomList(chatRoomType.ALL, keyword);
let roomListTitle = getLocalizedString("room_search_placeholder");
$('#chatTitle').text(roomListTitle);
var template;
$.get({ url: "./template/template_room_list.html", async: false }
, function(text) {
template = text;
});
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")
}
var displayMsg;
if (room.messageType == messageType.TEXT || room.messageType == messageType.SYSTEM) displayMsg = room.message;
if (room.messageType == messageType.IMAGE) displayMsg = getLocalizedString("image");
if (room.messageType == messageType.VIDEO) displayMsg = getLocalizedString("video");
var attendUserName = [];
room.attendUsers.forEach(function(user) {
user.profileUrl = CHAT.getProfileImgUrl(user.profileUrl);
attendUserName.push(user.shopMemberName);
});
var thumbnailCount = room.attendUsers.length > 4 ? 4 : room.attendUsers.length;
if (room.chatRoomName == "") {
room.chatRoomName = attendUserName.join(', ');
}
let html = Mustache.render(template, {
thumbnailCount: thumbnailCount,
roomName: room.chatRoomName,
roomId: room.chatRoomId,
profileImage: room.profileImagePath,
lastMessage: displayMsg ,
time: room.insertDate ? CHAT_UTIL.formatDate(room.insertDate).createdAt : '',
unreadMsgCnt: room.unreadCount == 0 ? '' : room.unreadCount,
userCnt: room.attendUsers.length + 1,
attendUsers: room.attendUsers
});
// Click event
let obj = jQuery.parseHTML(html);
$('.overlay_src_msg').append(obj);
});
if (rooms.length == 0) {
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult"))
$('.overlay_src_msg').append(noResultMsg);
}
};
// メッセージ検索
CHAT.searchMessage = function(keyword, workVal) {
$('.overlay_src_msg').empty();
var checkedUserList = [];
$('.img_wrap.filter').each(function(user) {
var selectedUser = $('.img_wrap.filter')[user];
checkedUserList.push($(selectedUser).data('user-id'));
})
var messages = CHAT_DB.searchMessages(keyword, checkedUserList.join(','));
var userMessageTemplate;
$.get({ url: "./template/template_user_message.html", async: false }
, function(text) {
userMessageTemplate = text;
});
var myMessageTemplate;
$.get({ url: "./template/template_my_message.html", async: false }
, function(text) {
myMessageTemplate = text;
});
let jQueryMessages = $('.overlay_src_msg');
messages.forEach(function(message) {
let template = userMessageTemplate;
if (message.shopMemberId == CHAT.globalLoginParameter.shopMemberId) {
template = myMessageTemplate;
}
if (message.messageType == messageType.SYSTEM) {
template = systemMessageTemplate;
}
let messageTime = CHAT_UTIL.formatDate(message.insertDate);
if (message.profileUrl) {
message.profileUrl = CHAT.getProfileImgUrl(message.profileUrl)
} else {
message.profileUrl = CHAT.getProfileImgUrl("")
}
message.message = message.message.toString();
var replacePath = message.message;
replacePath = replacePath.replaceAll('?fileName=', '?sid=' + CHAT.globalLoginParameter.sid + '&fileName=');
message.message = replacePath;
let html = Mustache.render(template, {
text: message.message,
from: message.loginId,
shopMemberId: message.shopMemberId,
profileImage: message.profileUrl,
createdAtDay: messageTime.createdAtDay,
createdAtTime: messageTime.createdAtTime
});
html = message.message.includes('attachedImages') || message.message.includes('attachedVideos') ? CHAT_UTIL.htmlDecode(html) : html;
workVal = html + workVal;
})
jQueryMessages.prepend(workVal);
if (messages.length == 0) {
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult"))
jQueryMessages.append(noResultMsg);
}
};
$(function() { // 名前空間
// メンバー検索 var CHAT_MAKE_ROOM = {};
$('#chatMakeRoom .search_form input[type="search"]').click(function(e) {
let contactListTitle = getLocalizedString("userSearch");
$('#makeRoomTitle').text(contactListTitle);
});
$('#chatMakeRoom .search_form input[type="search"]').keyup(function(e) { $(function() {
 //画面タイトル設定 // メンバー検索
var keyword = $('#chatMakeRoom .search_form input[type="search"]').val(); $('#chatMakeRoom .search_form input[type="search"]').click(function(e) {
if (e.KeyCode == 13 || e.key == "Enter") { let contactListTitle = getLocalizedString("userSearch");
if (keyword != '' && keyword.length != 0) { $('#makeRoomTitle').text(contactListTitle);
$('#chatMakeRoom .search_form input[type="search"]').blur(); });
$('#chatMakeRoom .search_form input[type="search"]').keyup(function(e) {
//画面タイトル設定
var keyword = $('#chatMakeRoom .search_form input[type="search"]').val();
if (e.KeyCode == 13 || e.key == "Enter") {
if (keyword != '' && keyword.length != 0) {
$('#chatMakeRoom .search_form input[type="search"]').blur();
return false;
}
} else if (keyword == '' || keyword.length < 2) {
$('.overlay_src_msg').empty();
return false; return false;
} }
} else if (keyword == '' || keyword.length < 2) { CHAT_MAKE_ROOM.searchUser(keyword);
$('.overlay_src_msg').empty(); if (e.key == "Enter" || e.KeyCode == 13) {
return false; $('#chatMakeRoom .search_form input[type="search"]').blur();
} return;
}
});
// iOSキーボード変換検知用
$('#chatMakeRoom .search_form input[type="search"]').on('compositionend', function() {
if (CHAT_UTIL.isIOS()) {
var keyword = $('#chatMakeRoom .search_form input[type="search"]').val();
CHAT_MAKE_ROOM.searchUser(keyword);
}
});
});
// メンバー検索
CHAT_MAKE_ROOM.searchUser = function(keyword) {
var isAllGroup = $('#tabAllGroupOnMakeRoom').is(':checked'); var isAllGroup = $('#tabAllGroupOnMakeRoom').is(':checked');
$('.overlay_src_msg').empty(); $('.overlay_src_msg').empty();
...@@ -95,11 +112,5 @@ $(function() { ...@@ -95,11 +112,5 @@ $(function() {
noResultMsg.append(getLocalizedString("noResult")) noResultMsg.append(getLocalizedString("noResult"))
$('.overlay_src_msg').append(noResultMsg); $('.overlay_src_msg').append(noResultMsg);
} }
} }
if (e.key == "Enter" || e.KeyCode == 13) { }
$('#chatMakeRoom .search_form input[type="search"]').blur();
return;
}
});
});
// 名前空間
var CONTACT = {};
$(function () { $(function () {
// メンバー検索 // メンバー検索
$('#contact .search_form input[type="search"]').keyup(function(e) { $('#contact .search_form input[type="search"]').keyup(function(e) {
var groupList;
var keyword = $('#contact .search_form input[type="search"]').val(); var keyword = $('#contact .search_form input[type="search"]').val();
if (e.key == "Enter" || e.KeyCode == 13) { if (e.key == "Enter" || e.KeyCode == 13) {
if (keyword != '' && keyword.length != 0) { if (keyword != '' && keyword.length != 0) {
...@@ -12,73 +14,87 @@ $(function () { ...@@ -12,73 +14,87 @@ $(function () {
$('.overlay_src_msg').empty(); $('.overlay_src_msg').empty();
return; return;
} }
$('.overlay_src_msg').empty(); CONTACT.searchUser(keyword);
var isAllGroup = $('#tabAllGroup').is(':checked'); if (e.key == "Enter" || e.KeyCode == 13) {
//全グループ検索画面 $('#contact .search_form input[type="search"]').blur();
if (isAllGroup) { return;
//グループデータ検索 }
groupList = CHAT_DB.getGroupByName(keyword); });
var groupTemplate; // iOSキーボード変換検知用
$.get({ url: "./template/template_group_list.html", async: false } $('#contact .search_form input[type="search"]').on('compositionend', function() {
, function(text) { if (CHAT_UTIL.isIOS()) {
groupTemplate = text; var keyword = $('#contact .search_form input[type="search"]').val();
}); CONTACT.searchUser(keyword);
}
});
});
groupList.forEach(function(group) { // ユーザー検索
let html = Mustache.render(groupTemplate, { CONTACT.searchUser = function(keyword) {
name: group.groupName, var groupList;
id: group.groupId, $('.overlay_src_msg').empty();
isFavorite: group.isFavorite var isAllGroup = $('#tabAllGroup').is(':checked');
});
let obj = jQuery.parseHTML(html);
$('.overlay_src_msg').append(obj);
})
//ユーザデータ検索 //全グループ検索画面
var userList = CHAT_DB.getAllGroupShopMemberByName(keyword); if (isAllGroup) {
var userTemplate; //グループデータ検索
$.get({ url: "./template/template_user_list.html", async: false } groupList = CHAT_DB.getGroupByName(keyword);
, function(text) { var groupTemplate;
userTemplate = text; $.get({ url: "./template/template_group_list.html", async: false }
}); , function(text) {
userList.forEach(function(user) { groupTemplate = text;
user.profileUrl = CHAT.getProfileImgUrl(user.profileUrl); });
});
let html = Mustache.render(userTemplate, { groupList.forEach(function(group) {
userList: userList let html = Mustache.render(groupTemplate, {
name: group.groupName,
id: group.groupId,
isFavorite: group.isFavorite
}); });
let obj = jQuery.parseHTML(html); let obj = jQuery.parseHTML(html);
$('.overlay_src_msg').append(obj); $('.overlay_src_msg').append(obj);
if (userList.length == 0 && groupList.length == 0) { })
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult")) //ユーザデータ検索
$('.overlay_src_msg').append(noResultMsg); var userList = CHAT_DB.getAllGroupShopMemberByName(keyword);
} var userTemplate;
//連絡先画面 $.get({ url: "./template/template_user_list.html", async: false }
} else { , function(text) {
var userList = CHAT_DB.getMyGroupShopMemberByName(keyword); userTemplate = text;
var userTemplate; });
$.get({ url: "./template/template_user_list.html", async: false } userList.forEach(function(user) {
, function(text) { user.profileUrl = CHAT.getProfileImgUrl(user.profileUrl);
userTemplate = text; });
}); let html = Mustache.render(userTemplate, {
userList.forEach(function(user) { userList: userList
user.profileUrl = CHAT.getProfileImgUrl(user.profileUrl); });
}); let obj = jQuery.parseHTML(html);
let html = Mustache.render(userTemplate, { $('.overlay_src_msg').append(obj);
userList: userList if (userList.length == 0 && groupList.length == 0) {
}); const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
let obj = jQuery.parseHTML(html); noResultMsg.append(getLocalizedString("noResult"))
$('.overlay_src_msg').html(obj); $('.overlay_src_msg').append(noResultMsg);
if (userList.length == 0) {
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult"))
$('.overlay_src_msg').append(noResultMsg);
}
} }
if (e.key == "Enter" || e.KeyCode == 13) { //連絡先画面
$('#contact .search_form input[type="search"]').blur(); } else {
return; var userList = CHAT_DB.getMyGroupShopMemberByName(keyword);
var userTemplate;
$.get({ url: "./template/template_user_list.html", async: false }
, function(text) {
userTemplate = text;
});
userList.forEach(function(user) {
user.profileUrl = CHAT.getProfileImgUrl(user.profileUrl);
});
let html = Mustache.render(userTemplate, {
userList: userList
});
let obj = jQuery.parseHTML(html);
$('.overlay_src_msg').html(obj);
if (userList.length == 0) {
const noResultMsg = $('<div/>',{width:'auto', style:'text-align: center'});
noResultMsg.append(getLocalizedString("noResult"))
$('.overlay_src_msg').append(noResultMsg);
} }
}); }
}); };
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