Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abook_check
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
abook_android
abook_check
Commits
1bcc1ecf
Commit
1bcc1ecf
authored
Dec 25, 2019
by
Takuya Ogawa
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'features/1.3.0' into 'features/1.3.0_test'
Features/1.3.0 See merge request
!53
parents
c567a7df
d5b5b4a3
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
325 additions
and
81 deletions
+325
-81
ABVJE_Launcher_Android/assets/chat/public/css/chat.css
+13
-2
ABVJE_Launcher_Android/assets/chat/public/js/chat.js
+152
-49
ABVJE_Launcher_Android/assets/chat/public/js/language_en.js
+16
-3
ABVJE_Launcher_Android/assets/chat/public/js/language_ja.js
+15
-2
ABVJE_Launcher_Android/assets/chat/public/js/language_ko.js
+17
-4
ABVJE_Launcher_Android/assets/chat/public/newstart.html
+74
-0
ABVJE_Res_Default_Android/res/values-ja/strings.xml
+1
-0
ABVJE_Res_Default_Android/res/values-ko/strings.xml
+2
-0
ABVJE_Res_Default_Android/res/values/strings.xml
+2
-0
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/activity/ChatWebviewActivity.java
+33
-21
No files found.
ABVJE_Launcher_Android/assets/chat/public/css/chat.css
View file @
1bcc1ecf
...
...
@@ -570,4 +570,16 @@ a.article:hover {
display
:
inline-block
;
text-align
:
left
;
width
:
100%
;
}
\ No newline at end of file
}
.modal-dialog
{
z-index
:
10001
;
}
.modal
{
z-index
:
10101
;
}
.modal-backdrop
{
z-index
:
10050
;
}
ABVJE_Launcher_Android/assets/chat/public/js/chat.js
View file @
1bcc1ecf
...
...
@@ -31,7 +31,8 @@ function formatDate(date) {
const
REFERENCE
=
moment
();
const
TODAY
=
REFERENCE
.
clone
().
startOf
(
'day'
);
let
createdAt
=
moment
(
date
);
const
createdAtDay
=
createdAt
.
format
(
'MMM DD'
);
// #36171
const
createdAtDay
=
createdAt
.
format
(
'MMM Do'
);
const
createdAtTime
=
createdAt
.
format
(
'HH:mm'
);
if
(
createdAt
.
isSame
(
TODAY
,
'd'
))
{
createdAt
=
createdAtTime
;
...
...
@@ -158,7 +159,16 @@ socket.on('disconnect', function (){
socket
.
on
(
'connect_error'
,
function
(){
jQuery
(
'.overlay'
).
addClass
(
'active undismissable'
);
// console.log('connect_error');
alert
(
'connect_error'
);
// #36174
$
(
"#customAlertTitle"
).
text
(
getLocalizedString
(
"errorConnect"
));
$
(
"#customAlertOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#customAlert'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customAlertOk'
,
function
(
e
)
{
});
dismissLoadingIndicator
();
});
...
...
@@ -202,11 +212,7 @@ socket.on('refreshRoomList', function(rooms, activeRoomId = null){
room
.
profileImagePath
=
'./images/user-profile.png'
if
(
room
.
message
)
{
try
{
room
.
message
=
decodeURIComponent
(
room
.
message
)
}
catch
(
e
)
{
room
.
message
=
room
.
message
}
room
.
message
=
room
.
message
.
toString
()
}
else
{
room
.
message
=
getLocalizedString
(
"noMessages"
)
}
...
...
@@ -327,22 +333,33 @@ jQuery('#roomDeleteButton').on('click', function(e){
// チャットルームの削除アイコンにクリックイベントを与える
jQuery
(
'.deleteBox'
).
off
(
'click'
);
jQuery
(
'.deleteBox'
).
on
(
'click'
,
function
(
e
){
// #36174
let
roomId
=
jQuery
(
this
).
data
(
'roomId'
);
let
activeRoom
=
jQuery
(
this
).
data
(
'activeRoom'
);
$
(
"#roomDeleteTitle"
).
text
(
getLocalizedString
(
"roomDeleteTitle"
));
$
(
"#roomDelete"
).
text
(
getLocalizedString
(
"roomDelete"
));
$
(
"#cancelTitle"
).
text
(
getLocalizedString
(
"cancelTitle"
));
// #36128
if
(
window
.
confirm
(
'Do you want to delete this room?'
))
{
$
(
'#roomDeleteConfirm'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#roomDelete'
,
function
(
e
)
{
//loadingIndicatorを表示
showLoadingIndicator
();
// 現在接続されているチャットルームを離れるとメッセージテップを初期化する
if
(
jQuery
(
this
).
data
(
'activeRoom'
)
)
{
if
(
activeRoom
)
{
jQuery
(
'#messages'
).
html
(
''
);
saveRoomInfo
(
''
,
''
);
}
// チャットルームから退場する
socket
.
emit
(
'exitRoom'
,
jQuery
(
this
).
data
(
'roomId'
)
);
socket
.
emit
(
'exitRoom'
,
roomId
);
// #36129に対応
let
roomListTitle
=
getLocalizedString
(
"roomListTitle"
)
$
(
'.titleRoomName'
).
text
(
roomListTitle
)
}
}
);
});
}
});
...
...
@@ -377,13 +394,19 @@ jQuery('#roomKeywordSearch').on('shown.bs.dropdown', function (e){
// #36145
jQuery
(
'#roomKeyButton'
).
on
(
'click'
,
function
(
event
)
{
// #36147に対応
// キーワード検索の値が変更し、検索を行う
if
(
!
jQuery
(
'#roomKeyword'
).
val
())
{
// 検索結果がない場合、チャットルームのリストを表示する
socket
.
emit
(
'getRoomList'
);
}
else
{
if
(
jQuery
(
'#roomKeyword'
).
val
().
length
>
0
)
{
// 検索結果が有る場合、結果を表示する
socket
.
emit
(
'roomSearch'
,
jQuery
(
'#roomKeyword'
).
val
());
socket
.
emit
(
'roomSearch'
,
encodeURIComponent
(
jQuery
(
'#roomKeyword'
).
val
()));
}
else
{
// 検索結果がない場合、チャットルームのリストを表示する
// #36147; #36145; orderByUnreadにチェックした場合、該当状態にsortされるように
if
(
jQuery
(
'#orderByTime'
).
hasClass
(
'dropdown-item-checked'
))
{
socket
.
emit
(
'getRoomList'
);
}
else
{
socket
.
emit
(
'getRoomList'
,
true
);
}
}
});
...
...
@@ -461,11 +484,8 @@ socket.on('loadMessages', function(messages, shopMemberId){
//userProfilePathが使えるpathかをcheckして使えないpathの場合、default画像の経路に変更
message
.
profileImagePath
=
profileImgPathValidCheck
(
message
.
profileImagePath
,
message
.
checkProfileExist
)
try
{
message
.
message
=
decodeURIComponent
(
message
.
message
)
}
catch
(
e
)
{
message
.
message
=
message
.
message
}
// #36147
message
.
message
=
message
.
message
.
toString
()
let
html
=
Mustache
.
render
(
template
,
{
text
:
message
.
message
,
...
...
@@ -500,7 +520,7 @@ jQuery('#message-form').on('keypress', function(event){
jQuery
(
'#message-send-btn'
).
on
(
'click'
,
function
(
e
){
e
.
preventDefault
();
const
messageTextBox
=
jQuery
(
'#message-form'
);
const
message
=
messageTextBox
.
val
().
length
>
0
?
encodeURIComponent
(
messageTextBox
.
val
())
:
""
;
const
message
=
messageTextBox
.
val
().
length
>
0
?
encodeURIComponent
(
messageTextBox
.
val
()
+
" "
)
:
""
;
messageTextBox
.
val
(
''
);
if
(
message
.
length
>
0
)
{
...
...
@@ -736,14 +756,23 @@ jQuery('#chatKeyword').on('keypress', function(event){
// Exit Room
jQuery
(
'#exitRoom'
).
on
(
'click'
,
function
(
event
){
if
(
window
.
confirm
(
'Do you want to leave this room?'
))
{
// 36174
$
(
"#exitRoomTitle"
).
text
(
getLocalizedString
(
"exitRoomTitle"
));
$
(
"#exitRoomOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
"#noExit"
).
text
(
getLocalizedString
(
"cancelTitle"
));
$
(
'#exitRoomConfirm'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#exitRoomOk'
,
function
(
e
)
{
//loadingIndicatorを表示
showLoadingIndicator
();
// チャットルームから退場する
socket
.
emit
(
'exitRoom'
);
jQuery
(
'#dismiss'
).
click
();
saveRoomInfo
(
''
,
''
);
}
}
);
});
// Side Bar
...
...
@@ -960,16 +989,6 @@ socket.on('refreshUserListInGroup', function(users, isInvite){
jQuery
(
'#pills-user-tab'
).
tab
(
'show'
);
});
// #36135, #36142
jQuery
(
'#newRoomName'
).
on
(
'keyup'
,
function
(
event
)
{
if
(
$
(
'#newRoomName'
).
val
().
trim
().
length
>=
20
)
{
alert
(
"Please enter room name less than 20 characters"
);
var
inputText
=
$
(
'#newRoomName'
).
val
();
$
(
'#newRoomName'
).
val
(
inputText
.
substr
(
0
,
$
(
'#newRoomName'
).
prop
(
"maxlength"
)));
event
.
preventDefault
();
}
})
// グループ画面での検索
jQuery
(
'#groupListKeyword'
).
on
(
'input'
,
function
(
event
)
{
// data-name値で当該キーワードが入っているグループのみを表示する。
...
...
@@ -1137,7 +1156,21 @@ jQuery('#pills-confirm-tab').on('shown.bs.tab', function (e){
socket
.
on
(
'showServerError'
,
function
(
message
){
console
.
log
(
message
);
alert
(
message
);
// #36174
if
(
message
==
'server error Ocurred'
)
{
message
=
getLocalizedString
(
"serverErrorOccured"
);
}
else
if
(
message
==
'Room not found'
)
{
message
=
getLocalizedString
(
"errorRoomNotFound"
);
}
$
(
"#customAlertTitle"
).
text
(
message
);
$
(
"#customAlertOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#customAlert'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customAlertOk'
,
function
(
e
)
{
});
dismissLoadingIndicator
();
if
(
message
==
"Room not found"
){
...
...
@@ -1159,7 +1192,16 @@ socket.on("retryJoinProcess", () => {
//webでのsocket connect
socket
.
emit
(
'join'
,
params
,
function
(
err
)
{
if
(
err
)
{
alert
(
err
);
// #36174
$
(
"#customAlertTitle"
).
text
(
err
);
$
(
"#customAlertOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#customAlert'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customAlertOk'
,
function
(
e
)
{
});
}
else
{
console
.
log
(
'No error'
);
if
(
params
.
roomName
!=
undefined
)
{
...
...
@@ -1255,10 +1297,51 @@ function showConfirmView(isInvite){
if
(
jQuery
(
'#select_user_list .user_list'
).
find
(
'.userCheckBox'
).
length
>
0
)
{
// #36130に対応
const
trimmedRoomName
=
jQuery
(
'#newRoomName'
).
val
().
trim
()
if
(
trimmedRoomName
.
length
==
0
)
{
//ルーム名を入力しなかったら、ルーム名textFieldにfocusを置く
jQuery
(
'#newRoomName'
).
focus
();
alert
(
"Input RoomName"
);
if
(
trimmedRoomName
.
length
==
0
)
{
// 36174
$
(
"#userSelectionTitle"
).
text
(
getLocalizedString
(
"inputRoomName"
));
$
(
"#yesTitle"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#confirm'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#yesTitle'
,
function
(
e
)
{
//ルーム名を入力しなかったら、ルーム名textFieldにfocusを置く
jQuery
(
'#newRoomName'
).
focus
();
});
}
else
if
(
trimmedRoomName
.
includes
(
';'
)
||
trimmedRoomName
.
includes
(
'/'
)
||
trimmedRoomName
.
includes
(
'?'
)
||
trimmedRoomName
.
includes
(
':'
)
||
trimmedRoomName
.
includes
(
"@"
)
||
trimmedRoomName
.
includes
(
'&'
)
||
trimmedRoomName
.
includes
(
'='
)
||
trimmedRoomName
.
includes
(
"+"
)
||
trimmedRoomName
.
includes
(
'$'
)
||
trimmedRoomName
.
includes
(
","
)
||
trimmedRoomName
.
includes
(
'-'
)
||
trimmedRoomName
.
includes
(
'_'
)
||
trimmedRoomName
.
includes
(
'.'
)
||
trimmedRoomName
.
includes
(
'!'
)
||
trimmedRoomName
.
includes
(
'~'
)
||
trimmedRoomName
.
includes
(
'*'
)
||
trimmedRoomName
.
includes
(
"
\
'"
)
||
trimmedRoomName
.
includes
(
'('
)
||
trimmedRoomName
.
includes
(
')'
)
||
trimmedRoomName
.
includes
(
'#'
)
||
trimmedRoomName
.
includes
(
"
\
\"
) || trimmedRoomName.includes("
\
""
)
||
trimmedRoomName
.
includes
(
"`"
))
{
// #36147
// #36174
$
(
"#customAlertTitle"
).
text
(
getLocalizedString
(
"invalidCharacter"
));
$
(
"#customAlertOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#customAlert'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customAlertOk'
,
function
(
e
)
{
});
}
else
if
(
trimmedRoomName
.
length
>
20
)
{
// #36142
var
inputText
=
$
(
'#newRoomName'
).
val
().
trim
();
// #36142 文字列の前又は後の空白文字列を削除
// #36174
$
(
"#customAlertTitle"
).
text
(
getLocalizedString
(
"nameTooLong"
));
$
(
"#customAlertOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#customAlert'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customAlertOk'
,
function
(
e
)
{
$
(
'#newRoomName'
).
val
(
inputText
.
substr
(
0
,
$
(
'#newRoomName'
).
prop
(
"maxlength"
)));
});
}
else
{
//loadingIndicatorを表示
showLoadingIndicator
();
...
...
@@ -1266,13 +1349,13 @@ function showConfirmView(isInvite){
return
e
.
dataset
.
id
;
});
//
新しいルーム
let
newRoomName
=
jQuery
(
'#newRoomName'
).
val
(
);
socket
.
emit
(
'createNewRoom'
,
userIdList
,
new
RoomName
,
function
(
newRoomId
)
{
socket
.
emit
(
'joinRoom'
,
newRoomId
,
new
RoomName
,
function
()
{
saveRoomInfo
(
newRoomId
,
new
RoomName
);
//
ルーム名のtrimmingした後、URIencodingを行う
const
encodedRoomName
=
encodeURIComponent
(
trimmedRoomName
);
socket
.
emit
(
'createNewRoom'
,
userIdList
,
encoded
RoomName
,
function
(
newRoomId
)
{
socket
.
emit
(
'joinRoom'
,
newRoomId
,
trimmed
RoomName
,
function
()
{
saveRoomInfo
(
newRoomId
,
trimmed
RoomName
);
jQuery
(
'#messages'
).
html
(
''
);
jQuery
(
'.titleRoomName'
).
text
(
newRoomName
).
data
(
'roomName'
,
new
RoomName
);
jQuery
(
'.titleRoomName'
).
text
(
trimmedRoomName
).
data
(
'roomName'
,
trimmed
RoomName
);
jQuery
(
"#userSelectionDeleteBtn"
).
hide
();
jQuery
(
'#pills-chat-tab'
).
tab
(
'show'
);
});
...
...
@@ -1285,9 +1368,19 @@ function showConfirmView(isInvite){
jQuery
(
"#userSelectionDeleteBtn"
).
hide
();
jQuery
(
"#userSelectionDeleteBtn"
).
off
().
on
(
'click'
,
function
()
{
if
(
window
.
confirm
(
'Do you want to remove selected members from the list?'
))
{
// #36174
$
(
"#customConfirmTitle"
).
text
(
getLocalizedString
(
"memberDeleteTitle"
));
$
(
"#customConfirmOk"
).
text
(
getLocalizedString
(
"roomDelete"
));
$
(
"#customAlertCancel"
).
text
(
getLocalizedString
(
"cancelTitle"
));
$
(
'#customConfirm'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customConfirmOk'
,
function
(
e
)
{
deleteButtonAction
(
isInvite
);
}
});
});
}
...
...
@@ -1350,7 +1443,17 @@ function getLoginParameter(sid, loginId, shopName, roomId = undefined, roomName
socket
.
emit
(
'join'
,
globalLoginParameter
,
function
(
err
)
{
if
(
err
)
{
alert
(
err
);
// #36174
$
(
"#customAlertTitle"
).
text
(
err
);
$
(
"#customAlertOk"
).
text
(
getLocalizedString
(
"yesTitle"
));
$
(
'#customAlert'
).
appendTo
(
"body"
).
modal
({
backdrop
:
'static'
,
keyboard
:
false
})
.
on
(
'click'
,
'#customAlertOk'
,
function
(
e
)
{
});
}
else
{
console
.
log
(
'No error'
);
if
(
globalLoginParameter
.
roomName
!=
undefined
&&
globalLoginParameter
.
roomName
!=
"null"
)
{
...
...
ABVJE_Launcher_Android/assets/chat/public/js/language_en.js
View file @
1bcc1ecf
$
.
lang
.
en
=
{
"chat_placeholder"
:
"Type message"
,
"participants"
:
"
Paricipants
"
,
"participants"
:
"
Member List
"
,
"exitRoom"
:
"Exit "
,
"roomListTitle"
:
"Room List"
,
"deleteRoomTitle"
:
"Delete Room"
,
...
...
@@ -8,7 +8,7 @@ $.lang.en = {
"inviteUsersTitle"
:
"Invite Member"
,
"createRoomSubtitle"
:
"Create Room"
,
"inviteUsersSubtitle"
:
"Invite User"
,
"roomListEmptyString"
:
"
No chat
available."
,
"roomListEmptyString"
:
"
There is no room
available."
,
"left"
:
"%@ has left"
,
"join"
:
"%@ has joined"
,
"added"
:
"%@ has been added"
,
...
...
@@ -31,5 +31,18 @@ $.lang.en = {
"everyoneIsHere"
:
"Everyone is in the chat."
,
"people"
:
"people"
,
"searchResult"
:
"Results"
,
"searchRoomListEmptyString"
:
"No search results."
"searchRoomListEmptyString"
:
"No search results."
,
"inputRoomName"
:
"Please enter a room name."
,
"exitRoomTitle"
:
"Do you want to leave this room?"
,
"roomDeleteTitle"
:
"Do you want to delete this room?"
,
"roomDelete"
:
"Delete"
,
"cancelTitle"
:
"No"
,
"yesTitle"
:
"Yes"
,
"invalidCharacter"
:
"The character ;/?:@&=+$,-_.!~*
\
'()#
\\
\"
` cannot be included in the roomname."
,
"nameTooLong"
:
"Please enter room name less than 20 characters."
,
"errorDisconnected"
:
"Disconnected from the server."
,
"errorConnect"
:
"There was a problem with the network.
\
n Please check the connection status of the network."
,
"errorRoomNotFound"
:
"This chat room has already been deleted."
,
"serverErrorOccured"
:
"App will not be able to communicate with the server.
\
n After a few moments, please try again."
,
"memberDeleteTitle"
:
"Do you want to remove selected members from the list?"
}
ABVJE_Launcher_Android/assets/chat/public/js/language_ja.js
View file @
1bcc1ecf
...
...
@@ -11,7 +11,7 @@ $.lang.ja = {
"roomListEmptyString"
:
"入場できるルームがありません。"
,
"left"
:
"%@ 様が退場しました。"
,
"join"
:
"%@ 様が入場しました。"
,
"added"
:
"%@ 様が
参加し
ました。"
,
"added"
:
"%@ 様が
ルームに招待され
ました。"
,
"welcome"
:
"%@ に入場しました。"
,
"userListDivideString"
:
" 様, "
,
"orderByTime"
:
"新着順"
,
...
...
@@ -31,5 +31,18 @@ $.lang.ja = {
"everyoneIsHere"
:
"招待可能なメンバーがいません。"
,
"people"
:
"人"
,
"searchResult"
:
"件のトーク"
,
"searchRoomListEmptyString"
:
"検索結果がありません。"
"searchRoomListEmptyString"
:
"検索結果がありません。"
,
"inputRoomName"
:
"ルーム名を入力してください。"
,
"exitRoomTitle"
:
"このチャットルームを出ますか?"
,
"roomDeleteTitle"
:
"このチャットルームを削除しますか?"
,
"roomDelete"
:
"削除"
,
"cancelTitle"
:
"いいえ"
,
"yesTitle"
:
"はい"
,
"invalidCharacter"
:
"特殊文字 ;/?:@&=+$,-_.!~*
\
'()#
\\
\"
` はルーム名に含めることができません。"
,
"nameTooLong"
:
"ルーム名は文字列20字以内に入力してください。"
,
"errorDisconnected"
:
"接続が切れました。"
,
"errorConnect"
:
"ネットワークに問題がありました。
\
nネットワークの接続状態を確認してください。"
,
"errorRoomNotFound"
:
"既に削除されたチャットルームです。"
,
"serverErrorOccured"
:
"サーバと通信できません。
\
nしばらく時間をおいて再度操作してください。"
,
"memberDeleteTitle"
:
"選択したメンバーをリストから削除しますか?"
}
ABVJE_Launcher_Android/assets/chat/public/js/language_ko.js
View file @
1bcc1ecf
$
.
lang
.
ko
=
{
"chat_placeholder"
:
"메시지를 입력하세요."
,
"participants"
:
"
대화상대
"
,
"participants"
:
"
멤버 리스트
"
,
"exitRoom"
:
"나가기 "
,
"roomListTitle"
:
"채팅 리스트"
,
"deleteRoomTitle"
:
"채팅방 삭제"
,
...
...
@@ -17,9 +17,9 @@ $.lang.ko = {
"orderByTime"
:
"최신순"
,
"orderByUnread"
:
"안 읽은 순"
,
"roomKeywordPlaceHolder"
:
"검색"
,
"okayLabel"
:
"알겠습니다
!
"
,
"okayLabel"
:
"알겠습니다
.
"
,
"completeLabel"
:
"작업이 끝났습니다."
,
"thankLabel"
:
"감사합니다.
:-)
"
,
"thankLabel"
:
"감사합니다."
,
"startToWorkLabel"
:
"작업을 시작합니다."
,
"groupListKeyword"
:
"검색"
,
"groupPageSubtitle"
:
"그룹"
,
...
...
@@ -31,5 +31,18 @@ $.lang.ko = {
"everyoneIsHere"
:
"초대가능한 유저가 없습니다."
,
"people"
:
"명"
,
"searchResult"
:
"건의 결과"
,
"searchRoomListEmptyString"
:
"검색 결과가 없습니다."
"searchRoomListEmptyString"
:
"검색 결과가 없습니다."
,
"inputRoomName"
:
"방 제목을 입력해 주십시오."
,
"exitRoomTitle"
:
"이 채팅방을 나가시겠습니까?"
,
"roomDeleteTitle"
:
"이 방을 삭제 하시겠습니까?"
,
"roomDelete"
:
"삭제"
,
"cancelTitle"
:
"아니오"
,
"yesTitle"
:
"예"
,
"invalidCharacter"
:
"특수문자 ;/?:@&=+$,-_.!~*
\
'()#
\\
\"
` 는 방 제목에 포함될 수 없습니다."
,
"nameTooLong"
:
"방 제목은 20자 이내로 입력해 주세요."
,
"errorDisconnected"
:
"서버와 접속이 끊어졌습니다."
,
"errorConnect"
:
"네트워크에 문제가 발생했습니다.
\
n네트워크 연결상태를 확인하여 주십시요."
,
"errorRoomNotFound"
:
"이미 삭제된 채팅룸입니다."
,
"serverErrorOccured"
:
"서버와 통신할 수 없습니다.
\
n잠시 후 다시 시도해보시기 바랍니다."
,
"memberDeleteTitle"
:
"목록에서 선택된 멤버를 삭제하시겠습니까?"
}
ABVJE_Launcher_Android/assets/chat/public/newstart.html
View file @
1bcc1ecf
...
...
@@ -25,6 +25,21 @@
<button
class=
"btn btn-primary roomListIcon"
type=
"button"
id=
"roomDeleteButton"
>
<i
class=
"fa fa-trash"
></i>
</button>
<!-- Confirm Dialog -->
<div
id=
"roomDeleteConfirm"
class=
"modal fade"
>
<div
class=
"modal-dialog modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-body"
id=
"roomDeleteTitle"
>
Are you sure?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn btn-primary"
id=
"roomDelete"
>
Delete
</button>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn"
id=
"cancelTitle"
>
Cancel
</button>
</div>
</div>
</div>
</div>
</li>
<li
class=
"nav-item dropdown roomListIcon"
>
<a
class=
"nav-link dropdown-toggle"
href=
"#"
id=
"arrangeRooms"
role=
"button"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
...
...
@@ -76,6 +91,20 @@
<span
id=
"userSelectionLength"
class=
"badge badge-light"
></span>
<i
class=
"fas fa-check"
></i>
</button>
<!-- Alert Dialog -->
<div
id=
"confirm"
class=
"modal fade"
>
<div
class=
"modal-dialog modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-body"
id=
"userSelectionTitle"
>
Are you sure?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn"
id=
"yesTitle"
>
OK
</button>
</div>
</div>
</div>
</div>
</li>
</ul>
</nav>
...
...
@@ -93,6 +122,21 @@
<a
class=
"btn text-light"
role=
"button"
id=
"exitRoom"
>
Exit
<i
class=
"fas fa-door-open"
></i>
</a>
<!-- Confirm Dialog -->
<div
id=
"exitRoomConfirm"
class=
"modal fade"
>
<div
class=
"modal-dialog modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-body"
id=
"exitRoomTitle"
>
Are you sure?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn btn-primary"
id=
"exitRoomOk"
>
Ok
</button>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn"
id=
"noExit"
>
Cancel
</button>
</div>
</div>
</div>
</div>
</footer>
</nav>
<!-- Dark Overlay element -->
...
...
@@ -103,6 +147,36 @@
<span
class=
"sr-only"
>
Loading...
</span>
</div>
</div>
<!-- Error Alert Dialog -->
<div
id=
"customAlert"
class=
"modal fade"
>
<div
class=
"modal-dialog modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-body"
id=
"customAlertTitle"
>
Are you sure?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn btn-primary"
id=
"customAlertOk"
>
Ok
</button>
</div>
</div>
</div>
</div>
<!-- Confirm Dialog -->
<div
id=
"customConfirm"
class=
"modal fade"
>
<div
class=
"modal-dialog modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-body"
id=
"customConfirmTitle"
>
Are you sure?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn btn-primary"
id=
"customConfirmOk"
>
Ok
</button>
<button
type=
"button"
data-dismiss=
"modal"
class=
"btn"
id=
"customAlertCancel"
>
Cancel
</button>
</div>
</div>
</div>
</div>
<div
class=
"tab-content"
id=
"pills-tabContent"
>
<div
class=
"tab-pane fade show active"
id=
"pills-chatlist"
role=
"tabpanel"
aria-labelledby=
"pills-chatlist-tab"
>
<div
class=
"inbox_people"
>
...
...
ABVJE_Res_Default_Android/res/values-ja/strings.xml
View file @
1bcc1ecf
...
...
@@ -1433,4 +1433,5 @@
<string
name=
"msg_chat_confirm_member"
>
選択したメンバーをリストから削除しますか?
</string>
<string
name=
"msg_chat_confirm_delete"
>
このチャットルームを削除しますか?
</string>
<string
name=
"msg_error_chat_room_name_too_long"
>
ルーム名は文字列20字以内に入力してください。
</string>
<string
name=
"msg_error_chat_name_has_invalid_character"
>
特殊文字 ;/?:@
&
=+$,-_.!~*\'()#\\\"` はルーム名に含めることができません。
</string>
</resources>
ABVJE_Res_Default_Android/res/values-ko/strings.xml
View file @
1bcc1ecf
...
...
@@ -1441,4 +1441,5 @@
<string
name=
"msg_chat_confirm_member"
>
목록에서 선택된 멤버를 삭제하시겠습니까?
</string>
<string
name=
"msg_chat_confirm_delete"
>
이 방을 삭제 하시겠습니까?
</string>
<string
name=
"msg_error_chat_room_name_too_long"
>
방 제목은 20자 이내로 입력해 주세요.
</string>
<string
name=
"msg_error_chat_name_has_invalid_character"
>
특수문자 ;/?:@
&
=+$,-_.!~*\'()#\\\"` 는 방 제목에 포함될 수 없습니다.
</string>
</resources>
\ No newline at end of file
ABVJE_Res_Default_Android/res/values/strings.xml
View file @
1bcc1ecf
...
...
@@ -1439,4 +1439,5 @@
<string
name=
"msg_chat_confirm_member"
>
Do you want to remove selected members from the list?
</string>
<string
name=
"msg_chat_confirm_delete"
>
Do you want to delete this room?
</string>
<string
name=
"msg_error_chat_room_name_too_long"
>
Please enter room name less than 20 characters.
</string>
<string
name=
"msg_error_chat_name_has_invalid_character"
>
The character ;/?:@
&
=+$,-_.!~*\'()#\\\"` cannot be included in the roomname.
</string>
</resources>
\ No newline at end of file
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/activity/ChatWebviewActivity.java
View file @
1bcc1ecf
...
...
@@ -8,6 +8,7 @@ import android.content.Context;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.content.res.Configuration
;
import
android.graphics.Bitmap
;
import
android.media.Image
;
import
android.net.Uri
;
...
...
@@ -90,6 +91,11 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
if
(
isNormalSize
())
{
setPortraitIfNormal
();
}
setContentView
(
R
.
layout
.
chat_webview
);
Intent
intent
=
getIntent
();
chatWebviewUrl
=
intent
.
getStringExtra
(
"chatWebviewUrl"
);
...
...
@@ -143,6 +149,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
@Override
public
boolean
onShowFileChooser
(
WebView
webView
,
ValueCallback
<
Uri
[]>
filePathCallback
,
FileChooserParams
fileChooserParams
)
{
boolean
result
;
// result = startCameraIntent(ABOOK_CHECK_TASK_IMAGE, "Camera", ABookKeys.IMAGE_VIDEO, true);
result
=
startCameraIntent
(
ABOOK_CHECK_TASK_IMAGE
,
"Camera"
,
ABookKeys
.
IMAGE
,
true
);
if
(
result
)
{
if
(
mUploadMessage
!=
null
)
{
...
...
@@ -182,6 +189,8 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
// #36142
}
else
if
(
message
.
equals
(
"Please enter room name less than 20 characters"
))
{
message
=
getString
(
R
.
string
.
msg_error_chat_room_name_too_long
);
}
else
if
(
message
.
equals
(
"InvalidSpecialCharacterRoomName"
))
{
message
=
getString
(
R
.
string
.
msg_error_chat_name_has_invalid_character
);
}
else
{
message
=
message
;
}
...
...
@@ -231,27 +240,22 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
}
else
{
message
=
"Confirm ?"
;
}
new
AlertDialog
.
Builder
(
ChatWebviewActivity
.
this
)
.
setTitle
(
getString
(
R
.
string
.
app_name
))
.
setMessage
(
message
)
.
setPositiveButton
(
android
.
R
.
string
.
ok
,
new
DialogInterface
.
OnClickListener
()
{
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
result
.
confirm
();
}
})
.
setNegativeButton
(
android
.
R
.
string
.
cancel
,
new
DialogInterface
.
OnClickListener
()
{
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
result
.
cancel
();
}
})
.
create
()
.
show
();
ABookAlertDialog
confirmAlert
=
AlertDialogUtil
.
createAlertDialog
(
ChatWebviewActivity
.
this
,
R
.
string
.
app_name
);
confirmAlert
.
setMessage
(
message
);
confirmAlert
.
setButton
(
DialogInterface
.
BUTTON_POSITIVE
,
getResources
().
getString
(
R
.
string
.
confirm
),
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
result
.
confirm
();
}
});
confirmAlert
.
setButton
(
DialogInterface
.
BUTTON_NEGATIVE
,
getResources
().
getString
(
R
.
string
.
cancel
),
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
result
.
cancel
();
}
});
confirmAlert
.
setCancelable
(
false
);
showAlertDialog
(
confirmAlert
);
return
true
;
}
...
...
@@ -346,6 +350,14 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
}
@Override
public
void
onConfigurationChanged
(
Configuration
newConfig
)
{
super
.
onConfigurationChanged
(
newConfig
);
if
(
isNormalSize
())
{
setPortraitIfNormal
();
}
}
@Override
public
void
onDestroy
(){
super
.
onDestroy
();
...
...
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