mirror of
				https://github.com/Mibew/java.git
				synced 2025-10-31 18:41:09 +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_js'] = get_additional_js('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("styles/dialogs", getchatstyle(), "chat.tpl"); | ||||
| } else if( $level == "old" ) { | ||||
|  | ||||
| @ -293,9 +293,20 @@ function setup_chatview(Thread $thread) { | ||||
| 		$group = array(); | ||||
| 	} | ||||
| 
 | ||||
| 	// Create some empty arrays
 | ||||
| 	$data['chat'] = array( | ||||
| 		'messageForm' => array(), | ||||
| 		'links' => array(), | ||||
| 		'windowsParams' => array(), | ||||
| 		'layoutData' => array() | ||||
| 	); | ||||
| 
 | ||||
| 	// Set thread params
 | ||||
| 	$data['chat.thread.id'] = $thread->id; | ||||
| 	$data['chat.thread.token'] = $thread->lastToken; | ||||
| 	$data['chat']['thread'] = array( | ||||
| 		'id' => $thread->id, | ||||
| 		'token' => $thread->lastToken | ||||
| 	); | ||||
| 
 | ||||
| 	$data['chat.title'] = topage( | ||||
| 		empty($group['vcchattitle']) | ||||
| 			? Settings::get('chattitle') | ||||
| @ -311,12 +322,12 @@ function setup_chatview(Thread $thread) { | ||||
| 	// Set enter key shortcut
 | ||||
| 	if (Settings::get('sendmessagekey') == 'enter') { | ||||
| 		$data['send_shortcut'] = "Enter"; | ||||
| 		$data['ignorectrl'] = 1; | ||||
| 		$data['chat']['messageForm']['ignoreCtrl'] = true; | ||||
| 	} else { | ||||
| 		$data['send_shortcut'] = is_mac_opera() | ||||
| 			? "⌘-Enter" | ||||
| 			: "Ctrl-Enter"; | ||||
| 		$data['ignorectrl'] = 0; | ||||
| 		$data['chat']['messageForm']['ignoreCtrl'] = false; | ||||
| 	} | ||||
| 
 | ||||
| 	// Set some browser info
 | ||||
| @ -328,11 +339,13 @@ function setup_chatview(Thread $thread) { | ||||
| 
 | ||||
| 	// Load dialogs style options
 | ||||
| 	$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
 | ||||
| 	$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; | ||||
| } | ||||
| @ -351,22 +364,32 @@ function setup_chatview_for_user(Thread $thread, $level) { | ||||
| 
 | ||||
| 	$data = setup_chatview($thread); | ||||
| 
 | ||||
| 	// Set user info
 | ||||
| 	$data['agent'] = false; | ||||
| 	$data['user'] = true; | ||||
| 	$data['canpost'] = true; | ||||
| 	$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; | ||||
| 
 | ||||
| 	// 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
 | ||||
| 	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; | ||||
| @ -388,53 +411,80 @@ function setup_chatview_for_operator(Thread $thread, $operator) { | ||||
| 	$data = setup_chatview($thread); | ||||
| 
 | ||||
| 	// Set operator info
 | ||||
| 	$data['agent'] = true; | ||||
| 	$data['user'] = false; | ||||
| 	$data['canpost'] = $thread->agentId == $operator['operatorid']; | ||||
| 	$data['chat.user.name'] = htmlspecialchars(topage(get_user_name($thread->userName, $thread->remote, $thread->userId))); | ||||
| 	$data['chat']['layoutData']['user'] = false; | ||||
| 	$data['chat']['user'] = array( | ||||
| 		'name' => htmlspecialchars( | ||||
| 			topage( | ||||
| 				get_user_name( | ||||
| 					$thread->userName, | ||||
| 					$thread->remote, | ||||
| 					$thread->userId | ||||
| 				) | ||||
| 			) | ||||
| 		), | ||||
| 		'canPost' => (bool)($thread->agentId == $operator['operatorid']), | ||||
| 		'isAgent' => true | ||||
| 	); | ||||
| 
 | ||||
| 	// Set SSL link
 | ||||
| 	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
 | ||||
| 	$data['historyParams'] = array("userid" => (string)$thread->userId); | ||||
| 	$data['historyParamsLink'] = add_params( | ||||
| 	$history_link_params = array("userid" => (string)$thread->userId); | ||||
| 	$data['chat']['links']['history'] = add_params( | ||||
| 		$webimroot . "/operator/userhistory.php", | ||||
| 		$data['historyParams'] | ||||
| 		$history_link_params | ||||
| 	); | ||||
| 
 | ||||
| 	// Set tracking params
 | ||||
| 	if (Settings::get('enabletracking')) { | ||||
| 	    $visitor = track_get_visitor_by_threadid($thread->id); | ||||
| 	    $data['trackedParams'] = array("visitor" => "" . $visitor['visitorid']); | ||||
| 	    $data['trackedParamsLink'] = add_params($webimroot . "/operator/tracked.php", $data['trackedParams']); | ||||
| 	} | ||||
| 
 | ||||
| 	// 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']) | ||||
| 		$tracked_link_params = array("visitor" => "" . $visitor['visitorid']); | ||||
| 		$data['chat']['links']['tracked'] = add_params( | ||||
| 			$webimroot . "/operator/tracked.php", | ||||
| 			$tracked_link_params | ||||
| 		); | ||||
| 	} | ||||
| 	$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
 | ||||
| 	$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'] = ""; | ||||
| 
 | ||||
|  | ||||
| @ -132,6 +132,8 @@ if ($pparam == "redirect") { | ||||
| 	$page['additional_css'] = get_additional_css('agent_chat_window'); | ||||
| 	$page['additional_js'] = get_additional_js('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("../styles/dialogs", getchatstyle(), "chat.tpl"); | ||||
| } | ||||
|  | ||||
| @ -63,40 +63,7 @@ | ||||
|                         webimRoot: '${webimroot}', | ||||
|                         tplRoot: '${tplroot}' | ||||
|                     }, | ||||
|                     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} | ||||
|                         } | ||||
|                     }, | ||||
|                     chatModule: ${page:chatModule}, | ||||
|                     plugins: ${page:js_plugin_options} | ||||
|                 }); | ||||
|             }); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user