mirror of
https://github.com/Mibew/java.git
synced 2025-02-02 06:44:43 +03:00
Build Chat JavaScript application options mostly not in template
This commit is contained in:
parent
9cde3262d6
commit
372bae4203
@ -188,6 +188,8 @@ if( $pparam == "mailthread" ) {
|
|||||||
$page['additional_css'] = get_additional_css('client_chat_window');
|
$page['additional_css'] = get_additional_css('client_chat_window');
|
||||||
$page['additional_js'] = get_additional_js('client_chat_window');
|
$page['additional_js'] = get_additional_js('client_chat_window');
|
||||||
$page['js_plugin_options'] = get_js_plugin_options('client_chat_window');
|
$page['js_plugin_options'] = get_js_plugin_options('client_chat_window');
|
||||||
|
// Build js application options
|
||||||
|
$page['chatModule'] = json_encode($page['chat']);
|
||||||
// Expand page
|
// Expand page
|
||||||
expand("styles/dialogs", getchatstyle(), "chat.tpl");
|
expand("styles/dialogs", getchatstyle(), "chat.tpl");
|
||||||
} else if( $level == "old" ) {
|
} else if( $level == "old" ) {
|
||||||
|
@ -293,9 +293,20 @@ function setup_chatview(Thread $thread) {
|
|||||||
$group = array();
|
$group = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create some empty arrays
|
||||||
|
$data['chat'] = array(
|
||||||
|
'messageForm' => array(),
|
||||||
|
'links' => array(),
|
||||||
|
'windowsParams' => array(),
|
||||||
|
'layoutData' => array()
|
||||||
|
);
|
||||||
|
|
||||||
// Set thread params
|
// Set thread params
|
||||||
$data['chat.thread.id'] = $thread->id;
|
$data['chat']['thread'] = array(
|
||||||
$data['chat.thread.token'] = $thread->lastToken;
|
'id' => $thread->id,
|
||||||
|
'token' => $thread->lastToken
|
||||||
|
);
|
||||||
|
|
||||||
$data['chat.title'] = topage(
|
$data['chat.title'] = topage(
|
||||||
empty($group['vcchattitle'])
|
empty($group['vcchattitle'])
|
||||||
? Settings::get('chattitle')
|
? Settings::get('chattitle')
|
||||||
@ -311,12 +322,12 @@ function setup_chatview(Thread $thread) {
|
|||||||
// Set enter key shortcut
|
// Set enter key shortcut
|
||||||
if (Settings::get('sendmessagekey') == 'enter') {
|
if (Settings::get('sendmessagekey') == 'enter') {
|
||||||
$data['send_shortcut'] = "Enter";
|
$data['send_shortcut'] = "Enter";
|
||||||
$data['ignorectrl'] = 1;
|
$data['chat']['messageForm']['ignoreCtrl'] = true;
|
||||||
} else {
|
} else {
|
||||||
$data['send_shortcut'] = is_mac_opera()
|
$data['send_shortcut'] = is_mac_opera()
|
||||||
? "⌘-Enter"
|
? "⌘-Enter"
|
||||||
: "Ctrl-Enter";
|
: "Ctrl-Enter";
|
||||||
$data['ignorectrl'] = 0;
|
$data['chat']['messageForm']['ignoreCtrl'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set some browser info
|
// Set some browser info
|
||||||
@ -328,11 +339,13 @@ function setup_chatview(Thread $thread) {
|
|||||||
|
|
||||||
// Load dialogs style options
|
// Load dialogs style options
|
||||||
$style_config = get_dialogs_style_config(getchatstyle());
|
$style_config = get_dialogs_style_config(getchatstyle());
|
||||||
$data['chatStyles.mailWindowParams'] = $style_config['mail']['window_params'];
|
$data['chat']['windowsParams']['mail']
|
||||||
|
= $style_config['mail']['window_params'];
|
||||||
|
|
||||||
// Load core style options
|
// Load core style options
|
||||||
$style_config = get_core_style_config();
|
$style_config = get_core_style_config();
|
||||||
$data['coreStyles.historyWindowParams'] = $style_config['history']['window_params'];
|
$data['chat']['windowsParams']['history']
|
||||||
|
= $style_config['history']['window_params'];
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
@ -351,22 +364,32 @@ function setup_chatview_for_user(Thread $thread, $level) {
|
|||||||
|
|
||||||
$data = setup_chatview($thread);
|
$data = setup_chatview($thread);
|
||||||
|
|
||||||
// Set user info
|
|
||||||
$data['agent'] = false;
|
|
||||||
$data['user'] = true;
|
|
||||||
$data['canpost'] = true;
|
|
||||||
$data['level'] = $level;
|
$data['level'] = $level;
|
||||||
$data['chat.user.name'] = htmlspecialchars(topage($thread->userName));
|
|
||||||
$data['canChangeName'] = Settings::get('usercanchangename') == "1";
|
// Set user info
|
||||||
|
$data['chat']['layoutData']['user'] = true;
|
||||||
|
$data['chat']['user'] = array(
|
||||||
|
'name' => htmlspecialchars(topage($thread->userName)),
|
||||||
|
'canChangeName' => (bool)(Settings::get('usercanchangename') == "1"),
|
||||||
|
'defaultName' => (bool)(getstring("chat.default.username")
|
||||||
|
!= $thread->userName),
|
||||||
|
'canPost' => true,
|
||||||
|
'isAgent' => false
|
||||||
|
);
|
||||||
|
|
||||||
$params = "thread=" . $thread->id . "&token=" . $thread->lastToken;
|
$params = "thread=" . $thread->id . "&token=" . $thread->lastToken;
|
||||||
|
|
||||||
// Set link to send mail page
|
// Set link to send mail page
|
||||||
$data['mailLink'] = "$webimroot/client.php?" . $params . "&level=$level&act=mailthread";
|
$data['chat']['links']['mail'] = "$webimroot/client.php?"
|
||||||
|
. $params
|
||||||
|
. "&level=$level&act=mailthread";
|
||||||
|
|
||||||
// Set SSL link
|
// Set SSL link
|
||||||
if (Settings::get('enablessl') == "1" && !is_secure_request()) {
|
if (Settings::get('enablessl') == "1" && !is_secure_request()) {
|
||||||
$data['sslLink'] = get_app_location(true, true) . "/client.php?" . $params . "&level=$level";
|
$data['chat']['links']['ssl'] = get_app_location(true, true)
|
||||||
|
. "/client.php?"
|
||||||
|
. $params
|
||||||
|
. "&level=$level";
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
@ -388,53 +411,80 @@ function setup_chatview_for_operator(Thread $thread, $operator) {
|
|||||||
$data = setup_chatview($thread);
|
$data = setup_chatview($thread);
|
||||||
|
|
||||||
// Set operator info
|
// Set operator info
|
||||||
$data['agent'] = true;
|
$data['chat']['layoutData']['user'] = false;
|
||||||
$data['user'] = false;
|
$data['chat']['user'] = array(
|
||||||
$data['canpost'] = $thread->agentId == $operator['operatorid'];
|
'name' => htmlspecialchars(
|
||||||
$data['chat.user.name'] = htmlspecialchars(topage(get_user_name($thread->userName, $thread->remote, $thread->userId)));
|
topage(
|
||||||
|
get_user_name(
|
||||||
|
$thread->userName,
|
||||||
|
$thread->remote,
|
||||||
|
$thread->userId
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'canPost' => (bool)($thread->agentId == $operator['operatorid']),
|
||||||
|
'isAgent' => true
|
||||||
|
);
|
||||||
|
|
||||||
// Set SSL link
|
// Set SSL link
|
||||||
if (Settings::get('enablessl') == "1" && !is_secure_request()) {
|
if (Settings::get('enablessl') == "1" && !is_secure_request()) {
|
||||||
$data['sslLink'] = get_app_location(true, true) . "/operator/agent.php?thread=" . $thread->id . "&token=" . $thread->lastToken;
|
$data['chat']['links']['ssl'] = get_app_location(true, true)
|
||||||
|
. "/operator/agent.php?thread="
|
||||||
|
. $thread->id
|
||||||
|
. "&token="
|
||||||
|
. $thread->lastToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set history window params
|
// Set history window params
|
||||||
$data['historyParams'] = array("userid" => (string)$thread->userId);
|
$history_link_params = array("userid" => (string)$thread->userId);
|
||||||
$data['historyParamsLink'] = add_params(
|
$data['chat']['links']['history'] = add_params(
|
||||||
$webimroot . "/operator/userhistory.php",
|
$webimroot . "/operator/userhistory.php",
|
||||||
$data['historyParams']
|
$history_link_params
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set tracking params
|
// Set tracking params
|
||||||
if (Settings::get('enabletracking')) {
|
if (Settings::get('enabletracking')) {
|
||||||
$visitor = track_get_visitor_by_threadid($thread->id);
|
$visitor = track_get_visitor_by_threadid($thread->id);
|
||||||
$data['trackedParams'] = array("visitor" => "" . $visitor['visitorid']);
|
$tracked_link_params = array("visitor" => "" . $visitor['visitorid']);
|
||||||
$data['trackedParamsLink'] = add_params($webimroot . "/operator/tracked.php", $data['trackedParams']);
|
$data['chat']['links']['tracked'] = add_params(
|
||||||
}
|
$webimroot . "/operator/tracked.php",
|
||||||
|
$tracked_link_params
|
||||||
// Get predefined answers
|
|
||||||
$canned_messages = load_canned_messages($thread->locale, 0);
|
|
||||||
if ($thread->groupId) {
|
|
||||||
$canned_messages = array_merge(
|
|
||||||
load_canned_messages($thread->locale, $thread->groupId),
|
|
||||||
$canned_messages
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
$predefined_answers = array();
|
|
||||||
foreach ($canned_messages as $answer) {
|
|
||||||
$predefined_answers[] = array(
|
|
||||||
'short' => htmlspecialchars(
|
|
||||||
topage($answer['vctitle']?$answer['vctitle']:cutstring($answer['vcvalue'], 97, '...'))
|
|
||||||
),
|
|
||||||
'full' => myiconv($webim_encoding, getoutputenc(), $answer['vcvalue'])
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$data['predefinedAnswers'] = json_encode($predefined_answers);
|
|
||||||
|
|
||||||
|
// Check if agent can post messages
|
||||||
|
if ($thread->agentId == $operator['operatorid']) {
|
||||||
|
// Get predefined answers
|
||||||
|
$canned_messages = load_canned_messages($thread->locale, 0);
|
||||||
|
if ($thread->groupId) {
|
||||||
|
$canned_messages = array_merge(
|
||||||
|
load_canned_messages($thread->locale, $thread->groupId),
|
||||||
|
$canned_messages
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
$predefined_answers = array();
|
||||||
|
foreach ($canned_messages as $answer) {
|
||||||
|
$predefined_answers[] = array(
|
||||||
|
'short' => htmlspecialchars(
|
||||||
|
topage($answer['vctitle']
|
||||||
|
? $answer['vctitle']
|
||||||
|
: cutstring($answer['vcvalue'], 97, '...'))
|
||||||
|
),
|
||||||
|
'full' => myiconv(
|
||||||
|
$webim_encoding,
|
||||||
|
getoutputenc(),
|
||||||
|
$answer['vcvalue']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$data['chat']['messageForm']['predefinedAnswers'] = $predefined_answers;
|
||||||
|
}
|
||||||
// Set link to user redirection page
|
// Set link to user redirection page
|
||||||
$params = "thread=" . $thread->id . "&token=" . $thread->lastToken;
|
$params = "thread=" . $thread->id . "&token=" . $thread->lastToken;
|
||||||
$data['redirectLink'] = "$webimroot/operator/agent.php?" . $params . "&act=redirect";
|
$data['chat']['links']['redirect'] = "$webimroot/operator/agent.php?"
|
||||||
|
. $params
|
||||||
|
. "&act=redirect";
|
||||||
|
|
||||||
$data['namePostfix'] = "";
|
$data['namePostfix'] = "";
|
||||||
|
|
||||||
|
@ -132,6 +132,8 @@ if ($pparam == "redirect") {
|
|||||||
$page['additional_css'] = get_additional_css('agent_chat_window');
|
$page['additional_css'] = get_additional_css('agent_chat_window');
|
||||||
$page['additional_js'] = get_additional_js('agent_chat_window');
|
$page['additional_js'] = get_additional_js('agent_chat_window');
|
||||||
$page['js_plugin_options'] = get_js_plugin_options('agent_chat_window');
|
$page['js_plugin_options'] = get_js_plugin_options('agent_chat_window');
|
||||||
|
// Build js application options
|
||||||
|
$page['chatModule'] = json_encode($page['chat']);
|
||||||
// Expand page
|
// Expand page
|
||||||
expand("../styles/dialogs", getchatstyle(), "chat.tpl");
|
expand("../styles/dialogs", getchatstyle(), "chat.tpl");
|
||||||
}
|
}
|
||||||
|
@ -63,40 +63,7 @@
|
|||||||
webimRoot: '${webimroot}',
|
webimRoot: '${webimroot}',
|
||||||
tplRoot: '${tplroot}'
|
tplRoot: '${tplroot}'
|
||||||
},
|
},
|
||||||
chatModule: {
|
chatModule: ${page:chatModule},
|
||||||
user: {
|
|
||||||
${if:user}
|
|
||||||
name: "${page:chat.user.name}",
|
|
||||||
canChangeName: ${if:canChangeName}true${else:canChangeName}false${endif:canChangeName},
|
|
||||||
defaultName: ("${page:chat.user.name}" == "${msg:chat.default.username}"),
|
|
||||||
${endif:user}
|
|
||||||
canPost: ${if:canpost}true${else:canpost}false${endif:canpost},
|
|
||||||
isAgent: ${if:agent}true${else:agent}false${endif:agent}
|
|
||||||
},
|
|
||||||
thread: {
|
|
||||||
id:${page:chat.thread.id},
|
|
||||||
token:${page:chat.thread.token}
|
|
||||||
},
|
|
||||||
messageForm: {
|
|
||||||
${if:agent}${if:canpost}
|
|
||||||
predefinedAnswers: ${page:predefinedAnswers},
|
|
||||||
${endif:canpost}${endif:agent}
|
|
||||||
ignoreCtrl:${if:ignorectrl}true${else:ignorectrl}false${endif:ignorectrl}
|
|
||||||
},
|
|
||||||
links: {
|
|
||||||
mail: "${page:mailLink}",
|
|
||||||
redirect: "${page:redirectLink}",
|
|
||||||
history: "${page:historyParamsLink}",
|
|
||||||
ssl: "${page:sslLink}"
|
|
||||||
},
|
|
||||||
windowsParams: {
|
|
||||||
mail: "${page:chatStyles.mailWindowParams}",
|
|
||||||
history: "${page:coreStyles.historyWindowParams}"
|
|
||||||
},
|
|
||||||
layoutData: {
|
|
||||||
user: ${if:user}true${else:user}false${endif:user}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
plugins: ${page:js_plugin_options}
|
plugins: ${page:js_plugin_options}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user