Support replying to message in the same window #2154

This commit is contained in:
Kijin Sung 2023-07-17 21:38:44 +09:00
parent 6d8063b57e
commit e635970c6a
7 changed files with 27 additions and 8 deletions

View file

@ -75,6 +75,7 @@
'dispMemberActiveLogins',
'dispCommunicationFriend',
'dispCommunicationMessages',
'dispCommunicationSendMessage',
'dispNcenterliteUserConfig',
'dispNcenterliteNotifyList',
'dispNcenterliteUnsubscribeList',

View file

@ -131,7 +131,7 @@ class communicationController extends communication
if(!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON')))
{
if(Context::get('is_popup') != 'Y')
if(Context::get('is_popup') != 'Y' && Context::get('window_type') != 'self')
{
global $lang;
htmlHeader();
@ -144,7 +144,7 @@ class communicationController extends communication
else
{
$this->setMessage('success_sended');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('','act', 'dispCommunicationMessages', 'message_type', 'S', 'receiver_srl', $receiver_srl, 'message_srl', '');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('','act', 'dispCommunicationMessages', 'message_type', 'S');
$this->setRedirectUrl($returnUrl);
}
}

View file

@ -187,7 +187,18 @@ class communicationView extends communication
*/
function dispCommunicationSendMessage()
{
if(!Context::get('m'))
// If window type is self, use member module layout.
// Otherwise, assume it's a popup window on PC for backward compatibility.
if(Context::get('window_type') === 'self')
{
$oMemberView = MemberView::getInstance();
if (!$oMemberView->checkMidAndRedirect())
{
$this->setRedirectUrl($oMemberView->getRedirectUrl());
return;
}
}
elseif(!Context::get('m'))
{
$this->setLayoutPath('./common/tpl/');
$this->setLayoutFile("popup_layout");

View file

@ -19,13 +19,13 @@
</div>
<form ruleset="sendMessage" action="./" method="post" class="ff" id="fo_comm">
<input type="hidden" name="module" value="communication" />
<input type="hidden" name="is_popup" value="Y" />
<input type="hidden" name="act" value="procCommunicationSendMessage" />
<input type="hidden" name="receiver_srl" value="{$receiver_info->member_srl}" />
<input type="hidden" name="source_content" value="{htmlspecialchars($source_message->content, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}" />
<input type="hidden" name="content" value="" />
<input type="hidden" name="xe_validator_id" value="modules/communication/m.skins/default/send_message/1" />
<input type="hidden" name="success_return_url" value="{getNotEncodedUrl('','act', 'dispCommunicationSendMessage', 'receiver_srl', $receiver_info->member_srl)}" />
<input type="hidden" name="success_return_url" value="{getNotEncodedUrl('', 'act', 'dispCommunicationMessages', 'message_type', 'S')}" />
<input type="hidden" name="window_type" value="self" />
<ul>
<li>
<span class="memberInfo">{$receiver_info->nick_name}</span>

View file

@ -243,7 +243,7 @@
.xc button,
.xc a.btn,
.xc table{font-size:13px}
.xc h1{font-size:22px}
.xc h1{font-size:20px;margin-bottom:12px}
.xc .nav a,
.xc .btn{text-decoration:none}
.xc .table{border-top:1px solid #ddd;border-bottom:1px solid #ddd}

View file

@ -6,8 +6,8 @@ function completeSendMessage(ret_obj) {
function doSendMessage(member_srl, message_srl) {
if(typeof(message_srl)=='undefined') message_srl = 0;
var url = request_uri.setQuery('mid',current_mid).setQuery('act','dispCommunicationSendMessage').setQuery('receiver_srl',member_srl).setQuery('message_srl',message_srl);
popopen(url, 'sendMessage');
var url = request_uri.setQuery('mid',current_mid).setQuery('act','dispCommunicationSendMessage').setQuery('receiver_srl',member_srl).setQuery('message_srl',message_srl).setQuery('window_type', 'self');
window.location = url;
}
/* 개별 쪽지 삭제 */

View file

@ -1,5 +1,10 @@
<load target="css/communication.css" />
<load target="js/communication.js" />
<!--@if(isset($window_type) && $window_type === 'self')-->
<include target="./common_header.html" />
<!--@endif-->
<div class="xc">
<h1>{$lang->cmd_send_message}</h1>
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/communication/skins/default/send_message/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
@ -21,6 +26,8 @@
<input type="hidden" name="content" value="{htmlspecialchars($source_message->content)}" />
<input type="hidden" name="receiver_srl" value="{$receiver_info->member_srl}" />
<input type="hidden" name="xe_validator_id" value="modules/communication/skins/default/send_message/1" />
<input type="hidden" name="success_return_url" value="{getNotEncodedUrl('', 'act', 'dispCommunicationMessages', 'message_type', 'S')}" />
<input type="hidden" name="window_type" value="{escape($window_type ?? '')}" />
<table class="table table-striped table-hover">
<tr>
<th scope="row"><label for="textfield1">{$lang->receiver}</label></th>