Compare commits
199 Commits
Author | SHA1 | Date | |
---|---|---|---|
dcd5ecebfa | |||
32b9ba862b | |||
eb65ec9329 | |||
d6c18a5ef7 | |||
3ea9c6c893 | |||
4cd7bab1be | |||
95d95daa34 | |||
|
b5d05f5411 | ||
|
13ca97f10d | ||
|
4f483abe26 | ||
|
2400cd2588 | ||
|
035479f7a2 | ||
|
b969bf7717 | ||
|
463ff10744 | ||
|
2b3b897545 | ||
|
875bccb9d0 | ||
|
d753a68a9e | ||
|
ae2d6e95bb | ||
|
15c1127cb7 | ||
|
dbd2a058e2 | ||
|
9df971df14 | ||
|
34765f7180 | ||
|
cb373fb7f2 | ||
|
701c8e2251 | ||
a749909f90 | |||
6a867b4a92 | |||
|
d02b113f93 | ||
|
aee46f9e2a | ||
|
c053bfe283 | ||
|
7ff174aa86 | ||
|
ff141e42f2 | ||
|
1700b128b0 | ||
|
2261c1cfbe | ||
|
a68b9e6e9c | ||
|
02c43a147d | ||
|
483bc80180 | ||
|
71f9b1fa6a | ||
|
81c84f3702 | ||
|
ab922fd519 | ||
|
4257b6f87b | ||
|
049def144e | ||
|
acc86b9221 | ||
|
3715d2207e | ||
|
5595bd0f6e | ||
|
2a5943c058 | ||
|
9d9cbf7e81 | ||
|
3d368c6783 | ||
|
9cc2833364 | ||
|
f4e99a3d52 | ||
|
03dec2afb2 | ||
|
2bcffd5f4a | ||
|
84bd011a11 | ||
|
74bc8de4fb | ||
|
893d455a32 | ||
|
d61a9d30f7 | ||
|
d308977a00 | ||
|
8a39697351 | ||
|
c48cf51e58 | ||
|
acfd461617 | ||
|
0829a0bd2b | ||
|
36283f4f87 | ||
|
735225dea8 | ||
|
dd92249a0a | ||
|
7f290fd2b2 | ||
|
a58c7774a0 | ||
|
de5717e2f2 | ||
|
d0db10ae6e | ||
|
374e3307d9 | ||
|
7418e57075 | ||
|
32d64d8600 | ||
|
f65b49d49b | ||
|
b34f1727c0 | ||
|
bd97e06dab | ||
|
21d0e5ada6 | ||
|
419f161723 | ||
|
47ba545e4c | ||
|
2d77bc03f6 | ||
|
e43c517b49 | ||
|
1388151bf8 | ||
|
7cc810c683 | ||
|
e304901bd0 | ||
|
d70bfbcce0 | ||
|
a0a9a7f708 | ||
|
43e69a0e3a | ||
|
83e861cf9b | ||
|
3d42b81053 | ||
|
4eb81a1fd7 | ||
|
4bd0b9dd37 | ||
|
ffbd9397ab | ||
|
47b4a82da2 | ||
|
a0d3403cb5 | ||
|
f069d8d9b6 | ||
|
b1e2624702 | ||
|
a99a621a66 | ||
|
64f27e8805 | ||
|
d916b10276 | ||
|
e5833dcc75 | ||
|
5459b5ff4b | ||
|
4087a5f9bc | ||
|
8ff4c21993 | ||
|
1d69ead8f2 | ||
|
024fc33d78 | ||
|
fd24c49f5b | ||
|
a9b87cf5e7 | ||
|
d69f6463b4 | ||
|
b1113fcbe1 | ||
|
03dc8d7bbf | ||
|
03f4b241b3 | ||
|
755078d223 | ||
|
af1d15c401 | ||
|
d9f8b2366e | ||
|
2c0ebbe7c9 | ||
|
3e617ff62e | ||
|
ad270cf968 | ||
|
d97b7c45c6 | ||
|
465172329b | ||
|
68ec93abf6 | ||
|
4cd3cd3e47 | ||
|
07b1d1310b | ||
|
836ffcc62a | ||
|
d749e58621 | ||
|
e2b5238b78 | ||
|
b77ee7efb0 | ||
|
fd597941ee | ||
|
cecdbacf8a | ||
|
4524bafd0a | ||
|
3903449edc | ||
|
59e5325785 | ||
|
f82f10ee71 | ||
|
af3ebb058e | ||
|
3e5f3c254c | ||
|
fb7bddebdc | ||
|
eb71d62ffd | ||
|
79d789f98d | ||
|
10dcf26128 | ||
|
3994000200 | ||
|
828e59d53f | ||
|
63a083804c | ||
|
ade7d13151 | ||
|
cee36b75fc | ||
|
a2b897f91e | ||
|
904d5588e7 | ||
|
1f6946ec44 | ||
|
5b743ecdec | ||
|
491676f37e | ||
|
190f7914f4 | ||
|
91683c4de0 | ||
|
f8571cfa67 | ||
|
c2c0953aff | ||
|
86bfe87956 | ||
|
3cdfd8fd3c | ||
|
c1abc7376e | ||
|
95701358da | ||
|
2acc073581 | ||
|
85734d07a5 | ||
|
79d901847f | ||
|
923b9c944a | ||
|
01217e6b7d | ||
|
ecb7d3643f | ||
|
e453ed2757 | ||
|
cb85159474 | ||
|
fcb70074bf | ||
|
5bf6ed1acd | ||
|
0656e7d8f2 | ||
|
3d8cc81ced | ||
|
3988fe9724 | ||
|
9a054da64b | ||
|
42bb76d504 | ||
|
b39c9a8d33 | ||
|
9f4db8d39d | ||
|
7c65433c5f | ||
|
f9965f4d10 | ||
|
ecfe7ebfc4 | ||
|
d98d0e04d8 | ||
|
958423ef35 | ||
|
5b91e98928 | ||
|
2b31cc8d33 | ||
|
3a17dd02ab | ||
|
c37027ebb0 | ||
|
8824ee3923 | ||
|
c64d4d3525 | ||
|
dcc2f75732 | ||
|
a126c76477 | ||
|
67809dc9d9 | ||
|
461f9ed8e2 | ||
|
fa7330b365 | ||
|
23e6e1edb5 | ||
|
e674c47058 | ||
|
a5736fc53f | ||
|
21d38e3fd9 | ||
|
eedb94d05a | ||
|
92b23e9cd8 | ||
|
35fe72e503 | ||
|
ecad44411f | ||
|
d47e4fe437 | ||
|
28443beb9e | ||
|
e2ffddf9b5 | ||
|
1628945de0 | ||
|
0b69213378 |
@ -52,89 +52,12 @@ chdir "$targetFolder";
|
||||
|
||||
chdir "locales";
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_cs.zip cs`;
|
||||
`rm -rf cs`;
|
||||
foreach $locale qw ( ar be bg ca cs da de el fa fi fr he hr hu id it ka lv nl pl pt-br pt-pt ro ru sp sv th tr ua zh-cn zh-tw ) {
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_fi.zip fi`;
|
||||
`rm -rf fi`;
|
||||
`zip -r ../../release$suffix/mibew${suffix}_$locale.zip $locale`;
|
||||
`rm -rf $locale`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_da.zip da`;
|
||||
`rm -rf da`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_el.zip el`;
|
||||
`rm -rf el`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_lv.zip lv`;
|
||||
`rm -rf lv`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_fa.zip fa`;
|
||||
`rm -rf fa`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_nl.zip nl`;
|
||||
`rm -rf nl`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_th.zip th`;
|
||||
`rm -rf th`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_ar.zip ar`;
|
||||
`rm -rf ar`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_bg.zip bg`;
|
||||
`rm -rf bg`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_ca.zip ca`;
|
||||
`rm -rf ca`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_de.zip de`;
|
||||
`rm -rf de`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_ru.zip ru`;
|
||||
`rm -rf ru`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_ro.zip ro`;
|
||||
`rm -rf ro`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_hu.zip hu`;
|
||||
`rm -rf hu`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_fr.zip fr`;
|
||||
`rm -rf fr`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_it.zip it`;
|
||||
`rm -rf it`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_ka.zip ka`;
|
||||
`rm -rf ka`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_pl.zip pl`;
|
||||
`rm -rf pl`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_pt-br.zip pt-br`;
|
||||
`rm -rf pt-br`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_sp.zip sp`;
|
||||
`rm -rf sp`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_sv.zip sv`;
|
||||
`rm -rf sv`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_ua.zip ua`;
|
||||
`rm -rf ua`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_he.zip he`;
|
||||
`rm -rf he`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_hr.zip hr`;
|
||||
`rm -rf hr`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_tr.zip tr`;
|
||||
`rm -rf tr`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_zh-cn.zip zh-cn`;
|
||||
`rm -rf zh-cn`;
|
||||
|
||||
`zip -r ../../release$suffix/mibew${suffix}_zh-tw.zip zh-tw`;
|
||||
`rm -rf zh-tw`;
|
||||
}
|
||||
|
||||
chdir "..";
|
||||
`zip -r ../release$suffix/mibew$suffix.zip * .htaccess`;
|
||||
|
@ -21,6 +21,7 @@ require_once('libs/operator.php');
|
||||
require_once('libs/groups.php');
|
||||
require_once('libs/expand.php');
|
||||
require_once('libs/captcha.php');
|
||||
require_once('libs/notify.php');
|
||||
|
||||
loadsettings();
|
||||
if($settings['enablessl'] == "1" && $settings['forcessl'] == "1") {
|
||||
@ -125,6 +126,7 @@ if( !isset($_GET['token']) || !isset($_GET['thread']) ) {
|
||||
$postedid = post_message_($thread['threadid'],$kind_user,$firstmessage,$link,$visitor['name']);
|
||||
commit_thread( $thread['threadid'], array('shownmessageid' => $postedid), $link);
|
||||
}
|
||||
notify_operators($thread, $firstmessage, $link);
|
||||
mysql_close($link);
|
||||
}
|
||||
$threadid = $thread['threadid'];
|
||||
|
@ -249,6 +249,7 @@ img.left {
|
||||
|
||||
.tabs {
|
||||
float: right;
|
||||
margin-left: 15px;
|
||||
display: inline;
|
||||
margin-right: 15px;
|
||||
}
|
||||
@ -297,6 +298,10 @@ img.left {
|
||||
margin-bottom:8px;
|
||||
}
|
||||
|
||||
.packedFormField select {
|
||||
min-width: 130px;
|
||||
}
|
||||
|
||||
div.errinfo {
|
||||
color: #c13030;
|
||||
}
|
||||
@ -490,6 +495,16 @@ table.list td a.man {
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
table.list td a.mail {
|
||||
background: url(images/mail.png) no-repeat left center;
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
table.list td a.xmpp {
|
||||
background: url(images/xmpp.png) no-repeat left center;
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
table.list tbody tr:hover td, table.list tbody tr:hover td a, table.statistics tbody tr:hover td {
|
||||
color: #1D485E;
|
||||
}
|
||||
@ -728,6 +743,8 @@ table.awaiting td.visitor {
|
||||
.dashitem img, #dashlocalesPopup h2 img {
|
||||
float: left;
|
||||
padding-right:10px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#dashlocalesPopup h2 img {
|
||||
|
BIN
src/messenger/webim/images/dash/notifications.gif
Normal file
After Width: | Height: | Size: 690 B |
BIN
src/messenger/webim/images/mail.png
Executable file
After Width: | Height: | Size: 328 B |
BIN
src/messenger/webim/images/xmpp.png
Executable file
After Width: | Height: | Size: 331 B |
@ -72,6 +72,7 @@ $dbtables = array(
|
||||
"vcavatar" => "varchar(255)",
|
||||
"vcjabbername" => "varchar(255)",
|
||||
"iperm" => "int DEFAULT 65535",
|
||||
"inotify" => "int DEFAULT 0", /* 0 - none, 1 - jabber */
|
||||
"dtmrestore" => "datetime DEFAULT 0",
|
||||
"vcrestoretoken" => "varchar(64)",
|
||||
),
|
||||
@ -105,7 +106,18 @@ $dbtables = array(
|
||||
"locale" => "varchar(8)",
|
||||
"groupid" => "int references ${mysqlprefix}chatgroup(groupid)",
|
||||
"vcvalue" => "varchar(1024) NOT NULL",
|
||||
)
|
||||
),
|
||||
|
||||
"${mysqlprefix}chatnotification" => array(
|
||||
"id" => "INT NOT NULL auto_increment PRIMARY KEY",
|
||||
"locale" => "varchar(8)",
|
||||
"vckind" => "varchar(16)",
|
||||
"vcto" => "varchar(256)",
|
||||
"dtmcreated" => "datetime DEFAULT 0",
|
||||
"vcsubject" => "varchar(256)",
|
||||
"tmessage" => "text NOT NULL",
|
||||
"refoperator" => "int NOT NULL references ${mysqlprefix}chatoperator(operatorid)",
|
||||
),
|
||||
);
|
||||
|
||||
$dbtables_indexes = array(
|
||||
@ -119,11 +131,12 @@ $memtables = array();
|
||||
$dbtables_can_update = array(
|
||||
"${mysqlprefix}chatthread" => array("agentId", "userTyping", "agentTyping", "messageCount", "nextagent", "shownmessageid", "userid", "userAgent", "groupid"),
|
||||
"${mysqlprefix}chatmessage" => array("agentId"),
|
||||
"${mysqlprefix}chatoperator" => array("vcavatar", "vcjabbername", "iperm", "istatus", "vcemail", "dtmrestore", "vcrestoretoken"),
|
||||
"${mysqlprefix}chatoperator" => array("vcavatar", "vcjabbername", "iperm", "istatus", "vcemail", "dtmrestore", "vcrestoretoken", "inotify"),
|
||||
"${mysqlprefix}chatban" => array(),
|
||||
"${mysqlprefix}chatgroup" => array("vcemail"),
|
||||
"${mysqlprefix}chatgroupoperator" => array(),
|
||||
"${mysqlprefix}chatresponses" => array(),
|
||||
"${mysqlprefix}chatnotification" => array(),
|
||||
);
|
||||
|
||||
function show_install_err($text)
|
||||
@ -171,7 +184,7 @@ function create_table($id, $link)
|
||||
mysql_query($query, $link) or show_install_err(' Query failed: ' . mysql_error($link));
|
||||
|
||||
if ($id == "${mysqlprefix}chatoperator") {
|
||||
create_operator_("admin", "", "", "Administrator", "Administrator", "", $link);
|
||||
create_operator_("admin", "", "", "", "Administrator", "Administrator", 0, "", $link);
|
||||
} else if ($id == "${mysqlprefix}chatrevision") {
|
||||
perform_query("INSERT INTO ${mysqlprefix}chatrevision VALUES (1)", $link);
|
||||
}
|
||||
|
@ -38,7 +38,8 @@ if ($act == "silentcreateall") {
|
||||
} else if ($act == "createdb") {
|
||||
mysql_query("CREATE DATABASE $mysqldb", $link) or show_install_err(' Query failed: ' . mysql_error($link));
|
||||
} else {
|
||||
mysql_select_db($mysqldb, $link) or show_install_err('Could not select database');
|
||||
mysql_select_db($mysqldb, $link)
|
||||
or show_install_err('Could not select database');
|
||||
if ($force_charset_in_connection) {
|
||||
mysql_query("SET character set $dbencoding", $link);
|
||||
}
|
||||
@ -118,6 +119,10 @@ if ($act == "silentcreateall") {
|
||||
runsql("ALTER TABLE ${mysqlprefix}chatoperator ADD istatus int DEFAULT 0", $link);
|
||||
}
|
||||
|
||||
if (in_array("${mysqlprefix}chatoperator.inotify", $absent)) {
|
||||
runsql("ALTER TABLE ${mysqlprefix}chatoperator ADD inotify int DEFAULT 0", $link);
|
||||
}
|
||||
|
||||
if (in_array("${mysqlprefix}chatoperator.vcavatar", $absent)) {
|
||||
runsql("ALTER TABLE ${mysqlprefix}chatoperator ADD vcavatar varchar(255)", $link);
|
||||
}
|
||||
|
@ -1,7 +1,12 @@
|
||||
1.6.5
|
||||
-----
|
||||
[+] Apache 2 license
|
||||
[!] csrf fixes
|
||||
[+] switched to google closure compiler for Javascript compression, jQuery 1.4.2
|
||||
[+] improve database schema (add indexes, fix compatibility with MySQL 5.5)
|
||||
[+] silver skin (thanks to Alekin Pavel)
|
||||
[+] informational banner on empty password of administrator
|
||||
[!] CSRF fixes
|
||||
[!] close old threads by timeout
|
||||
|
||||
1.6.4
|
||||
-----
|
||||
|
@ -1 +0,0 @@
|
||||
var myAgent="",myVer=0,myRealAgent="";function detectAgent(){for(var a=["opera","msie","safari","firefox","netscape","mozilla"],b=navigator.userAgent.toLowerCase(),c=0;c<a.length;c++){var d=a[c];if(b.indexOf(d)!=-1){myAgent=d;if(!window.RegExp)break;RegExp(d+"[ /]?([0-9]+(.[0-9]+)?)").exec(b)!=null&&(myVer=parseFloat(RegExp.$1));break}}myRealAgent=myAgent;navigator.product=="Gecko"&&(myAgent="moz")}detectAgent();function getEl(a){return document.getElementById(a)};
|
@ -1,24 +0,0 @@
|
||||
/*
|
||||
This file is part of Mibew Messenger project.
|
||||
http://mibew.org
|
||||
|
||||
Copyright (c) 2005-2011 Mibew Messenger Community
|
||||
License: http://mibew.org/license.php
|
||||
*/
|
||||
var FrameUtils={getDocument:function(a){return a.contentDocument?a.contentDocument:a.contentWindow?a.contentWindow.document:a.document?a.document:null},initFrame:function(a){var b=this.getDocument(a);b.open();b.write("<html><head>");b.write('<link rel="stylesheet" type="text/css" media="all" href="'+Chat.cssfile+'">');b.write("</head><body bgcolor='#FFFFFF' text='#000000' link='#C28400' vlink='#C28400' alink='#C28400'>");b.write("<table width='100%' cellspacing='0' cellpadding='0' border='0'><tr><td valign='top' class='message' id='content'></td></tr></table><a id='bottom' name='bottom'></a>");
|
||||
b.write("</body></html>");b.close();a.onload=function(){a.myHtml&&(FrameUtils.getDocument(a).getElementById("content").innerHTML+=a.myHtml,FrameUtils.scrollDown(a))}},insertIntoFrame:function(a,b){var c=this.getDocument(a).getElementById("content");if(c==null){if(!a.myHtml)a.myHtml="";a.myHtml+=b}else c.innerHTML+=b},scrollDown:function(a){var b=this.getDocument(a).getElementById("bottom");if(myAgent=="opera")try{a.contentWindow.scrollTo(0,this.getDocument(a).getElementById("content").clientHeight)}catch(c){}b&&
|
||||
b.scrollIntoView(!1)}};Ajax.ChatThreadUpdater=Class.create();
|
||||
Class.inherit(Ajax.ChatThreadUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.onComplete=this.requestComplete.bind(this);this._options.onException=this.handleException.bind(this);this._options.onTimeout=this.handleTimeout.bind(this);this._options.timeout=5E3;this.updater={};this.frequency=this._options.frequency||2;this.lastupdate=0;this.focused=this.skipNextsound=this.cansend=!0;this.ownThread=this._options.message!=null;FrameUtils.initFrame(this._options.container);if(this._options.message)this._options.message.onkeydown=
|
||||
this.handleKeyDown.bind(this),this._options.message.onfocus=function(){this.focused=!0}.bind(this),this._options.message.onblur=function(){this.focused=!1}.bind(this);this.update()},handleException:function(){this.setStatus("offline, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},handleTimeout:function(){this.setStatus("timeout, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},updateOptions:function(a){this._options.parameters=
|
||||
"act="+a+"&thread="+(this._options.threadid||0)+"&token="+(this._options.token||0)+"&lastid="+(this._options.lastid||0);this._options.user&&(this._options.parameters+="&user=true");a=="refresh"&&this._options.message&&this._options.message.value!=""&&(this._options.parameters+="&typed=1")},enableInput:function(a){if(this._options.message)this._options.message.disabled=!a},stopUpdate:function(){this.enableInput(!0);if(this.updater._options)this.updater._options.onComplete=void 0;clearTimeout(this.timer)},
|
||||
update:function(){this.updateOptions("refresh");this.updater=new Ajax.Request(this._options.servl,this._options)},requestComplete:function(a){try{this.enableInput(!0);this.cansend=!0;var b=Ajax.getXml(a);b&&b.tagName=="thread"?this.updateContent(b):this.handleError(a,b,"refresh messages failed")}catch(c){}this.skipNextsound=!1;this.timer=setTimeout(this.update.bind(this),this.frequency*1E3)},postMessage:function(a){if(a!=""&&this.cansend){this.cansend=!1;this.stopUpdate();this.skipNextsound=!0;this.updateOptions("post");
|
||||
var b={}.extend(this._options);b.parameters+="&message="+encodeURIComponent(a);b.onComplete=function(a){this.requestComplete(a);if(this._options.message)this._options.message.value="",this._options.message.focus()}.bind(this);myRealAgent!="opera"&&this.enableInput(!1);this.updater=new Ajax.Request(this._options.servl,b)}},changeName:function(a){this.skipNextsound=!0;new Ajax.Request(this._options.servl,{parameters:"act=rename&thread="+(this._options.threadid||0)+"&token="+(this._options.token||0)+
|
||||
"&name="+encodeURIComponent(a)})},onThreadClosed:function(a){var b=Ajax.getXml(a);b&&b.tagName=="closed"?setTimeout("window.close()",2E3):this.handleError(a,b,"cannot close")},closeThread:function(){var a="act=close&thread="+(this._options.threadid||0)+"&token="+(this._options.token||0);this._options.user&&(a+="&user=true");new Ajax.Request(this._options.servl,{parameters:a,onComplete:this.onThreadClosed.bind(this)})},processMessage:function(a,b){var c=NodeUtils.getNodeText(b);FrameUtils.insertIntoFrame(a,
|
||||
c)},showTyping:function(a){if($("typingdiv"))$("typingdiv").style.display=a?"inline":"none"},setupAvatar:function(a){a=NodeUtils.getNodeText(a);if(this._options.avatar&&this._options.user)this._options.avatar.innerHTML=a!=""?'<img src="'+Chat.webimRoot+'/images/free.gif" width="7" height="1" border="0" alt="" /><img src="'+a+'" border="0" alt=""/>':""},updateContent:function(a){var b=!1,c=this._options.container,d=NodeUtils.getAttrValue(a,"lastid");if(d)this._options.lastid=d;(d=NodeUtils.getAttrValue(a,
|
||||
"typing"))&&this.showTyping(d=="1");if((d=NodeUtils.getAttrValue(a,"canpost"))&&(d=="1"&&!this.ownThread||this.ownThread&&d!="1"))window.location.href=window.location.href;for(d=0;d<a.childNodes.length;d++){var e=a.childNodes[d];e.tagName=="message"?(b=!0,this.processMessage(c,e)):e.tagName=="avatar"&&this.setupAvatar(e)}window.location.search.indexOf("trace=on")>=0?(a="updated",this.lastupdate>0&&(c=((new Date).getTime()-this.lastupdate)/1E3,a=a+", "+c+" secs",c>10&&alert(a)),this.lastupdate=(new Date).getTime(),
|
||||
this.setStatus(a)):this.clearStatus();b&&(FrameUtils.scrollDown(this._options.container),this.skipNextsound||(b=$("soundimg"),(b==null||b.className.match(/\bisound\b/))&&playSound(Chat.webimRoot+"/sounds/new_message.wav")),this.focused||window.focus())},isSendkey:function(a,b){return b==13&&(a||this._options.ignorectrl)||b==10},handleKeyDown:function(a){a?(ctrl=a.ctrlKey,a=a.which):(a=event.keyCode,ctrl=event.ctrlKey);if(this._options.message&&this.isSendkey(ctrl,a))return a=this._options.message.value,
|
||||
this._options.ignorectrl&&(a=a.replace(/[\r\n]+$/,"")),this.postMessage(a),!1;return!0},handleError:function(a,b){b&&b.tagName=="error"?this.setStatus(NodeUtils.getNodeValue(b,"descr")):this.setStatus("reconnecting")},showStatusDiv:function(a){if($("engineinfo"))$("engineinfo").style.display="inline",$("engineinfo").innerHTML=a},setStatus:function(a){this.statusTimeout&&clearTimeout(this.statusTimeout);this.showStatusDiv(a);this.statusTimeout=setTimeout(this.clearStatus.bind(this),4E3)},clearStatus:function(){$("engineinfo").style.display=
|
||||
"none"}});var Chat={threadUpdater:{},applyName:function(){Chat.threadUpdater.changeName($("uname").value);$("changename1").style.display="none";$("changename2").style.display="inline";$("unamelink").innerHTML=htmlescape($("uname").value)},showNameField:function(){$("changename1").style.display="inline";$("changename2").style.display="none"}};
|
||||
Behaviour.register({"#postmessage a":function(a){a.onclick=function(){var a=$("msgwnd");a&&Chat.threadUpdater.postMessage(a.value)}},"select#predefined":function(a){a.onchange=function(){var a=$("msgwnd");if(this.selectedIndex!=0)a.value=this.options[this.selectedIndex].innerText||this.options[this.selectedIndex].innerHTML;this.selectedIndex=0;a.focus()}},"div#changename2 a":function(a){a.onclick=function(){Chat.showNameField();return!1}},"div#changename1 a":function(a){a.onclick=function(){Chat.applyName();
|
||||
return!1}},"div#changename1 input#uname":function(a){a.onkeydown=function(a){(a||event).keyCode==13&&Chat.applyName()}},"a#refresh":function(a){a.onclick=function(){Chat.threadUpdater.stopUpdate();Chat.threadUpdater.update()}},"a#togglesound":function(a){a.onclick=function(){var a=$("soundimg");if(a)a.className=a.className.match(/\bisound\b/)?"tplimage inosound":"tplimage isound",(a=$("msgwnd"))&&a.focus()}},"a.closethread":function(a){a.onclick=function(){Chat.threadUpdater.closeThread()}}});
|
||||
EventHelper.register(window,"onload",function(){Chat.webimRoot=threadParams.wroot;Chat.cssfile=threadParams.cssfile;Chat.threadUpdater=new Ajax.ChatThreadUpdater({ignorectrl:-1,container:myRealAgent=="safari"?self.frames[0]:$("chatwnd"),avatar:$("avatarwnd"),message:$("msgwnd")}.extend(threadParams||{}))});
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
This file is part of Mibew Messenger project.
|
||||
http://mibew.org
|
||||
|
||||
Copyright (c) 2005-2011 Mibew Messenger Community
|
||||
License: http://mibew.org/license.php
|
||||
*/
|
||||
var Class={create:function(){return function(){this.initialize.apply(this,arguments)}},inherit:function(a,b,c){Object.extend(Object.extend(a.prototype,b.prototype),c)}};Object.extend=function(a,b){for(property in b)a[property]=b[property];return a};Object.prototype.extend=function(a){return Object.extend.apply(this,[this,a])};Function.prototype.bind=function(a){var b=this;return function(){return b.apply(a,arguments)}};
|
||||
Function.prototype.bindAsEventListener=function(a){var b=this;return function(c){b.call(a,c||window.event)}};Number.prototype.toColorPart=function(){var a=this.toString(16);if(this<16)return"0"+a;return a};var Try={these:function(){for(var a,b=0;b<arguments.length;b++){var c=arguments[b];try{a=c();break}catch(d){}}return a}},PeriodicalExecuter=Class.create();
|
||||
PeriodicalExecuter.prototype={initialize:function(a,b){this.callback=a;this.frequency=b;this.currentlyExecuting=!1;this.registerCallback()},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1E3)},onTimerEvent:function(){if(!this.currentlyExecuting)try{this.currentlyExecuting=!0,this.callback()}finally{this.currentlyExecuting=!1}}};
|
||||
function findObj(a){var b;if(!(b=document[a])&&document.all)b=document.all[a];!b&&document.getElementById&&(b=document.getElementById(a));if(!b&&!document.all&&document.getElementsByName){b=document.getElementsByName(a);if(b.length==0)return null;if(b.length==1)return b[0]}return b}if(!Array.prototype.push)Array.prototype.push=function(){for(var a=this.length,b=0;b<arguments.length;b++)this[a+b]=arguments[b];return this.length};
|
||||
function $(){for(var a=[],b=0;b<arguments.length;b++){var c=arguments[b];typeof c=="string"&&(c=findObj(c));if(arguments.length==1)return c;a.push(c)}return a}
|
||||
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest})||!1},getXml:function(a){if(a&&a.status>=200&&a.status<300&&(a=a.responseXML)&&a.documentElement)return a.documentElement;return null},getError:function(a){return a.statusText||"connection error N"+a.status},emptyFunction:function(){},Base:function(){}};
|
||||
Ajax.Base.prototype={setOptions:function(a){this._options={_method:"post",asynchronous:!0,parameters:""}.extend(a||{})},getStatus:function(){try{return this.transport.status||0}catch(a){return 0}},responseIsSuccess:function(){var a=this.getStatus();return!a||a>=200&&a<300},responseIsFailure:function(){return!this.responseIsSuccess()}};Ajax.Request=Class.create();Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
|
||||
Class.inherit(Ajax.Request,Ajax.Base,{initialize:function(a,b){this.transport=Ajax.getTransport();this.setOptions(b);this.transportTimer={};this.finished=!1;this.request(a)},request:function(a){var b=this._options.parameters||"";b.length>0&&(b+="&_=");try{this._options._method=="get"&&b.length>0&&(a+="?"+b);this.transport.open(this._options._method.toUpperCase(),a,this._options.asynchronous);if(this._options.asynchronous&&(this.transport.onreadystatechange=this.onStateChange.bind(this),this._options.timeout))this.transportTimer=
|
||||
setTimeout(this.handleTimeout.bind(this),this._options.timeout);this.setRequestHeaders();var c=this._options.postBody?this._options.postBody:b;this.transport.send(this._options._method=="post"?c:null)}catch(d){this.dispatchException(d)}},setRequestHeaders:function(){var a=["X-Requested-With","XMLHttpRequest"];this._options._method=="post"&&(a.push("Content-type","application/x-www-form-urlencoded"),this.transport.overrideMimeType&&(navigator.userAgent.match("/Gecko/(d{4})/")||[0,2005])[1]<2005&&a.push("Connection",
|
||||
"close"));this._options.requestHeaders&&a.push.apply(a,this._options.requestHeaders);for(var b=0;b<a.length;b+=2)this.transport.setRequestHeader(a[b],a[b+1])},onStateChange:function(){this.transport.readyState!=1&&this.respondToReadyState(this.transport.readyState)},handleTimeout:function(){if(!this.finished)this.finished=!0,(this._options.onTimeout||Ajax.emptyFunction)(this)},respondToReadyState:function(a){if(Ajax.Request.Events[a]=="Complete"){try{if(!this.finished)this.finished=!0,this._options.timeout&&
|
||||
clearTimeout(this.transportTimer),(this._options.onComplete||Ajax.emptyFunction)(this.transport)}catch(b){this.dispatchException(b)}this.transport.onreadystatechange=Ajax.emptyFunction}},dispatchException:function(a){(this._options.onException||Ajax.emptyFunction)(this,a)}});
|
||||
var EventHelper={register:function(a,b,c){var d=a[b];a[b]=typeof d!="function"?c:function(){d();c()}}},Behaviour={list:[],register:function(a){Behaviour.list.push(a)},init:function(){EventHelper.register(window,"onload",function(){Behaviour.apply()})},apply:function(){for(h=0;sheet=Behaviour.list[h];h++)for(selector in sheet)if(list=document.getElementsBySelector(selector))for(i=0;element=list[i];i++)sheet[selector](element)}};Behaviour.init();
|
||||
function getAllChildren(a){return a.all?a.all:a.getElementsByTagName("*")}
|
||||
document.getElementsBySelector=function(a){if(!document.getElementsByTagName)return[];for(var a=a.split(" "),b=Array(document),c=0;c<a.length;c++)if(token=a[c].replace(/^\s+/,"").replace(/\s+$/,""),token.indexOf("#")>-1){var d=token.split("#"),e=d[0],b=document.getElementById(d[1]);if(b==null||e&&b.nodeName.toLowerCase()!=e)return[];b=Array(b)}else if(token.indexOf(".")>-1){d=token.split(".");e=d[0];d=d[1];e||(e="*");for(var l=[],j=0,n=0;n<b.length;n++){var g;g=e=="*"?getAllChildren(b[n]):b[n].getElementsByTagName(e);
|
||||
if(g!=null)for(var o=0;o<g.length;o++)l[j++]=g[o]}b=[];for(j=e=0;j<l.length;j++)l[j].className&&l[j].className.match(RegExp("\\b"+d+"\\b"))&&(b[e++]=l[j])}else{if(!b[0])return;e=token;l=[];for(n=j=0;n<b.length;n++){g=b[n].getElementsByTagName(e);for(o=0;o<g.length;o++)l[j++]=g[o]}b=l}return b};
|
||||
var NodeUtils={getNodeValue:function(a,b){var c=a.getElementsByTagName(b);if(c.length==0)return"";var c=c[0].childNodes,d="";for(i=0;i<c.length;i++)d+=c[i].nodeValue;return d},getNodeText:function(a){var a=a.childNodes,b="";for(i=0;i<a.length;i++)b+=a[i].nodeValue;return b},getAttrValue:function(a,b){for(k=0;k<a.attributes.length;k++)if(a.attributes[k].nodeName==b)return a.attributes[k].nodeValue;return null}},CommonUtils={getRow:function(a,b){var c=b.rows[a];if(c!=null)return c;if(b.rows.head!=null)return null;
|
||||
for(k=0;k<b.rows.length;k++)if(b.rows[k].id==a)return b.rows[k];return null},getCell:function(a,b,c){var d=b.cells[a];if(d!=null)return d;if(c.rows.head!=null)return null;for(k=0;k<b.cells.length;k++)if(b.cells[k].id==a)return b.cells[k];return null},insertCell:function(a,b,c,d,e,l){a=a.insertCell(-1);a.id=b;if(d)a.align=d;a.className=c;if(e)a.height=e;a.innerHTML=l}};
|
||||
function playSound(a){var b=document.createElement("div");if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1)b.style="position: absolute; left: 0px; top: -200px;";document.body.appendChild(b);b.innerHTML='<audio autoplay src="'+a+'"><embed src="'+a+'" hidden="true" autostart="true" loop="false"></audio>'}function htmlescape(a){return a.replace("&","&").replace("<","<").replace(">",">").replace('"',""")};
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
This file is part of Mibew Messenger project.
|
||||
http://mibew.org
|
||||
|
||||
Copyright (c) 2005-2011 Mibew Messenger Community
|
||||
License: http://mibew.org/license.php
|
||||
*/
|
||||
Ajax.PeriodicalUpdater=Class.create();
|
||||
Class.inherit(Ajax.PeriodicalUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.onComplete=this.requestComplete.bind(this);this._options.onException=this.handleException.bind(this);this._options.onTimeout=this.handleTimeout.bind(this);this._options.timeout=5E3;this.frequency=this._options.frequency||2;this.updater={};this.update()},handleException:function(){this._options.handleError&&this._options.handleError("offline, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),
|
||||
1E3)},handleTimeout:function(){this._options.handleError&&this._options.handleError("timeout, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},stopUpdate:function(){if(this.updater._options)this.updater._options.onComplete=void 0;clearTimeout(this.timer)},update:function(){if(this._options.updateParams)this._options.parameters=this._options.updateParams();this.updater=new Ajax.Request(this._options.url,this._options)},requestComplete:function(a){try{var b=Ajax.getXml(a);
|
||||
b?(this._options.updateContent||Ajax.emptyFunction)(b):this._options.handleError&&this._options.handleError("reconnecting")}catch(c){}this.timer=setTimeout(this.update.bind(this),this.frequency*1E3)}});
|
||||
var HtmlGenerationUtils={popupLink:function(a,b,c,d,e,l,j){return'<a href="'+a+'"'+(j!=null?' class="'+j+'"':"")+' target="_blank" title="'+b+'" onclick="this.newWindow = window.open(\''+a+"', '"+c+"', 'toolbar=0,scrollbars=0,location=0,status=1,menubar=0,width="+e+",height="+l+",resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;\">"+d+"</a>"},generateOneRowTable:function(a){return'<table class="inner"><tr>'+a+"</tr></table>"},viewOpenCell:function(a,b,c,d,e,l,j,n){var l=
|
||||
2,b=b+"?thread="+c,g="<td>";g+=e||d?HtmlGenerationUtils.popupLink(n||!d?b:b+"&viewonly=true",localized[e?0:1],"ImCenter"+c,a,640,480,null):'<a href="#">'+a+"</a>";g+="</td>";e&&(g+='<td class="icon">',g+=HtmlGenerationUtils.popupLink(b,localized[0],"ImCenter"+c,'<img src="'+webimRoot+'/images/tbliclspeak.gif" width="15" height="15" border="0" alt="'+localized[0]+'">',640,480,null),g+="</td>",l++);d&&(g+='<td class="icon">',g+=HtmlGenerationUtils.popupLink(b+"&viewonly=true",localized[1],"ImCenter"+
|
||||
c,'<img src="'+webimRoot+'/images/tbliclread.gif" width="15" height="15" border="0" alt="'+localized[1]+'">',640,480,null),g+="</td>",l++);j!=""&&(g+='</tr><tr><td class="firstmessage" colspan="'+l+'"><a href="javascript:void(0)" title="'+j+'" onclick="alert(this.title);return false;">',g+=j.length>30?j.substring(0,30)+"...":j,g+="</a></td>");return HtmlGenerationUtils.generateOneRowTable(g)},banCell:function(a,b){return'<td class="icon">'+HtmlGenerationUtils.popupLink(webimRoot+"/operator/ban.php?"+
|
||||
(b?"id="+b:"thread="+a),localized[2],"ban"+a,'<img src="'+webimRoot+'/images/ban.gif" width="15" height="15" border="0" alt="'+localized[2]+'">',720,480,null)+"</td>"}};Ajax.ThreadListUpdater=Class.create();
|
||||
Class.inherit(Ajax.ThreadListUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.updateParams=this.updateParams.bind(this);this._options.handleError=this.handleError.bind(this);this._options.updateContent=this.updateContent.bind(this);this._options.lastrevision=0;this.threadTimers={};this.delta=0;this.t=this._options.table;this.periodicalUpdater=new Ajax.PeriodicalUpdater(this._options)},updateParams:function(){return"since="+this._options.lastrevision+"&status="+this._options.istatus+
|
||||
(this._options.showonline?"&showonline=1":"")},setStatus:function(a){this._options.status.innerHTML=a},handleError:function(a){this.setStatus(a)},updateThread:function(a){function b(a,b,c,d){if(a=CommonUtils.getCell(c,b,a))a.innerHTML=d}for(var c,d,e,l=!1,j=!1,n=!1,g=null,o=null,f=0;f<a.attributes.length;f++){var m=a.attributes[f];if(m.nodeName=="id")c=m.nodeValue;else if(m.nodeName=="stateid")d=m.nodeValue;else if(m.nodeName=="state")e=m.nodeValue;else if(m.nodeName=="canopen")j=!0;else if(m.nodeName==
|
||||
"canview")l=!0;else if(m.nodeName=="canban")n=!0;else if(m.nodeName=="ban")g=m.nodeValue;else if(m.nodeName=="banid")o=m.nodeValue}f=CommonUtils.getRow("thr"+c,this.t);if(d=="closed")f&&this.t.deleteRow(f.rowIndex),this.threadTimers[c]=null;else{var m=NodeUtils.getNodeValue(a,"name"),s=NodeUtils.getNodeValue(a,"addr"),q=NodeUtils.getNodeValue(a,"time"),t=NodeUtils.getNodeValue(a,"agent"),r=NodeUtils.getNodeValue(a,"modified"),u=NodeUtils.getNodeValue(a,"message"),p="<td>"+NodeUtils.getNodeValue(a,
|
||||
"useragent")+"</td>";g!=null&&(p="<td>"+NodeUtils.getNodeValue(a,"reason")+"</td>");n&&(p+=HtmlGenerationUtils.banCell(c,o));p=HtmlGenerationUtils.generateOneRowTable(p);a=CommonUtils.getRow("t"+d,this.t);n=CommonUtils.getRow("t"+d+"end",this.t);if(f!=null&&(f.rowIndex<=a.rowIndex||f.rowIndex>=n.rowIndex))this.t.deleteRow(f.rowIndex),f=this.threadTimers[c]=null;if(f==null){if(f=this.t.insertRow(a.rowIndex+1),f.className=g=="blocked"&&d!="chat"?"ban":"in"+d,f.id="thr"+c,this.threadTimers[c]=[q,r,d],
|
||||
CommonUtils.insertCell(f,"name","visitor",null,null,HtmlGenerationUtils.viewOpenCell(m,this._options.agentservl,c,l,j,g,u,d!="chat")),CommonUtils.insertCell(f,"contid","visitor","center",null,s),CommonUtils.insertCell(f,"state","visitor","center",null,e),CommonUtils.insertCell(f,"op","visitor","center",null,t),CommonUtils.insertCell(f,"time","visitor","center",null,this.getTimeSince(q)),CommonUtils.insertCell(f,"wait","visitor","center",null,d!="chat"?this.getTimeSince(r):"-"),CommonUtils.insertCell(f,
|
||||
"etc","visitor","center",null,p),d=="wait"||d=="prio")return!0}else this.threadTimers[c]=[q,r,d],f.className=g=="blocked"&&d!="chat"?"ban":"in"+d,b(this.t,f,"name",HtmlGenerationUtils.viewOpenCell(m,this._options.agentservl,c,l,j,g,u,d!="chat")),b(this.t,f,"contid",s),b(this.t,f,"state",e),b(this.t,f,"op",t),b(this.t,f,"time",this.getTimeSince(q)),b(this.t,f,"wait",d!="chat"?this.getTimeSince(r):"-"),b(this.t,f,"etc",p);return!1}},updateQueueMessages:function(){function a(a,b){var c=$(b),j=$(b+"end");
|
||||
if(c==null||j==null)return!1;return c.rowIndex+1<j.rowIndex}var b=$("statustd");if(b){var c=a(this.t,"twait")||a(this.t,"tprio")||a(this.t,"tchat");b.innerHTML=c?"":this._options.noclients;b.height=c?5:30}},getTimeSince:function(a){var a=Math.floor(((new Date).getTime()-a-this.delta)/1E3),b=Math.floor(a/60),c="";a%=60;a<10&&(a="0"+a);b>=60&&(c=Math.floor(b/60),b%=60,b<10&&(b="0"+b),c+=":");return c+b+":"+a},updateTimers:function(){for(var a in this.threadTimers)if(this.threadTimers[a]!=null){var b=
|
||||
this.threadTimers[a],c=CommonUtils.getRow("thr"+a,this.t);if(c!=null){var d=function(a,b,c,d){if(a=CommonUtils.getCell(c,b,a))a.innerHTML=d};d(this.t,c,"time",this.getTimeSince(b[0]));d(this.t,c,"wait",b[2]!="chat"?this.getTimeSince(b[1]):"-")}}},updateThreads:function(a){var b=!1,c=NodeUtils.getAttrValue(a,"time"),d=NodeUtils.getAttrValue(a,"revision");if(c)this.delta=(new Date).getTime()-c;if(d)this._options.lastrevision=d;for(c=0;c<a.childNodes.length;c++)d=a.childNodes[c],d.tagName=="thread"&&
|
||||
this.updateThread(d)&&(b=!0);this.updateQueueMessages();this.updateTimers();this.setStatus(this._options.istatus?"Away":"Up to date");b&&(playSound(webimRoot+"/sounds/new_user.wav"),window.focus(),updaterOptions.showpopup&&alert(localized[5]))},updateOperators:function(a){var b=$("onlineoperators");if(b){for(var c=[],d=0;d<a.childNodes.length;d++){var e=a.childNodes[d];if(e.tagName=="operator"){var l=NodeUtils.getAttrValue(e,"name"),e=NodeUtils.getAttrValue(e,"away")!=null;c[c.length]='<img src="'+
|
||||
webimRoot+"/images/op"+(e?"away":"online")+'.gif" width="12" height="12" border="0" alt="'+localized[1]+'"> '+l}}b.innerHTML=c.join(", ")}},updateContent:function(a){if(a.tagName=="update")for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];c.tagName=="threads"?this.updateThreads(c):c.tagName=="operators"&&this.updateOperators(c)}else a.tagName=="error"?this.setStatus(NodeUtils.getNodeValue(a,"descr")):this.setStatus("reconnecting")}});
|
||||
function togglemenu(){if($("sidebar")&&$("wcontent")&&$("togglemenu"))$("wcontent").className=="contentnomenu"?($("sidebar").style.display="block",$("wcontent").className="contentinner",$("togglemenu").innerHTML=localized[4]):($("sidebar").style.display="none",$("wcontent").className="contentnomenu",$("togglemenu").innerHTML=localized[3])}var webimRoot="";Behaviour.register({"#togglemenu":function(a){a.onclick=function(){togglemenu()}}});
|
||||
EventHelper.register(window,"onload",function(){webimRoot=updaterOptions.wroot;new Ajax.ThreadListUpdater({table:$("threadlist"),status:$("connstatus"),istatus:0}.extend(updaterOptions||{}));updaterOptions.havemenu||togglemenu()});
|
1
src/messenger/webim/js/165/brws.js
Normal file
@ -0,0 +1 @@
|
||||
var myAgent="",myVer=0,myRealAgent="";function detectAgent(){for(var a="opera msie safari firefox netscape mozilla".split(" "),b=navigator.userAgent.toLowerCase(),c=0;c<a.length;c++){var d=a[c];if(-1!=b.indexOf(d)){myAgent=d;if(!window.RegExp)break;null!=RegExp(d+"[ /]?([0-9]+(.[0-9]+)?)").exec(b)&&(myVer=parseFloat(RegExp.$1));break}}myRealAgent=myAgent;"Gecko"==navigator.product&&(myAgent="moz")}detectAgent();function getEl(a){return document.getElementById(a)};
|
24
src/messenger/webim/js/165/chat.js
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
This file is part of Mibew Messenger project.
|
||||
http://mibew.org
|
||||
|
||||
Copyright (c) 2005-2013 Mibew Messenger Community
|
||||
License: http://mibew.org/license.php
|
||||
*/
|
||||
var FrameUtils={getDocument:function(a){return a.contentDocument?a.contentDocument:a.contentWindow?a.contentWindow.document:a.document?a.document:null},initFrame:function(a){var b=this.getDocument(a);b.open();b.write("<html><head>");b.write('<link rel="stylesheet" type="text/css" media="all" href="'+Chat.cssfile+'">');b.write("</head><body bgcolor='#FFFFFF' text='#000000' link='#C28400' vlink='#C28400' alink='#C28400'>");b.write("<table width='100%' cellspacing='0' cellpadding='0' border='0'><tr><td valign='top' class='message' id='content'></td></tr></table><a id='bottom' name='bottom'></a>");
|
||||
b.write("</body></html>");b.close();a.onload=function(){a.myHtml&&(FrameUtils.getDocument(a).getElementById("content").innerHTML+=a.myHtml,FrameUtils.scrollDown(a))}},insertIntoFrame:function(a,b){var c=this.getDocument(a).getElementById("content");null==c?(a.myHtml||(a.myHtml=""),a.myHtml+=b):c.innerHTML+=b},scrollDown:function(a){var b=this.getDocument(a).getElementById("bottom");if("opera"==myAgent)try{a.contentWindow.scrollTo(0,this.getDocument(a).getElementById("content").clientHeight)}catch(c){}b&&
|
||||
b.scrollIntoView(!1)}};Ajax.ChatThreadUpdater=Class.create();
|
||||
Class.inherit(Ajax.ChatThreadUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.onComplete=this.requestComplete.bind(this);this._options.onException=this.handleException.bind(this);this._options.onTimeout=this.handleTimeout.bind(this);this._options.timeout=5E3;this.updater={};this.frequency=this._options.frequency||2;this.lastupdate=0;this.focused=this.skipNextsound=this.cansend=!0;this.ownThread=null!=this._options.message;FrameUtils.initFrame(this._options.container);this._options.message&&
|
||||
(this._options.message.onkeydown=this.handleKeyDown.bind(this),this._options.message.onfocus=function(){this.focused=!0}.bind(this),this._options.message.onblur=function(){this.focused=!1}.bind(this));this.update()},handleException:function(a,b){this.setStatus("offline, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},handleTimeout:function(a){this.setStatus("timeout, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},updateOptions:function(a){this._options.parameters=
|
||||
"act="+a+"&thread="+(this._options.threadid||0)+"&token="+(this._options.token||0)+"&lastid="+(this._options.lastid||0);this._options.user&&(this._options.parameters+="&user=true");"refresh"==a&&(this._options.message&&""!=this._options.message.value)&&(this._options.parameters+="&typed=1")},enableInput:function(a){this._options.message&&(this._options.message.disabled=!a)},stopUpdate:function(){this.enableInput(!0);this.updater._options&&(this.updater._options.onComplete=void 0);clearTimeout(this.timer)},
|
||||
update:function(){this.updateOptions("refresh");this.updater=new Ajax.Request(this._options.servl,this._options)},requestComplete:function(a){try{this.enableInput(!0);this.cansend=!0;var b=Ajax.getXml(a);b&&"thread"==b.tagName?this.updateContent(b):this.handleError(a,b,"refresh messages failed")}catch(c){}this.skipNextsound=!1;this.timer=setTimeout(this.update.bind(this),1E3*this.frequency)},postMessage:function(a){if(""!=a&&this.cansend){this.cansend=!1;this.stopUpdate();this.skipNextsound=!0;this.updateOptions("post");
|
||||
var b={}.extend(this._options);b.parameters+="&message="+encodeURIComponent(a);b.onComplete=function(a){this.requestComplete(a);this._options.message&&(this._options.message.value="",this._options.message.focus())}.bind(this);"opera"!=myRealAgent&&this.enableInput(!1);this.updater=new Ajax.Request(this._options.servl,b)}},changeName:function(a){this.skipNextsound=!0;new Ajax.Request(this._options.servl,{parameters:"act=rename&thread="+(this._options.threadid||0)+"&token="+(this._options.token||0)+
|
||||
"&name="+encodeURIComponent(a)})},onThreadClosed:function(a){var b=Ajax.getXml(a);b&&"closed"==b.tagName?setTimeout("window.close()",2E3):this.handleError(a,b,"cannot close")},closeThread:function(){var a="act=close&thread="+(this._options.threadid||0)+"&token="+(this._options.token||0);this._options.user&&(a+="&user=true");new Ajax.Request(this._options.servl,{parameters:a,onComplete:this.onThreadClosed.bind(this)})},processMessage:function(a,b){var c=NodeUtils.getNodeText(b);FrameUtils.insertIntoFrame(a,
|
||||
c)},showTyping:function(a){$("typingdiv")&&($("typingdiv").style.display=a?"inline":"none")},setupAvatar:function(a){a=NodeUtils.getNodeText(a);this._options.avatar&&this._options.user&&(this._options.avatar.innerHTML=""!=a?'<img src="'+Chat.webimRoot+'/images/free.gif" width="7" height="1" border="0" alt="" /><img src="'+a+'" border="0" alt=""/>':"")},updateContent:function(a){var b=!1,c=this._options.container,d=NodeUtils.getAttrValue(a,"lastid");d&&(this._options.lastid=d);(d=NodeUtils.getAttrValue(a,
|
||||
"typing"))&&this.showTyping("1"==d);(d=NodeUtils.getAttrValue(a,"canpost"))&&("1"==d&&!this.ownThread||this.ownThread&&"1"!=d)&&(window.location.href=window.location.href);for(d=0;d<a.childNodes.length;d++){var e=a.childNodes[d];"message"==e.tagName?(b=!0,this.processMessage(c,e)):"avatar"==e.tagName&&this.setupAvatar(e)}0<=window.location.search.indexOf("trace=on")?(a="updated",0<this.lastupdate&&(c=((new Date).getTime()-this.lastupdate)/1E3,a=a+", "+c+" secs",10<c&&alert(a)),this.lastupdate=(new Date).getTime(),
|
||||
this.setStatus(a)):this.clearStatus();b&&(FrameUtils.scrollDown(this._options.container),this.skipNextsound||(b=$("soundimg"),(null==b||b.className.match(/\bisound\b/))&&playSound(Chat.webimRoot+"/sounds/new_message.wav")),this.focused||window.focus())},isSendkey:function(a,b){return 13==b&&(a||this._options.ignorectrl)||10==b},handleKeyDown:function(a){a?(ctrl=a.ctrlKey,a=a.which):(a=event.keyCode,ctrl=event.ctrlKey);return this._options.message&&this.isSendkey(ctrl,a)?(a=this._options.message.value,
|
||||
this._options.ignorectrl&&(a=a.replace(/[\r\n]+$/,"")),this.postMessage(a),!1):!0},handleError:function(a,b,c){b&&"error"==b.tagName?this.setStatus(NodeUtils.getNodeValue(b,"descr")):this.setStatus("reconnecting")},showStatusDiv:function(a){$("engineinfo")&&($("engineinfo").style.display="inline",$("engineinfo").innerHTML=a)},setStatus:function(a){this.statusTimeout&&clearTimeout(this.statusTimeout);this.showStatusDiv(a);this.statusTimeout=setTimeout(this.clearStatus.bind(this),4E3)},clearStatus:function(){$("engineinfo").style.display=
|
||||
"none"}});var Chat={threadUpdater:{},applyName:function(){Chat.threadUpdater.changeName($("uname").value);$("changename1").style.display="none";$("changename2").style.display="inline";$("unamelink").innerHTML=htmlescape($("uname").value)},showNameField:function(){$("changename1").style.display="inline";$("changename2").style.display="none"}};
|
||||
Behaviour.register({"#postmessage a":function(a){a.onclick=function(){var a=$("msgwnd");a&&Chat.threadUpdater.postMessage(a.value)}},"select#predefined":function(a){a.onchange=function(){var a=$("msgwnd");0!=this.selectedIndex&&(a.value=this.options[this.selectedIndex].innerText||this.options[this.selectedIndex].innerHTML);this.selectedIndex=0;a.focus()}},"div#changename2 a":function(a){a.onclick=function(){Chat.showNameField();return!1}},"div#changename1 a":function(a){a.onclick=function(){Chat.applyName();
|
||||
return!1}},"div#changename1 input#uname":function(a){a.onkeydown=function(a){13==(a||event).keyCode&&Chat.applyName()}},"a#refresh":function(a){a.onclick=function(){Chat.threadUpdater.stopUpdate();Chat.threadUpdater.update()}},"a#togglesound":function(a){a.onclick=function(){var a=$("soundimg");a&&(a.className.match(/\bisound\b/)?a.className="tplimage inosound":a.className="tplimage isound",(a=$("msgwnd"))&&a.focus())}},"a.closethread":function(a){a.onclick=function(){Chat.threadUpdater.closeThread()}}});
|
||||
EventHelper.register(window,"onload",function(){Chat.webimRoot=threadParams.wroot;Chat.cssfile=threadParams.cssfile;Chat.threadUpdater=new Ajax.ChatThreadUpdater({ignorectrl:-1,container:"safari"==myRealAgent?self.frames[0]:$("chatwnd"),avatar:$("avatarwnd"),message:$("msgwnd")}.extend(threadParams||{}))});
|
25
src/messenger/webim/js/165/common.js
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
This file is part of Mibew Messenger project.
|
||||
http://mibew.org
|
||||
|
||||
Copyright (c) 2005-2013 Mibew Messenger Community
|
||||
License: http://mibew.org/license.php
|
||||
*/
|
||||
var Class={create:function(){return function(){this.initialize.apply(this,arguments)}},inherit:function(a,b,c){Object.extend(Object.extend(a.prototype,b.prototype),c)}};Object.extend=function(a,b){for(property in b)a[property]=b[property];return a};Object.prototype.extend=function(a){return Object.extend.apply(this,[this,a])};Function.prototype.bind=function(a){var b=this;return function(){return b.apply(a,arguments)}};
|
||||
Function.prototype.bindAsEventListener=function(a){var b=this;return function(c){b.call(a,c||window.event)}};Number.prototype.toColorPart=function(){var a=this.toString(16);return 16>this?"0"+a:a};var Try={these:function(){for(var a,b=0;b<arguments.length;b++){var c=arguments[b];try{a=c();break}catch(d){}}return a}},PeriodicalExecuter=Class.create();
|
||||
PeriodicalExecuter.prototype={initialize:function(a,b){this.callback=a;this.frequency=b;this.currentlyExecuting=!1;this.registerCallback()},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),1E3*this.frequency)},onTimerEvent:function(){if(!this.currentlyExecuting)try{this.currentlyExecuting=!0,this.callback()}finally{this.currentlyExecuting=!1}}};
|
||||
function findObj(a){var b;!(b=document[a])&&document.all&&(b=document.all[a]);!b&&document.getElementById&&(b=document.getElementById(a));if(!b&&!document.all&&document.getElementsByName){b=document.getElementsByName(a);if(0==b.length)return null;if(1==b.length)return b[0]}return b}Array.prototype.push||(Array.prototype.push=function(){for(var a=this.length,b=0;b<arguments.length;b++)this[a+b]=arguments[b];return this.length});
|
||||
function $(){for(var a=[],b=0;b<arguments.length;b++){var c=arguments[b];"string"==typeof c&&(c=findObj(c));if(1==arguments.length)return c;a.push(c)}return a}
|
||||
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest})||!1},getXml:function(a){return a&&200<=a.status&&300>a.status&&(a=a.responseXML)&&a.documentElement?a.documentElement:null},getError:function(a){return a.statusText||"connection error N"+a.status},emptyFunction:function(){},Base:function(){}};
|
||||
Ajax.Base.prototype={setOptions:function(a){this._options={_method:"post",asynchronous:!0,parameters:""}.extend(a||{})},getStatus:function(){try{return this.transport.status||0}catch(a){return 0}},responseIsSuccess:function(){var a=this.getStatus();return!a||200<=a&&300>a},responseIsFailure:function(){return!this.responseIsSuccess()}};Ajax.Request=Class.create();Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
|
||||
Class.inherit(Ajax.Request,Ajax.Base,{initialize:function(a,b){this.transport=Ajax.getTransport();this.setOptions(b);this.transportTimer={};this.finished=!1;this.request(a)},request:function(a){var b=this._options.parameters||"";0<b.length&&(b+="&_=");try{"get"==this._options._method&&0<b.length&&(a+="?"+b);this.transport.open(this._options._method.toUpperCase(),a,this._options.asynchronous);this._options.asynchronous&&(this.transport.onreadystatechange=this.onStateChange.bind(this),this._options.timeout&&
|
||||
(this.transportTimer=setTimeout(this.handleTimeout.bind(this),this._options.timeout)));this.setRequestHeaders();var c=this._options.postBody?this._options.postBody:b;this.transport.send("post"==this._options._method?c:null)}catch(d){this.dispatchException(d)}},setRequestHeaders:function(){var a=["X-Requested-With","XMLHttpRequest"];"post"==this._options._method&&(a.push("Content-type","application/x-www-form-urlencoded"),this.transport.overrideMimeType&&2005>(navigator.userAgent.match("/Gecko/(d{4})/")||
|
||||
[0,2005])[1]&&a.push("Connection","close"));this._options.requestHeaders&&a.push.apply(a,this._options.requestHeaders);for(var b=0;b<a.length;b+=2)this.transport.setRequestHeader(a[b],a[b+1])},onStateChange:function(){1!=this.transport.readyState&&this.respondToReadyState(this.transport.readyState)},handleTimeout:function(){this.finished||(this.finished=!0,(this._options.onTimeout||Ajax.emptyFunction)(this))},respondToReadyState:function(a){if("Complete"==Ajax.Request.Events[a]){try{this.finished||
|
||||
(this.finished=!0,this._options.timeout&&clearTimeout(this.transportTimer),(this._options.onComplete||Ajax.emptyFunction)(this.transport))}catch(b){this.dispatchException(b)}this.transport.onreadystatechange=Ajax.emptyFunction}},dispatchException:function(a){(this._options.onException||Ajax.emptyFunction)(this,a)}});
|
||||
var EventHelper={register:function(a,b,c){var d=a[b];a[b]="function"!=typeof d?c:function(){d();c()}}},Behaviour={list:[],register:function(a){Behaviour.list.push(a)},init:function(){EventHelper.register(window,"onload",function(){Behaviour.apply()})},apply:function(){for(h=0;sheet=Behaviour.list[h];h++)for(selector in sheet)if(list=document.getElementsBySelector(selector))for(i=0;element=list[i];i++)sheet[selector](element)}};Behaviour.init();
|
||||
function getAllChildren(a){return a.all?a.all:a.getElementsByTagName("*")}
|
||||
document.getElementsBySelector=function(a){if(!document.getElementsByTagName)return[];a=a.split(" ");for(var b=Array(document),c=0;c<a.length;c++)if(token=a[c].replace(/^\s+/,"").replace(/\s+$/,""),-1<token.indexOf("#")){var d=token.split("#"),e=d[0],b=document.getElementById(d[1]);if(null==b||e&&b.nodeName.toLowerCase()!=e)return[];b=Array(b)}else if(-1<token.indexOf(".")){d=token.split(".");e=d[0];d=d[1];e||(e="*");for(var m=[],l=0,p=0;p<b.length;p++){var f;f="*"==e?getAllChildren(b[p]):b[p].getElementsByTagName(e);
|
||||
if(null!=f)for(var q=0;q<f.length;q++)m[l++]=f[q]}b=[];for(l=e=0;l<m.length;l++)m[l].className&&m[l].className.match(RegExp("\\b"+d+"\\b"))&&(b[e++]=m[l])}else{if(!b[0])return;e=token;m=[];for(p=l=0;p<b.length;p++)for(f=b[p].getElementsByTagName(e),q=0;q<f.length;q++)m[l++]=f[q];b=m}return b};
|
||||
var NodeUtils={getNodeValue:function(a,b){var c=a.getElementsByTagName(b);if(0==c.length)return"";var c=c[0].childNodes,d="";for(i=0;i<c.length;i++)d+=c[i].nodeValue;return d},getNodeText:function(a){a=a.childNodes;var b="";for(i=0;i<a.length;i++)b+=a[i].nodeValue;return b},getAttrValue:function(a,b){for(k=0;k<a.attributes.length;k++)if(a.attributes[k].nodeName==b)return a.attributes[k].nodeValue;return null}},CommonUtils={getRow:function(a,b){var c=b.rows[a];if(null!=c)return c;if(null!=b.rows.head)return null;
|
||||
for(k=0;k<b.rows.length;k++)if(b.rows[k].id==a)return b.rows[k];return null},getCell:function(a,b,c){var d=b.cells[a];if(null!=d)return d;if(null!=c.rows.head)return null;for(k=0;k<b.cells.length;k++)if(b.cells[k].id==a)return b.cells[k];return null},insertCell:function(a,b,c,d,e,m){a=a.insertCell(-1);a.id=b;d&&(a.align=d);a.className=c;e&&(a.height=e);a.innerHTML=m}};
|
||||
function playSound(a){var b=document.createElement("div");-1!=navigator.userAgent.toLowerCase().indexOf("opera")&&(b.style="position: absolute; left: 0px; top: -200px;");document.body.appendChild(b);b.innerHTML='<audio autoplay src="'+a+'"><embed src="'+a+'" hidden="true" autostart="true" loop="false"></audio>'}function htmlescape(a){return a.replace("&","&").replace("<","<").replace(">",">").replace('"',""")};
|
27
src/messenger/webim/js/165/users.js
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
This file is part of Mibew Messenger project.
|
||||
http://mibew.org
|
||||
|
||||
Copyright (c) 2005-2013 Mibew Messenger Community
|
||||
License: http://mibew.org/license.php
|
||||
*/
|
||||
Ajax.PeriodicalUpdater=Class.create();
|
||||
Class.inherit(Ajax.PeriodicalUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.onComplete=this.requestComplete.bind(this);this._options.onException=this.handleException.bind(this);this._options.onTimeout=this.handleTimeout.bind(this);this._options.timeout=5E3;this.frequency=this._options.frequency||2;this.updater={};this.update()},handleException:function(a,b){this._options.handleError&&this._options.handleError("offline, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),
|
||||
1E3)},handleTimeout:function(a){this._options.handleError&&this._options.handleError("timeout, reconnecting");this.stopUpdate();this.timer=setTimeout(this.update.bind(this),1E3)},stopUpdate:function(){this.updater._options&&(this.updater._options.onComplete=void 0);clearTimeout(this.timer)},update:function(){this._options.updateParams&&(this._options.parameters=this._options.updateParams());this.updater=new Ajax.Request(this._options.url,this._options)},requestComplete:function(a){try{var b=Ajax.getXml(a);
|
||||
b?(this._options.updateContent||Ajax.emptyFunction)(b):this._options.handleError&&this._options.handleError("reconnecting")}catch(c){}this.timer=setTimeout(this.update.bind(this),1E3*this.frequency)}});
|
||||
var HtmlGenerationUtils={popupLink:function(a,b,c,d,e,m,l){return'<a href="'+a+'"'+(null!=l?' class="'+l+'"':"")+' target="_blank" title="'+b+'" onclick="this.newWindow = window.open(\''+a+"', '"+c+"', 'toolbar=0,scrollbars=0,location=0,status=1,menubar=0,width="+e+",height="+m+",resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;\">"+d+"</a>"},generateOneRowTable:function(a){return'<table class="inner"><tr>'+a+"</tr></table>"},viewOpenCell:function(a,b,c,d,e,m,l,p){m=
|
||||
2;b=b+"?thread="+c;var f="<td>",f=e||d?f+HtmlGenerationUtils.popupLink(p||!d?b:b+"&viewonly=true",localized[e?0:1],"ImCenter"+c,a,640,480,null):f+('<a href="#">'+a+"</a>"),f=f+"</td>";e&&(f=f+'<td class="icon">'+HtmlGenerationUtils.popupLink(b,localized[0],"ImCenter"+c,'<img src="'+webimRoot+'/images/tbliclspeak.gif" width="15" height="15" border="0" alt="'+localized[0]+'">',640,480,null),f+="</td>",m++);d&&(f+='<td class="icon">',f+=HtmlGenerationUtils.popupLink(b+"&viewonly=true",localized[1],"ImCenter"+
|
||||
c,'<img src="'+webimRoot+'/images/tbliclread.gif" width="15" height="15" border="0" alt="'+localized[1]+'">',640,480,null),f+="</td>",m++);""!=l&&(f+='</tr><tr><td class="firstmessage" colspan="'+m+'"><a href="javascript:void(0)" title="'+l+'" onclick="alert(this.title);return false;">',f+=30<l.length?l.substring(0,30)+"...":l,f+="</a></td>");return HtmlGenerationUtils.generateOneRowTable(f)},banCell:function(a,b){return'<td class="icon">'+HtmlGenerationUtils.popupLink(webimRoot+"/operator/ban.php?"+
|
||||
(b?"id="+b:"thread="+a),localized[2],"ban"+a,'<img src="'+webimRoot+'/images/ban.gif" width="15" height="15" border="0" alt="'+localized[2]+'">',720,480,null)+"</td>"}};Ajax.ThreadListUpdater=Class.create();
|
||||
Class.inherit(Ajax.ThreadListUpdater,Ajax.Base,{initialize:function(a){this.setOptions(a);this._options.updateParams=this.updateParams.bind(this);this._options.handleError=this.handleError.bind(this);this._options.updateContent=this.updateContent.bind(this);this._options.lastrevision=0;this.threadTimers={};this.delta=0;this.t=this._options.table;this.periodicalUpdater=new Ajax.PeriodicalUpdater(this._options)},updateParams:function(){return"since="+this._options.lastrevision+"&status="+this._options.istatus+
|
||||
(this._options.showonline?"&showonline=1":"")},setStatus:function(a){this._options.status.innerHTML=a},handleError:function(a){this.setStatus(a)},updateThread:function(a){function b(a,b,c,d){if(a=CommonUtils.getCell(c,b,a))a.innerHTML=d}for(var c,d,e,m=!1,l=!1,p=!1,f=null,q=null,g=0;g<a.attributes.length;g++){var n=a.attributes[g];"id"==n.nodeName?c=n.nodeValue:"stateid"==n.nodeName?d=n.nodeValue:"state"==n.nodeName?e=n.nodeValue:"canopen"==n.nodeName?l=!0:"canview"==n.nodeName?m=!0:"canban"==n.nodeName?
|
||||
p=!0:"ban"==n.nodeName?f=n.nodeValue:"banid"==n.nodeName&&(q=n.nodeValue)}g=CommonUtils.getRow("thr"+c,this.t);if("closed"==d)g&&this.t.deleteRow(g.rowIndex),this.threadTimers[c]=null;else{var n=NodeUtils.getNodeValue(a,"name"),u=NodeUtils.getNodeValue(a,"addr"),s=NodeUtils.getNodeValue(a,"time"),v=NodeUtils.getNodeValue(a,"agent"),t=NodeUtils.getNodeValue(a,"modified"),w=NodeUtils.getNodeValue(a,"message"),r="<td>"+NodeUtils.getNodeValue(a,"useragent")+"</td>";null!=f&&(r="<td>"+NodeUtils.getNodeValue(a,
|
||||
"reason")+"</td>");p&&(r+=HtmlGenerationUtils.banCell(c,q));r=HtmlGenerationUtils.generateOneRowTable(r);a=CommonUtils.getRow("t"+d,this.t);p=CommonUtils.getRow("t"+d+"end",this.t);null!=g&&(g.rowIndex<=a.rowIndex||g.rowIndex>=p.rowIndex)&&(this.t.deleteRow(g.rowIndex),g=this.threadTimers[c]=null);if(null==g){if(g=this.t.insertRow(a.rowIndex+1),g.className="blocked"==f&&"chat"!=d?"ban":"in"+d,g.id="thr"+c,this.threadTimers[c]=[s,t,d],CommonUtils.insertCell(g,"name","visitor",null,null,HtmlGenerationUtils.viewOpenCell(n,
|
||||
this._options.agentservl,c,m,l,f,w,"chat"!=d)),CommonUtils.insertCell(g,"contid","visitor","center",null,u),CommonUtils.insertCell(g,"state","visitor","center",null,e),CommonUtils.insertCell(g,"op","visitor","center",null,v),CommonUtils.insertCell(g,"time","visitor","center",null,this.getTimeSince(s)),CommonUtils.insertCell(g,"wait","visitor","center",null,"chat"!=d?this.getTimeSince(t):"-"),CommonUtils.insertCell(g,"etc","visitor","center",null,r),"wait"==d||"prio"==d)return!0}else this.threadTimers[c]=
|
||||
[s,t,d],g.className="blocked"==f&&"chat"!=d?"ban":"in"+d,b(this.t,g,"name",HtmlGenerationUtils.viewOpenCell(n,this._options.agentservl,c,m,l,f,w,"chat"!=d)),b(this.t,g,"contid",u),b(this.t,g,"state",e),b(this.t,g,"op",v),b(this.t,g,"time",this.getTimeSince(s)),b(this.t,g,"wait","chat"!=d?this.getTimeSince(t):"-"),b(this.t,g,"etc",r);return!1}},updateQueueMessages:function(){function a(a,b){var c=$(b),l=$(b+"end");return null==c||null==l?!1:c.rowIndex+1<l.rowIndex}var b=$("statustd");if(b){var c=a(this.t,
|
||||
"twait")||a(this.t,"tprio")||a(this.t,"tchat");b.innerHTML=c?"":this._options.noclients;b.height=c?5:30}},getTimeSince:function(a){a=Math.floor(((new Date).getTime()-a-this.delta)/1E3);var b=Math.floor(a/60),c="";a%=60;10>a&&(a="0"+a);60<=b&&(c=Math.floor(b/60),b%=60,10>b&&(b="0"+b),c+=":");return c+b+":"+a},updateTimers:function(){for(var a in this.threadTimers)if(null!=this.threadTimers[a]){var b=this.threadTimers[a],c=CommonUtils.getRow("thr"+a,this.t);if(null!=c){var d=this.getTimeSince(b[0]),
|
||||
e=CommonUtils.getCell("time",c,this.t);e&&(e.innerHTML=d);b="chat"!=b[2]?this.getTimeSince(b[1]):"-";if(c=CommonUtils.getCell("wait",c,this.t))c.innerHTML=b}}},updateThreads:function(a){var b=!1,c=NodeUtils.getAttrValue(a,"time"),d=NodeUtils.getAttrValue(a,"revision");c&&(this.delta=(new Date).getTime()-c);d&&(this._options.lastrevision=d);for(c=0;c<a.childNodes.length;c++)d=a.childNodes[c],"thread"==d.tagName&&this.updateThread(d)&&(b=!0);this.updateQueueMessages();this.updateTimers();this.setStatus(this._options.istatus?
|
||||
"Away":"Up to date");b&&(playSound(webimRoot+"/sounds/new_user.wav"),window.focus(),updaterOptions.showpopup&&alert(localized[5]))},updateOperators:function(a){var b=$("onlineoperators");if(b){for(var c=[],d=0;d<a.childNodes.length;d++){var e=a.childNodes[d];if("operator"==e.tagName){var m=NodeUtils.getAttrValue(e,"name"),e=null!=NodeUtils.getAttrValue(e,"away");c[c.length]='<img src="'+webimRoot+"/images/op"+(e?"away":"online")+'.gif" width="12" height="12" border="0" alt="'+localized[1]+'"> '+m}}b.innerHTML=
|
||||
c.join(", ")}},updateContent:function(a){if("update"==a.tagName)for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];"threads"==c.tagName?this.updateThreads(c):"operators"==c.tagName&&this.updateOperators(c)}else"error"==a.tagName?this.setStatus(NodeUtils.getNodeValue(a,"descr")):this.setStatus("reconnecting")}});
|
||||
function togglemenu(){$("sidebar")&&($("wcontent")&&$("togglemenu"))&&("contentnomenu"==$("wcontent").className?($("sidebar").style.display="block",$("wcontent").className="contentinner",$("togglemenu").innerHTML=localized[4]):($("sidebar").style.display="none",$("wcontent").className="contentnomenu",$("togglemenu").innerHTML=localized[3]))}var webimRoot="";Behaviour.register({"#togglemenu":function(a){a.onclick=function(){togglemenu()}}});
|
||||
EventHelper.register(window,"onload",function(){webimRoot=updaterOptions.wroot;new Ajax.ThreadListUpdater({table:$("threadlist"),status:$("connstatus"),istatus:0}.extend(updaterOptions||{}));updaterOptions.havemenu||togglemenu()});
|
@ -2,7 +2,7 @@
|
||||
|
||||
<project basedir="." default="update" name="Obfuscator">
|
||||
<property name="closure.c" value="/usr/local/closure/compiler.jar" />
|
||||
<property name="webim.location" value="../164" />
|
||||
<property name="webim.location" value="../165" />
|
||||
|
||||
<target name="update">
|
||||
<java jar="${closure.c}" fork="true">
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @preserve This file is part of Mibew Messenger project.
|
||||
* http://mibew.org
|
||||
*
|
||||
* Copyright (c) 2005-2011 Mibew Messenger Community
|
||||
* Copyright (c) 2005-2013 Mibew Messenger Community
|
||||
* License: http://mibew.org/license.php
|
||||
*/
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @preserve This file is part of Mibew Messenger project.
|
||||
* http://mibew.org
|
||||
*
|
||||
* Copyright (c) 2005-2011 Mibew Messenger Community
|
||||
* Copyright (c) 2005-2013 Mibew Messenger Community
|
||||
* License: http://mibew.org/license.php
|
||||
*/
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @preserve This file is part of Mibew Messenger project.
|
||||
* http://mibew.org
|
||||
*
|
||||
* Copyright (c) 2005-2011 Mibew Messenger Community
|
||||
* Copyright (c) 2005-2013 Mibew Messenger Community
|
||||
* License: http://mibew.org/license.php
|
||||
*/
|
||||
|
||||
|
@ -702,6 +702,34 @@ function check_for_reassign($thread, $operator)
|
||||
}
|
||||
}
|
||||
|
||||
function notify_operators($thread, $firstmessage, $link)
|
||||
{
|
||||
global $settings, $mysqlprefix;
|
||||
if ($settings['enablejabber'] == 1) {
|
||||
$groupid = $thread['groupid'];
|
||||
$query = "select ${mysqlprefix}chatoperator.operatorid as opid, inotify, vcjabbername, vcemail, (unix_timestamp(CURRENT_TIMESTAMP)-unix_timestamp(dtmlastvisited)) as time from ${mysqlprefix}chatoperator";
|
||||
if ($groupid) {
|
||||
$query .= ", ${mysqlprefix}chatgroupoperator where groupid = $groupid and ${mysqlprefix}chatoperator.operatorid = ${mysqlprefix}chatgroupoperator.operatorid and istatus = 0";
|
||||
} else {
|
||||
$query .= " where istatus = 0";
|
||||
}
|
||||
$query .= " and inotify = 1";
|
||||
$result = select_multi_assoc($query, $link);
|
||||
$text = getstring2_("notify.new.text", array(
|
||||
get_app_location(true, $settings['enablessl'] == '1' && $settings['forcessl'] == '1') . "/operator/agent.php?thread=" . $thread['threadid'],
|
||||
$thread['userName']
|
||||
), $thread['locale']);
|
||||
if ($firstmessage) {
|
||||
$text .= "\n$firstmessage";
|
||||
}
|
||||
foreach ($result as $op) {
|
||||
if ($op['time'] < $settings['online_timeout'] && is_valid_email($op['vcjabbername'])) {
|
||||
webim_xmpp($op['vcjabbername'], getstring2("notify.new.subject", array($thread['userName'])), $text, $link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function check_connections_from_remote($remote, $link)
|
||||
{
|
||||
global $settings, $state_closed, $state_left, $mysqlprefix;
|
||||
|
@ -595,8 +595,8 @@ function date_to_text($unixtime)
|
||||
return strftime($date_format . " " . getlocal("time.timeformat"), $unixtime);
|
||||
}
|
||||
|
||||
$dbversion = '1.6.3';
|
||||
$featuresversion = '1.6.4';
|
||||
$dbversion = '1.6.5';
|
||||
$featuresversion = '1.6.5';
|
||||
|
||||
$settings = array(
|
||||
'dbversion' => 0,
|
||||
@ -623,6 +623,7 @@ $settings = array(
|
||||
'usercanchangename' => '1',
|
||||
'enablegroups' => '0',
|
||||
'enablestatistics' => '1',
|
||||
'enablejabber' => '0',
|
||||
'enablepresurvey' => '1',
|
||||
'surveyaskmail' => '0',
|
||||
'surveyaskgroup' => '1',
|
||||
|
@ -49,4 +49,4 @@ $mail_encoding = "utf-8";
|
||||
$home_locale = "en"; /* native name will be used in this locale */
|
||||
$default_locale = "en"; /* if user does not provide known lang */
|
||||
|
||||
?>
|
||||
?>
|
||||
|
@ -15,6 +15,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
function setup_getcode_tabs($active)
|
||||
{
|
||||
global $page, $webimroot;
|
||||
$page['tabselected'] = $active;
|
||||
$page['tabs'] = array(
|
||||
array('title' => getlocal("page_getcode.tab.image"), 'link' => "$webimroot/operator/getcode.php"),
|
||||
array('title' => getlocal("page_getcode.tab.text"), 'link' => "$webimroot/operator/gettextcode.php"),
|
||||
);
|
||||
}
|
||||
|
||||
function generate_button($title, $locale, $style, $group, $inner, $showhost, $forcesecure, $modsecurity)
|
||||
{
|
||||
$link = get_app_location($showhost, $forcesecure) . "/client.php";
|
||||
|
@ -38,9 +38,10 @@ function setup_group_settings_tabs($gid, $active)
|
||||
{
|
||||
global $page, $webimroot, $settings;
|
||||
if ($gid) {
|
||||
$page['tabselected'] = $active;
|
||||
$page['tabs'] = array(
|
||||
getlocal("page_group.tab.main") => $active != 0 ? "$webimroot/operator/group.php?gid=$gid" : "",
|
||||
getlocal("page_group.tab.members") => $active != 1 ? "$webimroot/operator/groupmembers.php?gid=$gid" : "",
|
||||
array('title' => getlocal("page_group.tab.main"), 'link' => "$webimroot/operator/group.php?gid=$gid"),
|
||||
array('title' => getlocal("page_group.tab.members"), 'link' => "$webimroot/operator/groupmembers.php?gid=$gid"),
|
||||
);
|
||||
} else {
|
||||
$page['tabs'] = array();
|
||||
|
@ -15,6 +15,22 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
function log_notification($locale, $kind, $to, $subj, $text, $refop, $link)
|
||||
{
|
||||
global $mysqlprefix;
|
||||
$query = sprintf(
|
||||
"insert into ${mysqlprefix}chatnotification (locale,vckind,vcto,vcsubject,tmessage,refoperator,dtmcreated) values ('%s','%s','%s','%s','%s',%s,%s)",
|
||||
$locale,
|
||||
$kind,
|
||||
mysql_real_escape_string($to, $link),
|
||||
mysql_real_escape_string($subj, $link),
|
||||
mysql_real_escape_string($text, $link),
|
||||
$refop ? $refop : "0",
|
||||
"CURRENT_TIMESTAMP");
|
||||
|
||||
perform_query($query, $link);
|
||||
}
|
||||
|
||||
function webim_mail($toaddr, $reply_to, $subject, $body, $link)
|
||||
{
|
||||
global $webim_encoding, $webim_mailbox, $mail_encoding, $current_locale;
|
||||
@ -28,7 +44,14 @@ function webim_mail($toaddr, $reply_to, $subject, $body, $link)
|
||||
|
||||
$body = preg_replace("/\n/", "\r\n", $body);
|
||||
|
||||
log_notification($current_locale, "mail", $toaddr, $subject, $body, null, $link);
|
||||
@mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding, $mail_encoding, $body), 70), $headers);
|
||||
}
|
||||
|
||||
function webim_xmpp($toaddr, $subject, $text, $link)
|
||||
{
|
||||
global $current_locale;
|
||||
log_notification($current_locale, "xmpp", $toaddr, $subject, $text, null, $link);
|
||||
}
|
||||
|
||||
?>
|
@ -94,20 +94,21 @@ function operator_is_away($operator)
|
||||
return $operator['istatus'] != 0 && $operator['time'] < $settings['online_timeout'] ? "1" : "";
|
||||
}
|
||||
|
||||
function update_operator($operatorid, $login, $email, $password, $localename, $commonname)
|
||||
function update_operator($operatorid, $login, $email, $jabber, $password, $localename, $commonname, $notify)
|
||||
{
|
||||
global $mysqlprefix;
|
||||
$link = connect();
|
||||
$query = sprintf(
|
||||
"update ${mysqlprefix}chatoperator set vclogin = '%s',%s vclocalename = '%s', vccommonname = '%s'" .
|
||||
", vcemail = '%s', vcjabbername= '%s'" .
|
||||
", vcemail = '%s', vcjabbername= '%s', inotify = %s" .
|
||||
" where operatorid = %s",
|
||||
mysql_real_escape_string($login),
|
||||
($password ? " vcpassword='" . md5($password) . "'," : ""),
|
||||
mysql_real_escape_string($localename),
|
||||
mysql_real_escape_string($commonname),
|
||||
mysql_real_escape_string($email),
|
||||
'',
|
||||
mysql_real_escape_string($jabber),
|
||||
$notify,
|
||||
$operatorid);
|
||||
|
||||
perform_query($query, $link);
|
||||
@ -126,17 +127,19 @@ function update_operator_avatar($operatorid, $avatar)
|
||||
mysql_close($link);
|
||||
}
|
||||
|
||||
function create_operator_($login, $email, $password, $localename, $commonname, $avatar, $link)
|
||||
function create_operator_($login, $email, $jabber, $password, $localename, $commonname, $notify, $avatar, $link)
|
||||
{
|
||||
global $mysqlprefix;
|
||||
$query = sprintf(
|
||||
"insert into ${mysqlprefix}chatoperator (vclogin,vcpassword,vclocalename,vccommonname,vcavatar,vcemail,vcjabbername) values ('%s','%s','%s','%s','%s','%s','%s')",
|
||||
"insert into ${mysqlprefix}chatoperator (vclogin,vcpassword,vclocalename,vccommonname,vcavatar,vcemail,vcjabbername,inotify) values ('%s','%s','%s','%s','%s','%s','%s',%s)",
|
||||
mysql_real_escape_string($login),
|
||||
md5($password),
|
||||
mysql_real_escape_string($localename),
|
||||
mysql_real_escape_string($commonname),
|
||||
mysql_real_escape_string($avatar),
|
||||
mysql_real_escape_string($email), '');
|
||||
mysql_real_escape_string($email),
|
||||
mysql_real_escape_string($jabber),
|
||||
$notify);
|
||||
|
||||
perform_query($query, $link);
|
||||
$id = mysql_insert_id($link);
|
||||
@ -144,10 +147,10 @@ function create_operator_($login, $email, $password, $localename, $commonname, $
|
||||
return select_one_row("select * from ${mysqlprefix}chatoperator where operatorid = $id", $link);
|
||||
}
|
||||
|
||||
function create_operator($login, $email, $password, $localename, $commonname, $avatar)
|
||||
function create_operator($login, $email, $jabber, $password, $localename, $commonname, $notify, $avatar)
|
||||
{
|
||||
$link = connect();
|
||||
$newop = create_operator_($login, $email, $password, $localename, $commonname, $avatar, $link);
|
||||
$newop = create_operator_($login, $email, $jabber, $password, $localename, $commonname, $notify, $avatar, $link);
|
||||
mysql_close($link);
|
||||
return $newop;
|
||||
}
|
||||
|
@ -21,19 +21,21 @@ function setup_operator_settings_tabs($opId, $active)
|
||||
loadsettings();
|
||||
|
||||
if ($opId) {
|
||||
$page['tabselected'] = $active;
|
||||
if ($settings['enablegroups'] == '1') {
|
||||
$page['tabs'] = array(
|
||||
getlocal("page_agent.tab.main") => $active != 0 ? "$webimroot/operator/operator.php?op=$opId" : "",
|
||||
getlocal("page_agent.tab.avatar") => $active != 1 ? "$webimroot/operator/avatar.php?op=$opId" : "",
|
||||
getlocal("page_agent.tab.groups") => $active != 2 ? "$webimroot/operator/opgroups.php?op=$opId" : "",
|
||||
getlocal("page_agent.tab.permissions") => $active != 3 ? "$webimroot/operator/permissions.php?op=$opId" : ""
|
||||
array('title' => getlocal("page_agent.tab.main"), 'link' => "$webimroot/operator/operator.php?op=$opId"),
|
||||
array('title' => getlocal("page_agent.tab.avatar"), 'link' => "$webimroot/operator/avatar.php?op=$opId"),
|
||||
array('title' => getlocal("page_agent.tab.groups"), 'link' => "$webimroot/operator/opgroups.php?op=$opId"),
|
||||
array('title' => getlocal("page_agent.tab.permissions"), 'link' => "$webimroot/operator/permissions.php?op=$opId"),
|
||||
);
|
||||
} else {
|
||||
$page['tabs'] = array(
|
||||
getlocal("page_agent.tab.main") => $active != 0 ? "$webimroot/operator/operator.php?op=$opId" : "",
|
||||
getlocal("page_agent.tab.avatar") => $active != 1 ? "$webimroot/operator/avatar.php?op=$opId" : "",
|
||||
getlocal("page_agent.tab.permissions") => $active != 3 ? "$webimroot/operator/permissions.php?op=$opId" : ""
|
||||
array('title' => getlocal("page_agent.tab.main"), 'link' => "$webimroot/operator/operator.php?op=$opId"),
|
||||
array('title' => getlocal("page_agent.tab.avatar"), 'link' => "$webimroot/operator/avatar.php?op=$opId"),
|
||||
array('title' => getlocal("page_agent.tab.permissions"), 'link' => "$webimroot/operator/permissions.php?op=$opId"),
|
||||
);
|
||||
if ($active == 3) $active--;
|
||||
}
|
||||
} else {
|
||||
$page['tabs'] = array();
|
||||
|
@ -33,12 +33,13 @@ function update_settings()
|
||||
function setup_settings_tabs($active)
|
||||
{
|
||||
global $page, $webimroot;
|
||||
$page['tabselected'] = $active;
|
||||
$page['tabs'] = array(
|
||||
getlocal("page_settings.tab.main") => $active != 0 ? "$webimroot/operator/settings.php" : "",
|
||||
getlocal("page_settings.tab.features") => $active != 1 ? "$webimroot/operator/features.php" : "",
|
||||
getlocal("page_settings.tab.performance") => $active != 2 ? "$webimroot/operator/performance.php" : "",
|
||||
getlocal("page_settings.tab.themes") => $active != 3 ? "$webimroot/operator/themes.php" : "",
|
||||
array('title' => getlocal("page_settings.tab.main"), 'link' => "$webimroot/operator/settings.php"),
|
||||
array('title' => getlocal("page_settings.tab.features"), 'link' => "$webimroot/operator/features.php"),
|
||||
array('title' => getlocal("page_settings.tab.performance"), 'link' => "$webimroot/operator/performance.php"),
|
||||
array('title' => getlocal("page_settings.tab.themes"), 'link' => "$webimroot/operator/themes.php"),
|
||||
);
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
0
src/messenger/webim/locales/ca/button/webim_off.gif
Normal file → Executable file
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
0
src/messenger/webim/locales/ca/button/webim_on.gif
Normal file → Executable file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
src/messenger/webim/locales/ca/images/history.gif
Normal file → Executable file
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 231 B |
0
src/messenger/webim/locales/ca/images/login.gif
Normal file → Executable file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
0
src/messenger/webim/locales/ca/images/message.gif
Normal file → Executable file
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 255 B |
0
src/messenger/webim/locales/ca/images/save.gif
Normal file → Executable file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
0
src/messenger/webim/locales/ca/images/search.gif
Normal file → Executable file
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
0
src/messenger/webim/locales/ca/images/wmchat.png
Normal file → Executable file
Before Width: | Height: | Size: 371 B After Width: | Height: | Size: 371 B |
0
src/messenger/webim/locales/ca/properties
Normal file → Executable file
@ -3,19 +3,42 @@ output_charset=utf-8
|
||||
output_encoding=utf-8
|
||||
admin.content.client_agents=Opret, slet firma operatører. Håndter deres rettigheder.
|
||||
admin.content.client_gen_button=HTML code generator knap.
|
||||
admin.content.description=Tilladte funktioner for administratorer.
|
||||
agent.not_logged_in=Din session er udløbet. Venligst login igen
|
||||
app.descr=Mibew Messenger er et open-source live support program.
|
||||
app.title=Mibew Messenger
|
||||
ban.error.duplicate=Adressen er allerede i brug, klik <a href="ban.php?id={1}">her</a> for at ændre det.
|
||||
button.delete=Slet
|
||||
button.enter=Enter
|
||||
button.offline.bottom=Læg din besked
|
||||
button.offline.top=Side konsulent
|
||||
button.offline=OFFLINE
|
||||
button.online.bottom=Hvad vil du spørge os om
|
||||
button.online.top=Supporter
|
||||
button.online=ONLINE
|
||||
canned.descr=Rediger de spørgsmål du typisk bruger i chatten
|
||||
canned.locale=Sprog
|
||||
button.save=Gem
|
||||
button.search=Søg
|
||||
canned.actions.del=fjern
|
||||
canned.actions.edit=rediger
|
||||
canned.actions=Ændre
|
||||
canned.add=Tilføj besked...
|
||||
canned.descr=Rediger de spørgsmål du oftest anvender i chatten.
|
||||
canned.group=Grupper:
|
||||
canned.locale=Sprog:
|
||||
canned.title=Pre-definerede beskeder
|
||||
cannededit.descr=Rediger en eksisterende besked.
|
||||
cannededit.done=Gemt
|
||||
cannededit.message=Besked
|
||||
cannededit.no_such=Der er ingen besked der matcher
|
||||
cannededit.title=Rediger besked
|
||||
cannednew.descr=Tilføj ny besked.
|
||||
cannednew.title=Ny besked
|
||||
char.redirect.operator.away_suff=(ikke tilstede)
|
||||
char.redirect.operator.online_suff=Online
|
||||
chat.came.from=Besøgende kom fra side {0}
|
||||
chat.came.from=Besøgende kom fra følgende side {0}
|
||||
chat.client.changename=Skift navn
|
||||
chat.client.name=Du er
|
||||
chat.client.spam.prefix=[spam]
|
||||
chat.client.visited.page=Besøgende navigerede til {0}
|
||||
chat.default.username=Besøgende
|
||||
chat.error_page.close=Luk...
|
||||
@ -26,19 +49,35 @@ chat.mailthread.sent.closewindow=Klik på dette link for at lukke vinduet
|
||||
chat.mailthread.sent.content=Din chat-historik er sendt til {0}
|
||||
chat.mailthread.sent.title=Sendt
|
||||
chat.predefined_answers=Hejsa - kan jeg hjælpe med noget?\nVelkommen til vores support! Kan jeg hjælpe med noget?
|
||||
chat.redirect.back=Tilbage...
|
||||
chat.redirect.cannot=Du chatter nu med besøgende.
|
||||
chat.redirect.choose=Vælg:
|
||||
chat.redirect.group=Gruppe:
|
||||
chat.redirect.operator=Supporter:
|
||||
chat.redirect.title=Videresend til<br/>en anden supporter
|
||||
chat.redirected.close=Luk...
|
||||
chat.redirected.closewindow=Tryk for at lukke vinduet
|
||||
chat.redirected.content=Den besøgende blev sat i prioriteret kø af supporter {0}.
|
||||
chat.redirected.group.content=Den besøgende blev sat i prioriteret kø for gruppe {0}.
|
||||
chat.redirected.title=Den besøgende blev videresendt til en anden supporter
|
||||
chat.status.operator.changed=Operatøren {0} skiftede operatør {1}
|
||||
chat.status.operator.dead=Operatøren har problemer med at forbinde og vi har midlertidigt anbragt dig forest i køen. Beklager ventetiden.
|
||||
chat.status.operator.joined=Operatøren {0} er kommet ind i chatten
|
||||
chat.status.operator.left=Operatøren {0} har forladt chatten
|
||||
chat.status.operator.redirect=Supporten har videresendt til til en anden supporter. Vent venligst
|
||||
chat.status.operator.returned=Operatøren {0} er tilbage
|
||||
chat.status.user.changedname=Besøgende har ændret sit navn fra {0} til {1}
|
||||
chat.status.user.dead=Besøgende har lukket chat vinduet
|
||||
chat.status.user.left=Besøgende {0} har forladt chatten
|
||||
chat.status.user.reopenedthread=Besøgende er kommet tilbage til chatten igen
|
||||
chat.thread.state_chatting_with_agent=Chatter
|
||||
chat.thread.state_closed=Lukkede
|
||||
chat.thread.state_loading=Loader
|
||||
chat.thread.state_wait=I kø
|
||||
chat.thread.state_wait_for_another_agent=Venter på en supporter
|
||||
chat.visitor.email=E-mail: {0}
|
||||
chat.visitor.info=Info: {0}
|
||||
chat.wait=Tak for at du kontakter os. En operatør vil være klar om et øjeblik...
|
||||
chat.wait=Tak for at du kontakter os. En supporter vil være klar om et øjeblik...
|
||||
chat.window.chatting_with=Du chatter med:
|
||||
chat.window.close_title=Luk chatten
|
||||
chat.window.poweredby=Kører på:
|
||||
@ -50,20 +89,93 @@ chat.window.send_message_short=Send ({0})
|
||||
chat.window.title.agent=Mibew Messenger
|
||||
chat.window.title.user=Mibew Messenger
|
||||
chat.window.toolbar.mail_history=Send chat historik via e-mail
|
||||
chat.window.toolbar.redirect_user=Videresend den besøgende til en anden operatør
|
||||
chat.window.toolbar.redirect_user=Videresend den besøgende til en anden supporter
|
||||
chat.window.toolbar.refresh=Opdater
|
||||
clients.how_to=Tryk på den besøgendes navn for at svare.
|
||||
clients.intro=Denne side viser en liste over ventende besøgende.
|
||||
clients.no_clients=Der er ingen i kø
|
||||
clients.queue.prio=Prioritér kø
|
||||
clients.queue.wait=Venter på en supporter for første gang
|
||||
clients.title=Liste over besøgende der venter
|
||||
common.asterisk_explanation=<b><span style='font-size:8.0pt;color:red'>*</span></b> - påkrævede felter
|
||||
company.title=Mibew Messenger Community
|
||||
confirm.take.head=Vælg ny supporter
|
||||
confirm.take.message=Besøgende <span style="color:blue;">{0}</span> bliver allerede hjulpet af <span style="color:green;">{1}</span>.<br/> Er du sikker på, at du vil igangsætte endnu en chat session?
|
||||
confirm.take.no=Nej, luk vinduet
|
||||
confirm.take.yes=Ja, jeg er sikker
|
||||
content.history=Søg i tidligere dialoger
|
||||
content.logoff=Log ud af systemet
|
||||
data.saved=Ændringerne er gemt
|
||||
demo.chat.question=Der er så mange browsere at vælge imellem. Hvilke anbefaler du?
|
||||
demo.chat.welcome=Hej. Hvad kan jeg hjælpe med?
|
||||
errors.captcha=De indtastede bogstaver stemmer ikke overens med dem i billedet.
|
||||
errors.failed.uploading.file=Der skete en fejl ved upload af "{0}": {1}.
|
||||
errors.file.move.error=Der skete en fejl under flytning af fil
|
||||
errors.file.size.exceeded=Den uploadede fil er for stor
|
||||
errors.footer=</ul>
|
||||
errors.header=<b>Ret venligst følgende fejl:</b><br/><ul>
|
||||
errors.invalid.file.type=Ukendt filtype
|
||||
errors.required=Udfyld venligst "{0}".
|
||||
errors.suffix=</li>
|
||||
errors.wrong_field=Udfyld venligst "{0}" korrekt.
|
||||
features.saved=Funktioner aktiveret
|
||||
form.field.address.description=Fx: 12.23.45.123 eller todo.com
|
||||
form.field.address=Besøgendes adresse
|
||||
form.field.agent_commonname.description=Navnet er synligt for besøgende.
|
||||
form.field.agent_commonname=Internationalt navn (Latin)
|
||||
form.field.agent_name.description=Navnet er synligt for besøgende.
|
||||
form.field.agent_name=Navn
|
||||
form.field.avatar.current.description=Dit billede
|
||||
form.field.avatar.current=Nuværende billede
|
||||
form.field.avatar.upload.description=Vælg venligst et billede til upload. <br/> Billedet må ikke overstige 100x100 px.
|
||||
form.field.avatar.upload=Upload billede
|
||||
form.field.ban_comment=Kommentér
|
||||
form.field.ban_days.description=Antal dage denne adresse er blokeret
|
||||
form.field.ban_days=Dage
|
||||
form.field.email=Din e-mail
|
||||
form.field.groupcommondesc.description=Beskrivelse på dansk
|
||||
form.field.groupcommondesc=International beskrivelse
|
||||
form.field.groupcommonname.description=Engelsk navn.
|
||||
form.field.groupcommonname=International navn
|
||||
form.field.groupdesc.description=Beskrivelse af gruppe.
|
||||
form.field.groupdesc=Beskrivelse
|
||||
form.field.groupemail.description=Gruppe email for notifikationer. Ved tomt felt bruges standard adressen.
|
||||
form.field.groupname.description=Navn til at identificere gruppen.
|
||||
form.field.groupname=Navn
|
||||
form.field.login.description=Login kan bestå af små bogstaver og understreger.
|
||||
form.field.login=Login
|
||||
form.field.mail.description=Til notifikationer og generhvervelse af adgangskoder.
|
||||
form.field.mail=Email
|
||||
form.field.message=Besked
|
||||
form.field.name=Dit navn
|
||||
form.field.password.description=Indtast en ny adgangskode eller lad feltet forblive tomt for at beholde forrige kode.
|
||||
form.field.password=Adgangskode
|
||||
form.field.password_confirm.description=Bekræft adgangskode.
|
||||
form.field.password_confirm=Bekræftelse
|
||||
form.field.translation=Oversættelse
|
||||
harderrors.header=<b>Kan ikke eksekvere:</b><br/><ul>
|
||||
image.button.login=/locales/da/images/login.gif
|
||||
image.button.save=locales/da/images/save.gif
|
||||
image.button.search=locales/da/images/search.gif
|
||||
image.chat.history=/locales/da/images/history.gif
|
||||
image.chat.message=/locales/da/images/message.gif
|
||||
image.chat.sprite=/locales/da/images/wmchat.png
|
||||
install.0.app=Applikationssti er {0}
|
||||
install.0.package=Mibew pakke er gyldig.
|
||||
install.2.create=Opret database "{0}"
|
||||
install.2.db_exists=Database "{0}" er oprettet.
|
||||
install.2.notice=Databasen blev ikke fundet på serveren. Hvis du har tilladelse til at oprette databasen, så skal du klikke på følgende link.
|
||||
install.3.create=Opret nødvendige tabeller.
|
||||
install.3.tables_exist=Nødvendige tabeller er oprettet.
|
||||
install.4.create=Opdater tabeller
|
||||
install.4.done=Tabelstrukturen er up to date.
|
||||
install.4.notice=Tabelstrukturen bør justeres til ny version af Messenger.
|
||||
install.5.newmessage=Ny besked
|
||||
install.5.newvisitor=Ny besøgende
|
||||
install.5.text=Klik for at tjekke lyden: {0} og {1}
|
||||
install.bad_checksum=Checksum er forskellig for {0}
|
||||
install.cannot_read=Kan ikke læse filen {0}
|
||||
lang.choose=Vælg sprog
|
||||
leavemail.body=Du har en besked fra {0}:\n\n{2}\n\nHans/hendes e-mail: {1}\n{3}
|
||||
leavemail.subject=Spørgsmål fra {0}
|
||||
leavemessage.close=Luk
|
||||
@ -72,6 +184,9 @@ leavemessage.perform=Indsend
|
||||
leavemessage.sent.message=Tak for at anvende vores service. Vi vil besvare din mail så hurtigt som muligt.
|
||||
leavemessage.sent.title=Din besked er sendt
|
||||
leavemessage.title=Angiv din besked
|
||||
leftMenu.client_agents=Supportere
|
||||
leftMenu.client_gen_button=Knap-kode
|
||||
leftMenu.client_settings=Indstillinger
|
||||
license.title=Licens
|
||||
localedirection=ltr
|
||||
localeid=Danish (da)
|
||||
@ -81,10 +196,30 @@ mailthread.close=Luk...
|
||||
mailthread.enter_email=Indtast din e-mail:
|
||||
mailthread.perform=Send
|
||||
mailthread.title=Send chat historik<br/>via e-mail
|
||||
menu.agents=Supporterliste
|
||||
menu.blocked=Blokerede besøgende
|
||||
menu.canned=Pre-definerede beskeder
|
||||
menu.goonline=Du er OFFLINE.<br/><a href="{0}">Forbind..</a>
|
||||
menu.groups=Grupper
|
||||
menu.locale=Sprog
|
||||
menu.operator=Du er {0}
|
||||
menu.profile=Profil
|
||||
menu.translate=Lokalisér
|
||||
menu.updates.content=Tjek for nyheder og opdateringer.
|
||||
menu.updates=Opdateringer
|
||||
page.chat.old_browser.close=Luk...
|
||||
page.chat.old_browser.list=<ul>\n<li>Internet Explorer 5.5+</li>\n<li>Fireforx 1.0+</li>\n<li>Opera 8.0+</li>\n<li>Mozilla 1.4+</li>\n<li>Netscape 7.1+</li>\n<li>Safari 1.2+</li>\n</ul>\n<p>Vi understøtter også nogle ældre browsers:</p>\n<ul>\n<li>Internet Explorer 5.0</li>\n<li>Opera 7.0</li>\n</ul>
|
||||
page.chat.old_browser.problem=<p>Din browser er ikke fuldt ud kompatibel med Mibew Messenger.\nAnvend venligst end af browsers:</p>
|
||||
page.chat.old_browser.title=Anvend venligst en nyerer browser
|
||||
page_analysis.search.title=Historik
|
||||
page_bans.add=Tilføj adresse
|
||||
page_login.login=Login:
|
||||
page_login.password=Adgangskode:
|
||||
page_login.remember=Husk
|
||||
page_login.title=Login
|
||||
page_settings.tab.main=Generalt
|
||||
pending.table.head.name=Navn
|
||||
pending.table.head.operator=Supporter
|
||||
presurvey.department=Vælg afdeling:
|
||||
presurvey.intro=Tak for at du har kontaktet os. For bedre at kunne servicere dig, udfyld venligst formen nedenfor og klik Start chat knappen.
|
||||
presurvey.mail=E-mail:
|
||||
@ -92,7 +227,50 @@ presurvey.name=Navn:
|
||||
presurvey.question=Første spørgsmål:
|
||||
presurvey.submit=Start chat
|
||||
presurvey.title=Live support
|
||||
report.bydate.1=Dato
|
||||
report.bydate.2=Chat tråde
|
||||
right.other=Andet
|
||||
settings.usernamepattern=Besøgendes identifikator
|
||||
settings.wrong.email=Indtast en gyldig email
|
||||
settings.wrong.onehostconnections="Maks antal af tråde" feltet skal være tal
|
||||
site.title=mibew.org
|
||||
site.url=http://mibew.org
|
||||
statistics.dates=Vælg datoer
|
||||
statistics.description=Fra denne side kan du generere forskellige rapporter.
|
||||
statistics.from=Fra:
|
||||
statistics.till=Til:
|
||||
statistics.title=Statistikker
|
||||
statistics.wrong.dates=Du har valgt Fra dato efter Til dato
|
||||
tag.pagination.info=Side {0} af {1}, {2}-{3} af {4}
|
||||
tag.pagination.next=næste
|
||||
tag.pagination.no_items.elements=Ingen elemnter
|
||||
tag.pagination.no_items=Fandt 0 elementer
|
||||
tag.pagination.previous=tidligere
|
||||
thread.back_to_search=Gå til søgning
|
||||
thread.intro=Denne side viser detaljer og indhold for chatten.
|
||||
time.never=Aldrig
|
||||
time.timeformat=%I:%M %p
|
||||
time.today.at=I dag kl.
|
||||
time.yesterday.at=I går kl.
|
||||
topMenu.admin=Start
|
||||
topMenu.logoff=Exit
|
||||
topMenu.main=Start
|
||||
topMenu.users.nomenu=uden menu
|
||||
topMenu.users=Besøgende
|
||||
translate.direction=Vej:
|
||||
translate.show.all=Alle strenge
|
||||
translate.show.foradmin=Strenge for administratorer
|
||||
translate.show.foroperator=Strenge for supportere
|
||||
translate.show.forvisitor=Strenge for besøgende
|
||||
translate.show=Vis:
|
||||
translate.sort.key=Nøgle identifikator
|
||||
translate.sort.lang=Kildesprog streng
|
||||
translate.sort=Sorter efter:
|
||||
typing.remote=Bruger skriver...
|
||||
updates.current=Du bruger:
|
||||
updates.env=Miljø:
|
||||
updates.installed_locales=Installerede lokaliseringer:
|
||||
updates.intro=Messenger opdateringer.
|
||||
updates.latest=Seneste version:
|
||||
updates.news=Nyheder:
|
||||
updates.title=Opdateringer
|
||||
|
@ -11,6 +11,8 @@ app.title=Live Support
|
||||
ban.error.duplicate=Addresse {0} ist schon vorhanden, klicke <a href="ban.php?id={1}">hier</a> um die Addresse zu ändern.
|
||||
button.delete=Löschen
|
||||
button.enter=OK
|
||||
button.offline.bottom=Nachricht hinterlassen
|
||||
button.offline=offline
|
||||
button.save=Speichern
|
||||
button.search=Suchen
|
||||
canned.actions.del=entfernen
|
||||
|
@ -149,6 +149,10 @@ form.field.groupdesc=Description
|
||||
form.field.groupemail.description=Group email for notifications. Leave empty to use the default address.
|
||||
form.field.groupname.description=Name to identify the group.
|
||||
form.field.groupname=Name
|
||||
form.field.jabber.description=For instant notifications
|
||||
form.field.jabber=Jabber ID
|
||||
form.field.jabbernotify.description=deliver via Jabber (instant)
|
||||
form.field.jabbernotify=Notification of new visitor
|
||||
form.field.login.description=Login can consist of small Latin letters and underscore.
|
||||
form.field.login=Login
|
||||
form.field.mail.description=For notifications and password retrieval.
|
||||
@ -232,6 +236,8 @@ menu.groups=Groups
|
||||
menu.locale.content=Change locale.
|
||||
menu.locale=Language
|
||||
menu.main=Main
|
||||
menu.notifications.content=All notifications sent by messenger.
|
||||
menu.notifications=Notifications
|
||||
menu.operator=You are {0}
|
||||
menu.profile.content=You can change your personal information on this page.
|
||||
menu.profile=Profile
|
||||
@ -240,6 +246,24 @@ menu.updates.content=Check for news and updates.
|
||||
menu.updates=Updates
|
||||
my_settings.error.password_match=Entered passwords do not match
|
||||
no_such_operator=No such Operator
|
||||
notification.back_to_list=Back to the list
|
||||
notification.intro=Contents of sent notification.
|
||||
notification.label.subj=Subject
|
||||
notification.label.time=Time
|
||||
notification.label.to=To
|
||||
notification.title=Notification details
|
||||
notifications.head.msg=Text
|
||||
notifications.head.subj=Subject
|
||||
notifications.head.time=Time
|
||||
notifications.head.to=To
|
||||
notifications.kind.all=-all-
|
||||
notifications.kind.mail=E-Mail
|
||||
notifications.kind.xmpp=XMPP/Jabber
|
||||
notifications.kind=Kind of notification
|
||||
notifications.locale.all=-all-
|
||||
notifications.locale=Language
|
||||
notify.new.subject="{0}"
|
||||
notify.new.text={1}: {0}
|
||||
operator.group.no_description=<no description>
|
||||
operator.groups.intro=Choose groups according to operator skills.
|
||||
operator.groups.title=Operator groups
|
||||
@ -269,6 +293,8 @@ page.gen_button.modsecurity=Compatibility with mod_security (modsecurity.org), t
|
||||
page.gen_button.sample=Example
|
||||
page.gen_button.secure_links=Use secure links (https)
|
||||
page.gen_button.title=Button HTML code generation
|
||||
page_getcode.tab.image=Image
|
||||
page_getcode.tab.text=Text
|
||||
page.group.create_new=Create new group here.
|
||||
page.group.duplicate_name=Please choose another name because a group with that name already exists.
|
||||
page.group.intro=On this page you can edit group details.
|
||||
@ -283,6 +309,8 @@ page.groups.isaway=Away
|
||||
page.groups.isonline=Online
|
||||
page.groups.new=Create new group
|
||||
page.groups.title=Groups
|
||||
page.notifications.intro=The list displays all notifications sent by messenger, including instant text messages and E-Mails.
|
||||
page.notifications.title=Notifications Log
|
||||
page.preview.agentchat=Chat window (operator-mode)
|
||||
page.preview.agentrochat=View Chat window (operator in read-only mode)
|
||||
page.preview.chatsimple=Simple chat window. Refresh to post messages (IE 5, Opera 7)
|
||||
@ -426,6 +454,8 @@ settings.enableban.description=Using it you can block attacks from specific IPs
|
||||
settings.enableban=Enable feature "Malicious Visitors"
|
||||
settings.enablegroups.description=Use it to have separate queues for different questions.
|
||||
settings.enablegroups=Enable "Groups"
|
||||
settings.enablejabber.description=Instant notification of new visitor (require <a href="http://mibew.org/download.php">Mibew Jabber</a> software)
|
||||
settings.enablejabber=Enable "Jabber notifications"
|
||||
settings.enablepresurvey.description=Forces the user to fill out a special form to start a chat.
|
||||
settings.enablepresurvey=Enable "Pre-chat survey"
|
||||
settings.enablessl.description=Please note that your web server should be configured to support https requests.
|
||||
|
@ -27,11 +27,11 @@ cannednew.descr=Lisää uusi viesti.
|
||||
cannednew.title=Uusi Viesti
|
||||
char.redirect.operator.away_suff=(poissa)
|
||||
char.redirect.operator.online_suff=(käyettävissä)
|
||||
chat.came.from=Käviä tuli sivulta {0}
|
||||
chat.came.from=Kävijä tuli sivulta {0}
|
||||
chat.client.changename=Muuta nimi
|
||||
chat.client.name=Sinä olet
|
||||
chat.client.visited.page=Käviä suuntasi sivulle {0}
|
||||
chat.default.username=Käviä
|
||||
chat.client.visited.page=Kävijä suuntasi sivulle {0}
|
||||
chat.default.username=Kävijä
|
||||
chat.error_page.close=Sulje...
|
||||
chat.error_page.head=Tapahtui virhe:
|
||||
chat.error_page.title=Virhe
|
||||
@ -45,7 +45,7 @@ chat.redirect.choose=Valitse:
|
||||
chat.redirect.group=Ryhmä:
|
||||
chat.redirected.close=Sulje...
|
||||
chat.redirected.closewindow=Napsauta sulkeaksesi ikkuna
|
||||
chat.status.user.dead=Käviä sulki kesukusteluikkunan
|
||||
chat.status.user.dead=Kävijä sulki keskusteluikkunan
|
||||
chat.status.user.reopenedthread=Vierailija liittyi keskusteluun uudestaan
|
||||
chat.thread.state_chatting_with_agent=Keskustelussa
|
||||
chat.thread.state_closed=Suljettu
|
||||
@ -79,7 +79,7 @@ errors.required=Täytä "{0}".
|
||||
errors.wrong_field=Täytä "{0}" oikein.
|
||||
features.saved=Ominaisuudet aktivoitu
|
||||
form.field.address.description=Esim.: 12.23.35.123 tai todo.com
|
||||
form.field.address=Käviän Osoite
|
||||
form.field.address=Kävijän Osoite
|
||||
form.field.agent_commonname.description=Tämä nimi näytetään käviöille.
|
||||
form.field.agent_name.description=Tämä nimi näytetään käviöille.
|
||||
form.field.agent_name=Nimi
|
||||
|
@ -309,7 +309,7 @@ page_agent.clear_avatar=Rimuovi avatar
|
||||
page_agent.create_new=Qui puoi creare un nuovo operatore.
|
||||
page_agent.error.duplicate_login=Per favore scegli un altro login, perché questo è già utilizzato nel sistema.
|
||||
page_agent.error.wrong_login=la login può conteneresolo caratteri latin, numeri ed underscore.
|
||||
page_agent.intro=Questa pagina visualizza i dettagli degli operatori, se tu possiedi i diritti di accesso puoi modificarli.
|
||||
page_agent.intro=Questa pagina visualizza elenco degli assistenti societari e permette anche di aggiungerne nuovi, se si possiedono le autorizzazioni.
|
||||
page_agent.tab.avatar=Foto
|
||||
page_agent.tab.groups=Gruppi
|
||||
page_agent.tab.main=Generale
|
||||
|
@ -62,6 +62,8 @@ mailthread.close
|
||||
mailthread.enter_email
|
||||
mailthread.perform
|
||||
mailthread.title
|
||||
notify.new.subject
|
||||
notify.new.text
|
||||
output_charset
|
||||
output_encoding
|
||||
page.chat.old_browser.close
|
||||
|
@ -58,6 +58,8 @@ confirm.take.yes
|
||||
content.blocked
|
||||
content.history
|
||||
content.logoff
|
||||
error.no_password
|
||||
error.no_password.visit_profile
|
||||
errors.footer
|
||||
errors.header
|
||||
errors.prefix
|
||||
@ -87,6 +89,8 @@ menu.groups
|
||||
menu.groups.content
|
||||
menu.locale
|
||||
menu.locale.content
|
||||
menu.notifications
|
||||
menu.notifications.content
|
||||
menu.operator
|
||||
menu.profile
|
||||
menu.profile.content
|
||||
@ -95,6 +99,22 @@ menu.updates
|
||||
menu.updates.content
|
||||
my_settings.error.password_match
|
||||
no_such_operator
|
||||
notification.back_to_list
|
||||
notification.intro
|
||||
notification.label.subj
|
||||
notification.label.time
|
||||
notification.label.to
|
||||
notification.title
|
||||
notifications.head.msg
|
||||
notifications.head.subj
|
||||
notifications.head.time
|
||||
notifications.head.to
|
||||
notifications.kind
|
||||
notifications.kind.all
|
||||
notifications.kind.mail
|
||||
notifications.kind.xmpp
|
||||
notifications.locale
|
||||
notifications.locale.all
|
||||
page.analysis.search.head_browser
|
||||
page.analysis.search.head_group
|
||||
page.analysis.search.head_host
|
||||
@ -104,8 +124,23 @@ page.analysis.search.head_operator
|
||||
page.analysis.search.head_time
|
||||
page.analysis.userhistory.intro
|
||||
page.analysis.userhistory.title
|
||||
page.gen_button.choose_group
|
||||
page.gen_button.choose_image
|
||||
page.gen_button.choose_locale
|
||||
page.gen_button.choose_style
|
||||
page.gen_button.code
|
||||
page.gen_button.code.description
|
||||
page.gen_button.default_group
|
||||
page.gen_button.include_site_name
|
||||
page.gen_button.intro
|
||||
page.gen_button.modsecurity
|
||||
page.gen_button.sample
|
||||
page.gen_button.secure_links
|
||||
page.gen_button.title
|
||||
page.group.no_such
|
||||
page.notifications.intro
|
||||
page.notifications.title
|
||||
page.preview.style_default
|
||||
page_analysis.full.text.search
|
||||
page_analysis.search.title
|
||||
page_ban.intro
|
||||
@ -116,6 +151,8 @@ page_bans.add
|
||||
page_bans.title
|
||||
page_bans.to
|
||||
page_client.pending_users
|
||||
page_getcode.tab.image
|
||||
page_getcode.tab.text
|
||||
page_login.error
|
||||
page_login.intro
|
||||
page_login.login
|
||||
|
@ -6,11 +6,17 @@ admin.content.client_gen_button=Botão de geração de código HTML.
|
||||
admin.content.client_settings=Especificar opções que afetam a janela de chat e o comportamento comum do sistema.
|
||||
admin.content.description=Funções disponíveis para administradores.
|
||||
agent.not_logged_in=Sua sessão expirou, por favor faça novamente o login
|
||||
app.descr=Chat para Suporte.
|
||||
app.descr=Mibew Messenger é um programa de código aberto para suporte ao vivo.
|
||||
app.title=Mibew Messenger
|
||||
ban.error.duplicate=O endereço especificado já está em uso, clique <a href="ban.php?id={1}">aqui</a> se você deseja editá-lo.
|
||||
button.delete=Excluir
|
||||
button.enter=Entrar
|
||||
button.offline.bottom=Deixe sua mensagem
|
||||
button.offline.top=Atendente
|
||||
button.offline=OFFLINE
|
||||
button.online.bottom=Faça sua pergunta
|
||||
button.online.top=Atendente
|
||||
button.online=ONLINE
|
||||
button.save=Salvar
|
||||
button.search=Procurar
|
||||
canned.actions.del=Remover
|
||||
@ -28,10 +34,13 @@ cannededit.no_such=Nenhuma dessas mensagens
|
||||
cannededit.title=Editando Mensagem
|
||||
cannednew.descr=Adicionando nova Mensagem.
|
||||
cannednew.title=Nova Mensagem
|
||||
char.redirect.operator.away_suff=(Ausente)
|
||||
char.redirect.operator.online_suff=(online)
|
||||
chat.came.from=O visitante veio da página {0}
|
||||
chat.client.changename=Alterar nome
|
||||
chat.client.name= Nome Atual:
|
||||
chat.client.name=Usuário
|
||||
chat.client.spam.prefix=[spam]
|
||||
chat.client.visited.page=O Visitante navegou para {0}
|
||||
chat.default.username=Visitante
|
||||
chat.error_page.close=Fechar...
|
||||
chat.error_page.head=Erro ocorrido:
|
||||
@ -42,10 +51,15 @@ chat.mailthread.sent.content=O histórico da sua conversa foi enviado para {0}
|
||||
chat.mailthread.sent.title=Enviado
|
||||
chat.predefined_answers=Olá, como posso ajudá-lo?\nOlá! Bem vindo ao nosso suporte. Como posso ajudá-lo?
|
||||
chat.redirect.back=Voltar...
|
||||
chat.redirect.cannot=Você não está conversando com os visitantes.
|
||||
chat.redirect.choose=Escolha:
|
||||
chat.redirect.group=Grupo:
|
||||
chat.redirect.operator=Operador:
|
||||
chat.redirect.title=Redirecionar para<br/>outro atendente
|
||||
chat.redirected.close=Fechar...
|
||||
chat.redirected.closewindow=Clique aqui para fechar a janela
|
||||
chat.redirected.content=O visitante passou para a fila de prioridades do operador {0}.
|
||||
chat.redirected.group.content=O visitante passou para a fila de prioridades do grupo {0}.
|
||||
chat.redirected.title=O visitante foi redirecionado a outro operador
|
||||
chat.status.operator.changed=O operador {0} mudou o operador {1}
|
||||
chat.status.operator.dead=O operador teve problemas em sua conexão, você está temporariamente em espera, desculpe-nos pela demora.
|
||||
@ -67,7 +81,7 @@ chat.visitor.info=Info: {0}
|
||||
chat.wait=Obrigado por nos contatar. Aguarde...
|
||||
chat.window.chatting_with=Você está conversando:
|
||||
chat.window.close_title=Fechar chat
|
||||
chat.window.poweredby=Desemvolvido por:
|
||||
chat.window.poweredby=Desenvolvido por:
|
||||
chat.window.poweredreftext=mibew.org
|
||||
chat.window.predefined.select_answer=Escolha a resposta...
|
||||
chat.window.product_name=Mibew <span class="grey">Messenger</span>
|
||||
@ -80,7 +94,7 @@ chat.window.toolbar.redirect_user=Redirecionar visitante para outro operador
|
||||
chat.window.toolbar.refresh=Refresh
|
||||
clients.how_to=Para responder ao visitante, clique em seu nome na lista.
|
||||
clients.intro=Esta página contém a lista de visitante em espera.
|
||||
clients.no_clients=A lista de visitantes em espera está vazio
|
||||
clients.no_clients=A lista de visitantes em espera está vazia
|
||||
clients.queue.chat=Visitantes no chat
|
||||
clients.queue.prio=Fila de prioridade para visitantes
|
||||
clients.queue.wait=Esperando um operador
|
||||
@ -91,11 +105,13 @@ confirm.take.head=Mudar o operador
|
||||
confirm.take.message=O visitante <span style="color:blue;">{0}</span> já está sendo atendido <span style="color:green;">{1}</span>.<br/> Você tem certeza que quer entrar no chat?
|
||||
confirm.take.no=Não, feche esta janela
|
||||
confirm.take.yes=Sim, tenho certeza
|
||||
content.blocked=Aqui você pode cuidar dos visitantes mal-intencionados.
|
||||
content.blocked=Aqui você pode se defender de visitantes mal-intencionados.
|
||||
content.history=Procurar histórico de conversa.
|
||||
content.logoff=Sair do sistema.
|
||||
demo.chat.question=Há muitos browsers para escolher. Qual deles você me recomenda?
|
||||
data.saved=Alterações salvas
|
||||
demo.chat.question=Existem muitos navegadores para escolher. Qual deles você me recomenda?
|
||||
demo.chat.welcome=Olá, Como posso lhe ajudar?
|
||||
errors.captcha=As letras que você digitou não coincidem com as letras que aparecem na imagem.
|
||||
errors.failed.uploading.file=Erro ao fazer upload do arquivo "{0}": "{1}".
|
||||
errors.file.move.error=Erro ao mover arquivo
|
||||
errors.file.size.exceeded=Tamanho do arquivo excedido
|
||||
@ -105,9 +121,9 @@ errors.invalid.file.type=Tipo de arquivo inválido
|
||||
errors.prefix=<li class="error">
|
||||
errors.required=Por favor, preencha "{0}".
|
||||
errors.suffix=</li>
|
||||
errors.wrong_field=Por favor, preecnha "{0}" corretamente.
|
||||
errors.wrong_field=Por favor, preencha "{0}" corretamente.
|
||||
features.saved=Características Ativas
|
||||
form.field.address.description=Ex: 12.23.45.123 or site.com
|
||||
form.field.address.description=Ex: 12.23.45.123 ou site.com
|
||||
form.field.address=Endereço do visitante
|
||||
form.field.agent_commonname.description=Este nome será visto por todos os visitantes.
|
||||
form.field.agent_commonname=Nome internacional (Latin)
|
||||
@ -123,15 +139,18 @@ form.field.ban_days.description=Quantos dias para ignorar este endereço
|
||||
form.field.ban_days=Dias
|
||||
form.field.email=Seu e-mail
|
||||
form.field.groupcommondesc.description=Descrição em Inglês.
|
||||
form.field.groupcommondesc=Descrção Internacional
|
||||
form.field.groupcommondesc=Descrição Internacional
|
||||
form.field.groupcommonname.description=Nome em Inglês.
|
||||
form.field.groupcommonname=Nome Internacional
|
||||
form.field.groupdesc.description=Descrição do grupo.
|
||||
form.field.groupdesc=Descrição
|
||||
form.field.groupemail.description=Grupo de e-mail para notificações. Deixe em branco para usar o endereço padrão.
|
||||
form.field.groupname.description=Nome para identificar o grupo.
|
||||
form.field.groupname=Nome
|
||||
form.field.login.description=Login deve ser alfa-numérico.
|
||||
form.field.login=Login
|
||||
form.field.mail.description=Para notificações e recuperação de senha.
|
||||
form.field.mail=E-mail
|
||||
form.field.message=Mensagem
|
||||
form.field.name=Seu nome
|
||||
form.field.password.description=Digite uma nova senha. Campo vazio para não alterar.
|
||||
@ -146,6 +165,9 @@ image.button.search=/locales/pt-br/images/search.gif
|
||||
image.chat.history=/locales/pt-br/images/history.gif
|
||||
image.chat.message=/locales/pt-br/images/message.gif
|
||||
image.chat.sprite=/locales/pt-br/images/wmchat.png
|
||||
install.0.app=Caminho do aplicativo é {0}
|
||||
install.0.package=O pacote Mibew é válido.
|
||||
install.0.php=Versão PHP {0}
|
||||
install.1.connected=Você está conectado ao Servidor MySQL, versão {0}
|
||||
install.2.create=Criar banco de dados "{0}"
|
||||
install.2.db_exists=O banco de dados "{0}" está criado.
|
||||
@ -155,6 +177,13 @@ install.3.tables_exist=Tabelas requeridas foram criadas.
|
||||
install.4.create=Atualizar tabelas
|
||||
install.4.done=Estruturas das tabelas estão criadas.
|
||||
install.4.notice=A estrutura de suas tabelas deve ser ajustada para a nova versão do Messenger.
|
||||
install.5.newmessage=Nova Mensagem
|
||||
install.5.newvisitor=Novo Visitante
|
||||
install.5.text=Clique para ajustar o som: {0} e {1}
|
||||
install.bad_checksum=A Soma de verificação é diferente de {0}
|
||||
install.cannot_read=Não é possível ler o arquivo {0}
|
||||
install.check_files=Por favor, reenvie os arquivos para o servidor.
|
||||
install.check_permissions=Faltam permissões de arquivo {0}
|
||||
install.connection.error=Não pode conectar, por favor, verifique as configurações no arquivo config.php. Erro: {0}
|
||||
install.done=Pronto:
|
||||
install.err.back=Resolva o problema e tente novamente. Clique <a>voltar</a> para retornar ao instalador.
|
||||
@ -163,8 +192,11 @@ install.kill_tables.notice=Não foi possível atualizar a estrutura das tabelas.
|
||||
install.kill_tables=Exclua as tabelas existentes no sistema
|
||||
install.license=Concordo com a licença do Software
|
||||
install.message=Siga o instalador para completar a instalação.
|
||||
install.newfeatures=Parabéns! Agora você está com o Mibew Menssenger {1} instalado. Ative recursos adicionais na <a href="{0}"> página </a> serviços opcionais.
|
||||
install.next=Próximo Passo:
|
||||
install.no_file=Arquivo faltante: {0}
|
||||
install.title=Instalação
|
||||
install.updatedb=Por favor, execute o <a href="{0}"> Assistente de atualização </a> para ajustar seu banco de dados.
|
||||
installed.login_link=Ir para a página de login
|
||||
installed.message=<b>Aplicação instalado com sucesso.</b>
|
||||
installed.notice=Você pode logar como <b>admin</b> com a senha em branco.<br/><br/><font color="#c13030"><b>!!! Por razões de segurança, mude sua imediatamente e remove a pasta {0} do seu servidor.</b></font>
|
||||
@ -180,6 +212,7 @@ leavemessage.title=Deixe sua mensagem
|
||||
leftMenu.client_agents=Agentes
|
||||
leftMenu.client_gen_button=Botão
|
||||
leftMenu.client_settings=Configurações
|
||||
license.title=Licença
|
||||
localedirection=ltr
|
||||
localeid=Português Brasil (pt-br)
|
||||
mail.user.history.body=Olá, {0}!\n\nSeu histórico do chat: \n\n{1}\n--- \nObrigado,\nMibew Messenger
|
||||
@ -191,12 +224,13 @@ mailthread.title=Enviar histórico do chat<br/>por email
|
||||
menu.agents=Lista de agentes
|
||||
menu.blocked=Visitantes bloqueados
|
||||
menu.canned=Mensagens prontas
|
||||
menu.goonline=Você está Offline.<br/><a href="{0}">Conecte..</a>
|
||||
menu.groups.content=Departamento ou habilidade baseada operador grupos.
|
||||
menu.groups=Grupos
|
||||
menu.locale.content=Selecione o Idioma.
|
||||
menu.locale=Idioma
|
||||
menu.main=Inicial
|
||||
menu.operator= <span style="color:#66C786; text-transform: uppercase;"><b>{0} </b></span> - Bem Vindo ao Sistema.
|
||||
menu.operator=Bem Vindo {0}
|
||||
menu.profile.content=Você pode alterar suas informações pessoais nesta página.
|
||||
menu.profile=Perfil
|
||||
menu.translate=Idioma
|
||||
@ -207,6 +241,8 @@ no_such_operator=Nenhum operador
|
||||
operator.group.no_description=<Sem descrição>
|
||||
operator.groups.intro=Escolha grupos de acordo com o operador competências.
|
||||
operator.groups.title=Operador grupos
|
||||
page.analysis.search.head_browser=Navegador
|
||||
page.analysis.search.head_group=Grupo
|
||||
page.analysis.search.head_host=Endereço do visitante
|
||||
page.analysis.search.head_messages=Mensagens do visitante
|
||||
page.analysis.search.head_name=Nome
|
||||
@ -216,7 +252,7 @@ page.analysis.userhistory.intro=Você pode encontrar o histórico de chat dos vi
|
||||
page.analysis.userhistory.title=Histórico de visitas
|
||||
page.chat.old_browser.close=Fechar...
|
||||
page.chat.old_browser.list=<ul>\n<li>Internet Explorer 5.5+</li>\n<li>Firefox 1.0+</li>\n<li>Opera 8.0+</li>\n<li>Mozilla 1.4+</li>\n<li>Netscape 7.1+</li>\n<li>Safari 1.2+</li>\n</ul>\n<p>Suporte somente para os seguintes navegadores antigos:</p>\n<ul>\n<li>Internet Explorer 5.0</li>\n<li>Opera 7.0</li>\n</ul>
|
||||
page.chat.old_browser.problem=<p>Seu browser não suporta esta aplicação. \nPor favor, use alguns dos seguintes browsers:</p>
|
||||
page.chat.old_browser.problem=<p>Seu navegador não é totalmente suportado pelo Mibew Messenger.\nPor favor, use um dos seguintes navegadores:</p>
|
||||
page.chat.old_browser.title=Por favor, use um browser mais novo
|
||||
page.gen_button.choose_group=Selecione o Grupo
|
||||
page.gen_button.choose_image=Escolha a imagem
|
||||
@ -227,6 +263,7 @@ page.gen_button.code=Código HTML
|
||||
page.gen_button.default_group=-Todos os Operadores-
|
||||
page.gen_button.include_site_name=Incluir o nome do host
|
||||
page.gen_button.intro=Você pode gerar o código HTML para colocar no seu site aqui.
|
||||
page.gen_button.modsecurity=Compatibilidade com o mod_security (modsecurity.org), ative-o apenas em caso de problemas
|
||||
page.gen_button.sample=Exemplo
|
||||
page.gen_button.secure_links=Usar link seguro (https)
|
||||
page.gen_button.title=Gerador do código HTML do botão
|
||||
@ -240,6 +277,8 @@ page.groupmembers.intro=Ver e editar a lista de membros.
|
||||
page.groupmembers.title=Membros
|
||||
page.groups.confirm=Tem certeza que pretende eliminar grupo "{0}"?
|
||||
page.groups.intro=Esta página apresenta uma lista de grupos na sua empresa. Cada grupo pode ter separadamente seu perfil.
|
||||
page.groups.isaway=Ausente
|
||||
page.groups.isonline=Online
|
||||
page.groups.new=Criando novo Grupo..
|
||||
page.groups.title=Grupos
|
||||
page.preview.agentchat=Janela do Chat (agent-mode)
|
||||
@ -247,6 +286,7 @@ page.preview.agentrochat=Ver janela do chat (Modo de leitura)
|
||||
page.preview.chatsimple=Janela de chat simples, atualize para mandar mensagens (IE 5, Opera 7)
|
||||
page.preview.choose=Escolher estilo
|
||||
page.preview.choosetpl=Escolher template
|
||||
page.preview.error=Janela de erro
|
||||
page.preview.intro=Você pode visualizar estilos do seu site.
|
||||
page.preview.leavemessage=Ver a janela de mensagens
|
||||
page.preview.leavemessagesent=Ver a janela de mensagens enviadas
|
||||
@ -257,12 +297,14 @@ page.preview.redirect=Redirecionar visitante para outro janela
|
||||
page.preview.redirected=O visitante foi redirecionado para outra janela
|
||||
page.preview.showerr=Monstrar error
|
||||
page.preview.style_default=- configurações orginais -
|
||||
page.preview.survey=Estudo Pré-chat
|
||||
page.preview.title=Estilo do site
|
||||
page.preview.userchat=Janela do Chat (visitante)
|
||||
page.translate.descr=Se você não gostou da tradução, por favor, nos envie uma atualização.
|
||||
page.translate.done=Sua tradução foi salva.
|
||||
page.translate.one=Coloque sua tradução.
|
||||
page.translate.title=Traduzir o WEBIM
|
||||
page_agent.cannot_modify=Você não possui permissão para alterar o perfil desta pessoa.
|
||||
page_agent.clear_avatar=Remover avatar
|
||||
page_agent.create_new=Aqui você pode criar um novo operador.
|
||||
page_agent.error.duplicate_login=Por favor, escolha outro login, já há este login na base de dados.
|
||||
@ -275,7 +317,10 @@ page_agent.tab.permissions=Permissões
|
||||
page_agent.title=Detalhes do operador
|
||||
page_agents.agent_name=Nome
|
||||
page_agents.agents=Lista de todos os agentes:
|
||||
page_agents.confirm=Deseja excluir o operador "{0}"?
|
||||
page_agents.intro=Esta página mostar a lista de agentes da empresa e também permite adicionar novos.
|
||||
page_agents.isaway=Ausente
|
||||
page_agents.isonline=Online
|
||||
page_agents.login=Usuario
|
||||
page_agents.new_agent=Criar um novo agente..
|
||||
page_agents.status=Ultima Sessão
|
||||
@ -289,10 +334,13 @@ page_ban.sent=Endereço {0} está bloquado por uma quantidade determinada de dia
|
||||
page_ban.thread=Você abriu esta janela por "{0}" entretanto, <i>o campo endereço</i> já está preenchido. Selecione um número de dias e clique <i>Enviar</i>.
|
||||
page_ban.title=Bloquear endereço
|
||||
page_bans.add=Adicionar endereço
|
||||
page_bans.confirm=Deseja excluir o endereço {0} da lista de bloqueados?
|
||||
page_bans.list=Lista de IP banidos:
|
||||
page_bans.title=Bloqueados
|
||||
page_bans.to=Antes
|
||||
page_client.pending_users=Você pode encontrar visitantes em espera.
|
||||
page_group.tab.main=Geral
|
||||
page_group.tab.members=Membros
|
||||
page_login.error=Usuário e/ou senhas incorretos
|
||||
page_login.intro=Digite seu nome de usuário e senha para acessar ferramentas administrativas, ver os seus visitantes e percorrer a história.
|
||||
page_login.login=Usuario:
|
||||
@ -303,9 +351,13 @@ page_search.intro=Procurar por históricos de chat de um determinado visitante o
|
||||
page_settings.intro=Opções específicas afetam a janela do chat e o comportamento do sistema.
|
||||
page_settings.tab.features=Serviços Opcionais
|
||||
page_settings.tab.main=Geral
|
||||
page_settings.tab.performance=Desempenho
|
||||
page_settings.tab.themes=Prévia do Tema
|
||||
pending.menu.hide=Ocultar o Menu >>
|
||||
pending.menu.show=Visualisar o Menu >>
|
||||
pending.popup_notification=Um novo visitante está aguardando resposta.
|
||||
pending.status.setaway=Definir status "Ausente"
|
||||
pending.status.setonline=Definir status "Disponível"
|
||||
pending.table.ban=Bannir o visitante
|
||||
pending.table.head.contactid=Endereço do usuário
|
||||
pending.table.head.etc=Misc
|
||||
@ -330,15 +382,33 @@ presurvey.question=Pergunta Inicial:
|
||||
presurvey.submit=Inicar Chat
|
||||
presurvey.title=Chat Suporte
|
||||
report.bydate.1=Date
|
||||
report.bydate.2=Chat threads
|
||||
report.bydate.2=Tópicos do Chat
|
||||
report.bydate.3=Mensagens de Operadores
|
||||
report.bydate.4=Mensagens de Visitantes
|
||||
report.bydate.title=Estatísticas de utilização para cada data
|
||||
report.byoperator.1=Operador
|
||||
report.byoperator.2=Quantidade de Chat
|
||||
report.byoperator.2=Tópicos do Chat
|
||||
report.byoperator.3=Mensagens
|
||||
report.byoperator.4=comprimento (em caracteres)
|
||||
report.byoperator.4=Tamanho da mensagem (em caracteres)
|
||||
report.byoperator.title=Dados pelo Operador
|
||||
report.no_items=Não há dados suficientes
|
||||
report.total=Total:
|
||||
resetpwd.changed.title=Sua senha foi alterada!
|
||||
resetpwd.changed=Faça o login usando sua nova senha.
|
||||
resetpwd.intro=Por favor escolha uma senha para usar com a sua conta Mibew.
|
||||
resetpwd.login=Prossiga para fazer o login
|
||||
resetpwd.submit=Mudar
|
||||
resetpwd.title=Mude sua senha Mibew
|
||||
restore.back_to_login=Voltar para o Login
|
||||
restore.emailorlogin=Login ou E-mail:
|
||||
restore.intro=Não é possível recuperar sua senha, mas você pode definir uma nova, clicando no link enviado por e-mail.
|
||||
restore.mailsubj=Redefina sua senha no Mibew
|
||||
restore.mailtext=Olá, {0}\n\nPor favor clique no link abaixo ou copie e cole o URL em seu navegador:\n{1}\n\nDesta forma, você poderá escolher uma nova senha. \n\nMibew Messenger.
|
||||
restore.pwd.message=Esqueceu sua senha?
|
||||
restore.sent.title=Recuperação de senha
|
||||
restore.sent=Enviamos as instruções para seu e-mail. Por favor, verifique!
|
||||
restore.submit=Redefinir a senha
|
||||
restore.title=Problemas para acessar sua conta?
|
||||
right.administration=Área Administrativa
|
||||
right.main=Opções
|
||||
right.other=Outros
|
||||
@ -352,27 +422,56 @@ settings.email.description=Digite um e-mail para receber mensagens do sistema
|
||||
settings.email=Email
|
||||
settings.enableban.description=Usando esta opção você pode bloquear ataques de IPs especificos
|
||||
settings.enableban=Ativar opção "visitante mal-intencionado"
|
||||
settings.enablegroups.description=Use-o para ter filas separadas para questões diferentes.
|
||||
settings.enablegroups=Ativar "grupos"
|
||||
settings.enablepresurvey.description=Obriga o usuário a preencher um formulário especial para iniciar a conversa.
|
||||
settings.enablepresurvey=Ativar "pesquisa pré-chat"
|
||||
settings.enablessl.description=Note que seu servidor web deve ser<br/> configurado para suportar requisições https.
|
||||
settings.enablessl=Permitir conexões seguras (SSL)
|
||||
settings.enablestatistics.description=Adiciona página com relatórios de uso das mensagens.
|
||||
settings.enablestatistics=Ativar "Estatísticas"
|
||||
settings.forcessl.description=Mostrar conversas apenas através de uma conexão https
|
||||
settings.forcessl=Obriga que todas as conversas sejam em ambiente seguro
|
||||
settings.frequencychat.description=Especifique o intervalo de sondagem em segundos. O padrão é 2 segundos.
|
||||
settings.frequencychat=Tempo de atualização da conversa
|
||||
settings.frequencyoldchat.description=Navegadores antigos precisam atualizar a página inteira para receber mensagens. O padrão é de 7 segundos.
|
||||
settings.frequencyoldchat=Tempo de atualização da página para navegadores antigos
|
||||
settings.frequencyoperator.description=Especifique o intervalo de sondagem em segundos. O padrão é 2 segundos.
|
||||
settings.frequencyoperator=Tempo de atualização do console do operador
|
||||
settings.geolink.description=Endereço de Ip, abre em uma nova janela.
|
||||
settings.geolink=Link externo para localização de IP
|
||||
settings.geolinkparams.description=Tamanho da janela e barra de ferramentas
|
||||
settings.geolinkparams=Opções da janela de localização de IP
|
||||
settings.host.description=Descrição
|
||||
settings.host=URL de seu site
|
||||
settings.leavemessage_captcha.description=Proteção contra spam automatizado (captcha)
|
||||
settings.leavemessage_captcha=Obriga o visitante a inserir um código de verificação quando deixar mensagem
|
||||
settings.logo.description=Endereço do seu logo tipo
|
||||
settings.logo=Seu Logotipo
|
||||
settings.no.title=Nome da empresa
|
||||
settings.onehostconnections.description=0 Sem quantidades de conexões
|
||||
settings.onehostconnections= número máximo de chamadas a partir de um endereço
|
||||
settings.onlinetimeout.description=Defina quantos mostrar operador como online. O padrão é 30 segundos.
|
||||
settings.onlinetimeout=Limite de tempo on-line do operador
|
||||
settings.popup_notification.description=Diálogos curtos parecem atrair sua atenção.
|
||||
settings.popup_notification=Ativar "Notificação de diálogo pop-up do novo visitante".
|
||||
settings.saved=Alterações gravadas
|
||||
settings.sendmessagekey=Enviar mensagem como:
|
||||
settings.show_online_operators.description=É possível diminuir a taxa de atualização da lista
|
||||
settings.show_online_operators=Mostrar operadores on-line na página de "Lista de espera de visitantes"
|
||||
settings.survey.askgroup.description=Mostrar / ocultar campo de seleção de departamento na pesquisa
|
||||
settings.survey.askgroup=Permite ao visitante escolher departamento / grupo
|
||||
settings.survey.askmail.description=Mostrar / ocultar campo email na pesquisa
|
||||
settings.survey.askmail=Pergunte o e-mail do visitante
|
||||
settings.survey.askmessage.description=Mostrar/ocultar campo pergunta inicial da pesquisa
|
||||
settings.survey.askmessage=Mostrar campo pergunta inicial
|
||||
settings.title=Opções do Messenger
|
||||
settings.usercanchangename.description=Desligue para esconder o box de edição da janela de chat
|
||||
settings.usercanchangename=Permite que os visitantes editem seus nomes
|
||||
settings.usernamepattern.description=Como mostrar o nome do visitante {name}, {id} ou {addr}. Padrão: {name}
|
||||
settings.usernamepattern=Apresentação do nome do visitante
|
||||
settings.wrong.email=Digite um e-mail válido
|
||||
settings.wrong.onehostconnections=O Campo "Número máximo de tópicos" deve ser númérico
|
||||
site.title=mibew.org
|
||||
site.url=http://mibew.org
|
||||
statistics.dates=Filtro por Data
|
||||
@ -382,11 +481,14 @@ statistics.till=Até:
|
||||
statistics.title=Estatísticas
|
||||
statistics.wrong.dates=Você selecionou um periodo de datas
|
||||
tag.pagination.info=Página {0} de {1}, {2}-{3} até {4}
|
||||
tag.pagination.next=Próximo
|
||||
tag.pagination.no_items.elements=Nenhum elemento
|
||||
tag.pagination.no_items=Encontrado 0 elemento(s)
|
||||
tag.pagination.previous=Anterior
|
||||
thread.back_to_search=Procurar
|
||||
thread.chat_log=Log do chat
|
||||
thread.intro=Está página mostra todos os chats.
|
||||
time.dateformat=%d %B, %Y
|
||||
time.locale=pt_BR
|
||||
time.never=Nunca
|
||||
time.timeformat=%H:%M
|
||||
@ -394,6 +496,7 @@ time.today.at=Hoje às
|
||||
time.yesterday.at=Ontem às
|
||||
topMenu.admin=Administração
|
||||
topMenu.logoff=Sair
|
||||
topMenu.main=Principal
|
||||
topMenu.users.nomenu=Ocultar Menu
|
||||
topMenu.users=Visitantes
|
||||
translate.direction=Direção:
|
||||
@ -409,7 +512,7 @@ typing.remote=Usuário remoto está digitando...
|
||||
updates.current=Você está usando:
|
||||
updates.env=Ambiente:
|
||||
updates.installed_locales=Idiomas Instalados:
|
||||
updates.intro=Informações das: Atualizações e Instalações.
|
||||
updates.intro=Atualizações.
|
||||
updates.latest=Ultima Versão:
|
||||
updates.news=Novos:
|
||||
updates.news=Notícias:
|
||||
updates.title=Atualizações
|
||||
|
@ -149,6 +149,10 @@ form.field.groupdesc=
|
||||
form.field.groupemail.description=Адрес для извещений. Оставьте пустым, чтобы использовать глобальный адрес.
|
||||
form.field.groupname.description=Может быть названием отдела в вашей компании.
|
||||
form.field.groupname=Название группы
|
||||
form.field.jabber.description=Äëÿ áûñòðîãî ïîëó÷åíèÿ óâåäîìëåíèé
|
||||
form.field.jabber=Jabber ID
|
||||
form.field.jabbernotify.description=äîñòàâèòü ÷åðåç Jabber (ìîìåíòàëüíî)
|
||||
form.field.jabbernotify=Óâåäîìëåíèÿ î íîâîì ïîñåòèòåëå
|
||||
form.field.login.description=Логин может состоять из маленьких латинских букв и знака подчеркивания.
|
||||
form.field.login=Логин
|
||||
form.field.mail.description=Для уведомлений и восстановления пароля.
|
||||
@ -232,6 +236,8 @@ menu.groups=
|
||||
menu.locale.content=Выбрать язык системы.
|
||||
menu.locale=Язык
|
||||
menu.main=Главная
|
||||
menu.notifications.content=Èñòîðèÿ âñåõ îòïðàâëåííûõ óâåäîìëåíèé.
|
||||
menu.notifications=Óâåäîìëåíèÿ
|
||||
menu.operator=Вы {0}
|
||||
menu.profile.content=На этой странице вы можете отредактировать свою персональную информацию.
|
||||
menu.profile=Профиль
|
||||
@ -240,6 +246,22 @@ menu.updates.content=
|
||||
menu.updates=Обновления
|
||||
my_settings.error.password_match=Введенные пароли должны совпадать
|
||||
no_such_operator=Запрашиваемая учетная запись не существует
|
||||
notification.back_to_list=Âåðíóòüñÿ ê ñïèñêó
|
||||
notification.intro=Ñîäåðæàíèå îòïðàâëåííîãî óâåäîìëåíèÿ.
|
||||
notification.label.subj=Òåìà
|
||||
notification.label.time=Âðåìÿ îòïðàâêè
|
||||
notification.label.to=Êîìó
|
||||
notification.title=Äåòàëè óâåäîìëåíèÿ
|
||||
notifications.head.msg=Òåêñò
|
||||
notifications.head.subj=Òåìà
|
||||
notifications.head.time=Âðåìÿ
|
||||
notifications.head.to=Àäðåñàò
|
||||
notifications.kind.all=-âñå-
|
||||
notifications.kind.mail=Ýëåêòðîííàÿ ïî÷òà
|
||||
notifications.kind.xmpp=XMPP/Jabber
|
||||
notifications.kind=Òèï óâåäîìëåíèÿ
|
||||
notifications.locale.all=-âñå-
|
||||
notifications.locale=ßçûê
|
||||
operator.group.no_description=<без описания>
|
||||
operator.groups.intro=Группы в которых состоит оператор.
|
||||
operator.groups.title=Группы
|
||||
@ -283,6 +305,8 @@ page.groups.isaway=Away
|
||||
page.groups.isonline=Доступна
|
||||
page.groups.new=Добавить группу...
|
||||
page.groups.title=Группы
|
||||
page.notifications.intro= ýòîì ñïèñêå âû íàéäåòå âñå óâåäîìëåíèÿ, îòïðàâëåííûå ìåññåíäæåðîì, âêëþ÷àÿ ïèñüìà è ìãíîâåííûå ñîîáùåíèÿ (Jabber).
|
||||
page.notifications.title=Èñòîðèÿ Óâåäîìëåíèé
|
||||
page.preview.agentchat=Окно чата (со стороны оператора)
|
||||
page.preview.agentrochat=Окно просмотра чата (для оператора)
|
||||
page.preview.chatsimple=Simple chat window, refresh to post messages (IE 5, Opera 7)
|
||||
@ -426,6 +450,8 @@ settings.enableban.description=
|
||||
settings.enableban=Включить функцию "Нежелательные посетители"
|
||||
settings.enablegroups.description=Позволяет объединять операторов в группы и организовывать для них отдельные очереди.
|
||||
settings.enablegroups=Включить функцию "Группы"
|
||||
settings.enablejabber.description=Ìîìåíòàëüíûå óâåäîìëåíèÿ î íîâîì ïîñåòèòåëå (òðåáóåò îòäåëüíîé ïðîãðàììû <a href="http://mibew.org/download.php">Mibew Jabber</a>)
|
||||
settings.enablejabber=Âêëþ÷èòü ôóíêöèþ "Jabber óâåäîìëåíèÿ"
|
||||
settings.enablepresurvey.description=Предлагает посетителю заполнить специальную форму перед началом чата.
|
||||
settings.enablepresurvey=Включить "Опрос перед началом диалога"
|
||||
settings.enablessl.description=Ваш сервер должен быть настроен для обработки https запросов.
|
||||
|
0
src/messenger/webim/operator/avatar.php
Normal file → Executable file
@ -118,4 +118,4 @@ prepare_menu($operator, false);
|
||||
start_html_output();
|
||||
require('../view/ban.php');
|
||||
exit;
|
||||
?>
|
||||
?>
|
||||
|
@ -60,4 +60,4 @@ start_html_output();
|
||||
|
||||
require('../view/blocked_visitors.php');
|
||||
exit;
|
||||
?>
|
||||
?>
|
||||
|
@ -26,7 +26,7 @@ $page = array('agentId' => '');
|
||||
$errors = array();
|
||||
|
||||
$options = array(
|
||||
'enableban', 'usercanchangename', 'enablegroups', 'enablestatistics',
|
||||
'enableban', 'usercanchangename', 'enablegroups', 'enablestatistics', 'enablejabber',
|
||||
'enablessl', 'forcessl',
|
||||
'enablepresurvey', 'surveyaskmail', 'surveyaskgroup', 'surveyaskmessage',
|
||||
'enablepopupnotification', 'showonlineoperators',
|
||||
|
@ -72,6 +72,7 @@ $page['formsecure'] = $forcesecure;
|
||||
$page['formmodsecurity'] = $modsecurity;
|
||||
|
||||
prepare_menu($operator);
|
||||
setup_getcode_tabs(0);
|
||||
start_html_output();
|
||||
require('../view/gen_button.php');
|
||||
require('../view/getcode_image.php');
|
||||
?>
|
62
src/messenger/webim/operator/gettextcode.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2005-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
require_once('../libs/common.php');
|
||||
require_once('../libs/operator.php');
|
||||
require_once('../libs/groups.php');
|
||||
require_once('../libs/getcode.php');
|
||||
|
||||
$operator = check_login();
|
||||
loadsettings();
|
||||
|
||||
$stylelist = get_style_list("../styles");
|
||||
$style = verifyparam("style", "/^\w*$/", "");
|
||||
if ($style && !in_array($style, $stylelist)) {
|
||||
$style = "";
|
||||
}
|
||||
|
||||
$groupid = verifyparam_groupid("group");
|
||||
$showhost = verifyparam("hostname", "/^on$/", "") == "on";
|
||||
$forcesecure = verifyparam("secure", "/^on$/", "") == "on";
|
||||
$modsecurity = verifyparam("modsecurity", "/^on$/", "") == "on";
|
||||
|
||||
$allLocales = get_available_locales();
|
||||
|
||||
$lang = verifyparam("lang", "/^[\w-]{2,5}$/", "");
|
||||
if (!$lang || !in_array($lang, $allLocales))
|
||||
$lang = in_array($current_locale, $allLocales) ? $current_locale : $allLocales[0];
|
||||
|
||||
$message = "Click to chat"; // TODO
|
||||
|
||||
$page = array();
|
||||
$page['buttonCode'] = generate_button("", $lang, $style, $groupid, $message, $showhost, $forcesecure, $modsecurity);
|
||||
$page['availableLocales'] = $allLocales;
|
||||
$page['availableStyles'] = $stylelist;
|
||||
$page['groups'] = get_groups_list();
|
||||
|
||||
$page['formgroup'] = $groupid;
|
||||
$page['formstyle'] = $style;
|
||||
$page['formlang'] = $lang;
|
||||
$page['formhostname'] = $showhost;
|
||||
$page['formsecure'] = $forcesecure;
|
||||
$page['formmodsecurity'] = $modsecurity;
|
||||
|
||||
prepare_menu($operator);
|
||||
setup_getcode_tabs(1);
|
||||
start_html_output();
|
||||
require('../view/getcode_text.php');
|
||||
?>
|
@ -89,4 +89,4 @@ prepare_menu($operator);
|
||||
setup_group_settings_tabs($groupid, 1);
|
||||
start_html_output();
|
||||
require('../view/groupmembers.php');
|
||||
?>
|
||||
?>
|
||||
|
@ -65,4 +65,4 @@ $page['canmodify'] = is_capable($can_administrate, $operator);
|
||||
prepare_menu($operator);
|
||||
start_html_output();
|
||||
require('../view/groups.php');
|
||||
?>
|
||||
?>
|
||||
|
46
src/messenger/webim/operator/notification.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2005-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
require_once('../libs/common.php');
|
||||
require_once('../libs/operator.php');
|
||||
require_once('../libs/chat.php');
|
||||
|
||||
$operator = check_login();
|
||||
|
||||
$page = array();
|
||||
|
||||
setlocale(LC_TIME, getstring("time.locale"));
|
||||
|
||||
function notification_info($id)
|
||||
{
|
||||
global $mysqlprefix;
|
||||
$link = connect();
|
||||
$notification = select_one_row(db_build_select(
|
||||
"id, locale, vckind, vcto, unix_timestamp(dtmcreated) as created, vcsubject, tmessage, refoperator", "${mysqlprefix}chatnotification",
|
||||
array("id = $id"), ""), $link);
|
||||
mysql_close($link);
|
||||
return $notification;
|
||||
}
|
||||
|
||||
|
||||
$notificationid = verifyparam("id", "/^(\d{1,9})$/");
|
||||
$page['notification'] = notification_info($notificationid);
|
||||
|
||||
prepare_menu($operator, false);
|
||||
start_html_output();
|
||||
require('../view/notification.php');
|
||||
?>
|
79
src/messenger/webim/operator/notifications.php
Normal file
@ -0,0 +1,79 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2005-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
require_once('../libs/common.php');
|
||||
require_once('../libs/chat.php');
|
||||
require_once('../libs/operator.php');
|
||||
require_once('../libs/pagination.php');
|
||||
|
||||
$operator = check_login();
|
||||
|
||||
$page = array();
|
||||
$errors = array();
|
||||
|
||||
if (!is_capable($can_administrate, $operator)) {
|
||||
die("Permission denied.");
|
||||
}
|
||||
|
||||
setlocale(LC_TIME, getstring("time.locale"));
|
||||
|
||||
# locales
|
||||
|
||||
$all_locales = get_available_locales();
|
||||
$locales_with_label = array(array('id' => '', 'name' => getlocal("notifications.locale.all")));
|
||||
foreach ($all_locales as $id) {
|
||||
$locales_with_label[] = array('id' => $id, 'name' => getlocal_($id, "names"));
|
||||
}
|
||||
$page['locales'] = $locales_with_label;
|
||||
|
||||
$lang = verifyparam("lang", "/^([\w-]{2,5})?$/", "");
|
||||
if ($lang && !in_array($lang, $all_locales)) {
|
||||
$lang = "";
|
||||
}
|
||||
|
||||
# kind
|
||||
|
||||
$kind = verifyparam("kind", "/^(mail|xmpp)?$/", "");
|
||||
$page['allkinds'] = array('', 'mail', 'xmpp');
|
||||
|
||||
# fetch
|
||||
|
||||
$conditions = array();
|
||||
if ($kind) {
|
||||
$conditions[] = "vckind = '$kind'";
|
||||
}
|
||||
if ($lang) {
|
||||
$conditions[] = "locale = '$lang'";
|
||||
}
|
||||
|
||||
$link = connect();
|
||||
select_with_pagintation(
|
||||
"id, locale, vckind, vcto, unix_timestamp(dtmcreated) as created, vcsubject, tmessage, refoperator", "${mysqlprefix}chatnotification",
|
||||
$conditions,
|
||||
"order by created desc", "", $link);
|
||||
|
||||
mysql_close($link);
|
||||
|
||||
$page['formlang'] = $lang;
|
||||
$page['formkind'] = $kind;
|
||||
|
||||
prepare_menu($operator);
|
||||
start_html_output();
|
||||
|
||||
require('../view/notifications.php');
|
||||
exit;
|
||||
?>
|
@ -26,14 +26,17 @@ $page = array('opid' => '');
|
||||
$errors = array();
|
||||
$opId = '';
|
||||
|
||||
loadsettings();
|
||||
if (isset($_POST['login']) && isset($_POST['password'])) {
|
||||
$opId = verifyparam("opid", "/^(\d{1,9})?$/", "");
|
||||
$login = getparam('login');
|
||||
$email = getparam('email');
|
||||
$jabber = getparam('jabber');
|
||||
$password = getparam('password');
|
||||
$passwordConfirm = getparam('passwordConfirm');
|
||||
$localname = getparam('name');
|
||||
$commonname = getparam('commonname');
|
||||
$jabbernotify = verifyparam("jabbernotify", "/^on$/", "") == "on";
|
||||
|
||||
if (!$localname)
|
||||
$errors[] = no_field("form.field.agent_name");
|
||||
@ -50,6 +53,17 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
|
||||
if ($email != '' && !is_valid_email($email))
|
||||
$errors[] = wrong_field("form.field.mail");
|
||||
|
||||
if ($jabber != '' && !is_valid_email($jabber))
|
||||
$errors[] = wrong_field("form.field.jabber");
|
||||
|
||||
if ($jabbernotify && $jabber == '') {
|
||||
if ($settings['enablejabber'] == "1") {
|
||||
$errors[] = no_field("form.field.jabber");
|
||||
} else {
|
||||
$jabbernotify = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$opId && !$password)
|
||||
$errors[] = no_field("form.field.password");
|
||||
|
||||
@ -69,11 +83,11 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
|
||||
|
||||
if (count($errors) == 0) {
|
||||
if (!$opId) {
|
||||
$newop = create_operator($login, $email, $password, $localname, $commonname, "");
|
||||
$newop = create_operator($login, $email, $jabber, $password, $localname, $commonname, $jabbernotify ? 1 : 0, "");
|
||||
header("Location: $webimroot/operator/avatar.php?op=" . $newop['operatorid']);
|
||||
exit;
|
||||
} else {
|
||||
update_operator($opId, $login, $email, $password, $localname, $commonname);
|
||||
update_operator($opId, $login, $email, $jabber, $password, $localname, $commonname, $jabbernotify ? 1 : 0);
|
||||
// update the session password
|
||||
if (!empty($password) && $opId == $operator['operatorid']) {
|
||||
$toDashboard = $operator['vcpassword'] == md5('') && $password != '';
|
||||
@ -90,6 +104,8 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
|
||||
$page['formlogin'] = topage($login);
|
||||
$page['formname'] = topage($localname);
|
||||
$page['formemail'] = topage($email);
|
||||
$page['formjabber'] = topage($jabber);
|
||||
$page['formjabbernotify'] = $jabbernotify;
|
||||
$page['formcommonname'] = topage($commonname);
|
||||
$page['opid'] = topage($opId);
|
||||
}
|
||||
@ -105,6 +121,8 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
|
||||
$page['formlogin'] = topage($op['vclogin']);
|
||||
$page['formname'] = topage($op['vclocalename']);
|
||||
$page['formemail'] = topage($op['vcemail']);
|
||||
$page['formjabber'] = topage($op['vcjabbername']);
|
||||
$page['formjabbernotify'] = $op['inotify'] != 0;
|
||||
$page['formcommonname'] = topage($op['vccommonname']);
|
||||
$page['opid'] = topage($op['operatorid']);
|
||||
}
|
||||
@ -119,6 +137,7 @@ $canmodify = ($opId == $operator['operatorid'] && is_capable($can_modifyprofile,
|
||||
|
||||
$page['stored'] = isset($_GET['stored']);
|
||||
$page['canmodify'] = $canmodify ? "1" : "";
|
||||
$page['showjabber'] = $settings['enablejabber'] == "1";
|
||||
$page['needChangePassword'] = $operator['vcpassword'] == md5('');
|
||||
|
||||
prepare_menu($operator);
|
||||
|
@ -83,4 +83,4 @@ prepare_menu($operator);
|
||||
setup_operator_settings_tabs($opId, 2);
|
||||
start_html_output();
|
||||
require('../view/operator_groups.php');
|
||||
?>
|
||||
?>
|
||||
|
0
src/messenger/webim/operator/permissions.php
Normal file → Executable file
@ -65,4 +65,4 @@ $page['token'] = $token;
|
||||
$page['isdone'] = false;
|
||||
start_html_output();
|
||||
require('../view/resetpwd.php');
|
||||
?>
|
||||
?>
|
||||
|
@ -60,4 +60,4 @@ $page['localeLinks'] = get_locale_links("$webimroot/operator/restore.php");
|
||||
$page['isdone'] = false;
|
||||
start_html_output();
|
||||
require('../view/restore.php');
|
||||
?>
|
||||
?>
|
||||
|
@ -51,4 +51,4 @@ if (isset($_GET['threadid'])) {
|
||||
prepare_menu($operator, false);
|
||||
start_html_output();
|
||||
require('../view/thread_log.php');
|
||||
?>
|
||||
?>
|
||||
|
@ -187,4 +187,4 @@ echo '</update>';
|
||||
notify_operator_alive($operator['operatorid'], $status);
|
||||
exit;
|
||||
|
||||
?>
|
||||
?>
|
||||
|
@ -64,4 +64,4 @@ prepare_menu($operator);
|
||||
setup_pagination($found, 6);
|
||||
start_html_output();
|
||||
require('../view/userhistory.php');
|
||||
?>
|
||||
?>
|
||||
|
@ -48,6 +48,10 @@ require_once('inc_errors.php');
|
||||
<form name="agentForm" method="post" action="<?php echo $webimroot ?>/operator/operator.php">
|
||||
<?php print_csrf_token_input() ?>
|
||||
<input type="hidden" name="opid" value="<?php echo $page['opid'] ?>"/>
|
||||
<?php if(!$page['showjabber']) { ?>
|
||||
<input type="hidden" name="jabber" value="<?php echo form_value('jabber') ?>"/>
|
||||
<?php if(form_value_cb('jabbernotify')) { ?><input type="hidden" name="jabbernotify" value="on"/><?php } ?>
|
||||
<?php } ?>
|
||||
<div>
|
||||
<?php if(!$page['needChangePassword']) { print_tabbar(); } ?>
|
||||
<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner">
|
||||
@ -107,6 +111,26 @@ require_once('inc_errors.php');
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
|
||||
<?php if($page['showjabber']) { ?>
|
||||
<div class="field">
|
||||
<div class="flabel"><?php echo getlocal('form.field.jabber') ?></div>
|
||||
<div class="fvalue">
|
||||
<input type="text" name="jabber" size="40" value="<?php echo form_value('jabber') ?>" class="formauth"<?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/>
|
||||
</div>
|
||||
<div class="fdescr"> — <?php echo getlocal('form.field.jabber.description') ?></div>
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
|
||||
<div class="field" style="padding-top:0.3em;">
|
||||
<div class="flabel"><?php echo getlocal('form.field.jabbernotify') ?></div>
|
||||
<div class="fvalue">
|
||||
<input type="checkbox" name="jabbernotify" value="on"<?php echo form_value_cb('jabbernotify') ? " checked=\"checked\"" : "" ?><?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/>
|
||||
</div>
|
||||
<div class="fdescr"> — <?php echo getlocal('form.field.jabbernotify.description') ?></div>
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if($page['canmodify']) { ?>
|
||||
<div class="fbutton">
|
||||
<input type="image" name="save" value="" src='<?php echo $webimroot.getlocal("image.button.save") ?>' alt='<?php echo getlocal("button.save") ?>'/>
|
||||
|
@ -121,6 +121,15 @@ require_once('inc_errors.php');
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<div class="flabel"><?php echo getlocal('settings.enablejabber') ?></div>
|
||||
<div class="fvalue">
|
||||
<input type="checkbox" name="enablejabber" value="on"<?php echo form_value_cb('enablejabber') ? " checked=\"checked\"" : "" ?><?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/>
|
||||
</div>
|
||||
<div class="fdescr"> — <?php echo getlocal('settings.enablejabber.description') ?></div>
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<div class="flabel"><?php echo getlocal('settings.enableban') ?></div>
|
||||
<div class="fvalue">
|
||||
|
@ -16,6 +16,8 @@
|
||||
*/
|
||||
|
||||
require_once("inc_menu.php");
|
||||
require_once("inc_tabbar.php");
|
||||
|
||||
$page['title'] = getlocal("page.gen_button.title");
|
||||
$page['menuid'] = "getcode";
|
||||
|
||||
@ -30,9 +32,12 @@ require_once('inc_errors.php');
|
||||
?>
|
||||
|
||||
<form name="buttonCodeForm" method="get" action="<?php echo $webimroot ?>/operator/getcode.php">
|
||||
<div>
|
||||
<?php print_tabbar(); ?>
|
||||
<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner">
|
||||
|
||||
<div class="fieldForm">
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_locale") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
@ -40,14 +45,6 @@ require_once('inc_errors.php');
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_image") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<select name="i" onchange="this.form.submit();"><?php foreach($page['availableImages'] as $k) { echo "<option value=\"".$k."\"".($k == form_value("image") ? " selected=\"selected\"" : "").">".$k."</option>"; } ?></select>
|
||||
</div>
|
||||
</div>
|
||||
<br clear="all"/>
|
||||
|
||||
<?php if($page['showgroups']) { ?>
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_group") ?></div>
|
||||
@ -56,6 +53,14 @@ require_once('inc_errors.php');
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<br clear="all"/>
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_image") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<select name="i" onchange="this.form.submit();"><?php foreach($page['availableImages'] as $k) { echo "<option value=\"".$k."\"".($k == form_value("image") ? " selected=\"selected\"" : "").">".$k."</option>"; } ?></select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_style") ?></div>
|
||||
@ -108,6 +113,7 @@ require_once('inc_errors.php');
|
||||
</div>
|
||||
|
||||
</div><div class="formbottom"><div class="formbottomi"></div></div></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php
|
116
src/messenger/webim/view/getcode_text.php
Normal file
@ -0,0 +1,116 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2005-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
require_once("inc_menu.php");
|
||||
require_once("inc_tabbar.php");
|
||||
|
||||
$page['title'] = getlocal("page.gen_button.title");
|
||||
$page['menuid'] = "getcode";
|
||||
|
||||
function tpl_content() { global $page, $webimroot, $errors;
|
||||
?>
|
||||
|
||||
<?php echo getlocal("page.gen_button.intro") ?>
|
||||
<br />
|
||||
<br />
|
||||
<?php
|
||||
require_once('inc_errors.php');
|
||||
?>
|
||||
|
||||
<form name="buttonCodeForm" method="get" action="<?php echo $webimroot ?>/operator/gettextcode.php">
|
||||
<div>
|
||||
<?php print_tabbar(); ?>
|
||||
<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner">
|
||||
|
||||
<div class="fieldForm">
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_locale") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<select name="lang" onchange="this.form.submit();"><?php foreach($page['availableLocales'] as $k) { echo "<option value=\"".$k."\"".($k == form_value("lang") ? " selected=\"selected\"" : "").">".$k."</option>"; } ?></select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($page['showgroups']) { ?>
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_group") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<select name="group" onchange="this.form.submit();"><?php foreach($page['groups'] as $k) { echo "<option value=\"".$k['groupid']."\"".($k['groupid'] == form_value("group") ? " selected=\"selected\"" : "").">".$k['vclocalname']."</option>"; } ?></select>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<br clear="all"/>
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.choose_style") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<select name="style" onchange="this.form.submit();"><?php foreach($page['availableStyles'] as $k => $v) { echo "<option value=\"".$k."\"".($k == form_value("style") ? " selected=\"selected\"" : "").">".$v."</option>"; } ?></select>
|
||||
</div>
|
||||
</div>
|
||||
<br clear="all"/>
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.include_site_name") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<input type="checkbox" name="hostname" value="on"<?php echo form_value_cb('hostname') ? " checked=\"checked\"" : "" ?> onchange="this.form.submit();"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if( $page['formhostname'] ) { ?>
|
||||
|
||||
<div class="fieldinrow">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.secure_links") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<input type="checkbox" name="secure" value="on"<?php echo form_value_cb('secure') ? " checked=\"checked\"" : "" ?> onchange="this.form.submit();"/>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<br clear="all"/>
|
||||
|
||||
<div class="field">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.modsecurity") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<input type="checkbox" name="modsecurity" value="on"<?php echo form_value_cb('modsecurity') ? " checked=\"checked\"" : "" ?> onchange="this.form.submit();"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.code") ?></div>
|
||||
<div class="fvaluewithta" dir="ltr">
|
||||
<textarea cols="44" rows="15"><?php echo htmlspecialchars($page['buttonCode']) ?></textarea>
|
||||
</div>
|
||||
<div class="fdescr"><?php echo getlocal("page.gen_button.code.description") ?></div>
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<div class="flabel"><?php echo getlocal("page.gen_button.sample") ?></div>
|
||||
<div class="fvaluenodesc">
|
||||
<?php echo $page['buttonCode'] ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><div class="formbottom"><div class="formbottomi"></div></div></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
} /* content */
|
||||
|
||||
require_once('inc_main.php');
|
||||
?>
|
@ -83,7 +83,7 @@ $isrtl = getlocal("localedirection") == 'rtl';
|
||||
<div class="empty_inner" style=""> </div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<p id="legal"><a href="http://mibew.org/" target="_blank" class="flink">Mibew Messenger</a> <?php echo $version ?> | (c) 2011 mibew.org</p>
|
||||
<p id="legal"><a href="http://mibew.org/" target="_blank" class="flink">Mibew Messenger</a> <?php echo $version ?> | (c) 2011-2013 mibew.org</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -58,6 +58,7 @@ function tpl_menu() { global $page, $webimroot, $errors;
|
||||
<li<?php menuli("settings")?>><a href='<?php echo $webimroot ?>/operator/settings.php'><?php echo getlocal('leftMenu.client_settings') ?></a></li>
|
||||
<li<?php menuli("translate")?>><a href='<?php echo $webimroot ?>/operator/translate.php'><?php echo getlocal('menu.translate') ?></a></li>
|
||||
<li<?php menuli("updates")?>><a href='<?php echo $webimroot ?>/operator/updates.php'><?php echo getlocal('menu.updates') ?></a></li>
|
||||
<li<?php menuli("notifications")?>><a href='<?php echo $webimroot ?>/operator/notifications.php'><?php echo getlocal('menu.notifications') ?></a></li>
|
||||
<?php } ?>
|
||||
<?php if(isset($page['currentopid']) && $page['currentopid']) {?>
|
||||
<li<?php menuli("profile")?>><a href='<?php echo $webimroot ?>/operator/operator.php?op=<?php echo $page['currentopid'] ?>'><?php echo getlocal('menu.profile') ?></a></li>
|
||||
|
@ -15,18 +15,38 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
function print_tabbar() {
|
||||
function print_tabbar($maxwidth = 4) {
|
||||
global $page;
|
||||
|
||||
if($page['tabs']) { ?>
|
||||
<ul class="tabs">
|
||||
|
||||
<?php foreach($page['tabs'] as $k => $v) { if($v) { ?>
|
||||
<li><a href="<?php echo $v ?>"><?php echo $k ?></a></li>
|
||||
<?php } else { ?>
|
||||
<li class="active"><a href="#"><?php echo $k ?></a></li><?php }} ?>
|
||||
</ul>
|
||||
<?php }
|
||||
|
||||
if($page['tabs']) {
|
||||
$tabbar = $page['tabs'];
|
||||
$len = count($tabbar);
|
||||
$selected = $page['tabselected'];
|
||||
$tabbar2 = array();
|
||||
for($i = 0; $i < $len; $i++) {
|
||||
$tabbar2[] = $i != $selected
|
||||
? "<li><a href=\"".$tabbar[$i]['link']."\">".$tabbar[$i]['title']."</a></li>\n"
|
||||
: "<li class=\"active\"><a href=\"#\">".$tabbar[$i]['title']."</a></li>\n";
|
||||
}
|
||||
|
||||
if($len > $maxwidth) { // && $len - $selected > $maxwidth
|
||||
if($selected < $maxwidth) {
|
||||
$tabbar = array_splice($tabbar2, 0, $maxwidth);
|
||||
array_splice($tabbar2, count($tabbar2),0, $tabbar);
|
||||
} // else 3 rows menu
|
||||
}
|
||||
|
||||
echo "<ul class=\"tabs\">\n";
|
||||
$i = 0;
|
||||
foreach($tabbar2 as $v) {
|
||||
if($i > 0 && (($len-$i)%$maxwidth) == 0) {
|
||||
echo "</ul><br clear=\"all\"><ul class=\"tabs\">\n";
|
||||
}
|
||||
echo $v;
|
||||
$i++;
|
||||
}
|
||||
echo "</ul>";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -22,29 +22,23 @@ $page['fixedwrap'] = true;
|
||||
function tpl_content() { global $page, $webimroot, $errors;
|
||||
?>
|
||||
|
||||
<p>Mibew Messenger is distributed under the terms of the Eclipse Public License (or
|
||||
the General Public License, this means that you can choose one of two, and use it
|
||||
accordingly) with the following special exception.</p>
|
||||
<p>Copyright 2005-2013 the original author or authors.</p>
|
||||
|
||||
<br/>
|
||||
|
||||
<b>License exception:</b>
|
||||
<p>No one may remove, alter or hide any copyright notices or links to the community
|
||||
site ("http://mibew.org") contained within the Program. Any derivative work
|
||||
must include this license exception.</p>
|
||||
<p>Licensed under the <b>Apache License, Version 2.0</b> (the "License").</p>
|
||||
|
||||
<br/>
|
||||
|
||||
<p>Eclipse Public License:<br/>
|
||||
<a href="<?php echo $webimroot ?>/epl-v10.html">Local version</a> or <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
|
||||
</p>
|
||||
<p>You may obtain a copy of the License at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
|
||||
|
||||
<br/>
|
||||
|
||||
<p>
|
||||
General Public License:<br/>
|
||||
<a href="<?php echo $webimroot ?>/gpl-2.0.txt">Local version</a> or <a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>
|
||||
</p>
|
||||
<p>Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.</p>
|
||||
|
||||
<?php
|
||||
} /* content */
|
||||
|
@ -161,6 +161,14 @@ $menuItemsCount = 2;
|
||||
<?php echo getlocal('menu.updates.content') ?>
|
||||
</td>
|
||||
<?php menuseparator(); ?>
|
||||
|
||||
<td class="dashitem">
|
||||
<img src="<?php echo $webimroot ?>/images/dash/notifications.gif" alt=""/>
|
||||
<a href='<?php echo $webimroot ?>/operator/notifications.php'>
|
||||
<?php echo getlocal('menu.notifications') ?></a>
|
||||
<?php echo getlocal('menu.notifications.content') ?>
|
||||
</td>
|
||||
<?php menuseparator(); ?>
|
||||
<?php } ?>
|
||||
|
||||
<td class="dashitem">
|
||||
|
71
src/messenger/webim/view/notification.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2005-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
$page['title'] = getlocal("notification.title");
|
||||
|
||||
function tpl_content() { global $page, $webimroot, $errors;
|
||||
$notification = $page['notification'];
|
||||
?>
|
||||
|
||||
<?php echo getlocal("notification.intro") ?>
|
||||
|
||||
<br/><br/>
|
||||
|
||||
<div class="logpane">
|
||||
<div class="header">
|
||||
|
||||
<div class="wlabel">
|
||||
<?php echo getlocal("notification.label.to") ?>:
|
||||
</div>
|
||||
<div class="wvalue">
|
||||
<?php echo topage(htmlspecialchars($notification['vcto'])) ?>
|
||||
</div>
|
||||
<br clear="all"/>
|
||||
|
||||
<div class="wlabel">
|
||||
<?php echo getlocal("notification.label.time") ?>:
|
||||
</div>
|
||||
<div class="wvalue">
|
||||
<?php echo date_to_text($notification['created']) ?>
|
||||
</div>
|
||||
<br clear="all"/>
|
||||
|
||||
<div class="wlabel">
|
||||
<?php echo getlocal("notification.label.subj") ?>:
|
||||
</div>
|
||||
<div class="wvalue">
|
||||
<?php echo topage(htmlspecialchars($notification['vcsubject'])) ?>
|
||||
</div>
|
||||
<br clear="all"/>
|
||||
</div>
|
||||
|
||||
<div class="message">
|
||||
<?php echo topage(prepare_html_message(htmlspecialchars($notification['tmessage']))) ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<a href="<?php echo $webimroot ?>/operator/notifications.php">
|
||||
<?php echo getlocal("notification.back_to_list") ?></a>
|
||||
<br />
|
||||
|
||||
|
||||
<?php
|
||||
} /* content */
|
||||
|
||||
require_once('inc_main.php');
|
||||
?>
|
132
src/messenger/webim/view/notifications.php
Normal file
@ -0,0 +1,132 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2005-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
require_once("inc_menu.php");
|
||||
$page['title'] = getlocal("page.notifications.title");
|
||||
$page['menuid'] = "notifications";
|
||||
|
||||
function shorten($text,$len) {
|
||||
if(strlen($text) > $len)
|
||||
return substr($text,0,$len)."..";
|
||||
return $text;
|
||||
}
|
||||
|
||||
function tpl_header() { global $page, $webimroot;
|
||||
?>
|
||||
<script type="text/javascript" language="javascript" src="<?php echo $webimroot ?>/js/jquery-1.4.2.min.js"></script>
|
||||
<?php
|
||||
}
|
||||
|
||||
function tpl_content() { global $page, $webimroot, $errors;
|
||||
?>
|
||||
|
||||
<?php echo getlocal("page.notifications.intro") ?>
|
||||
<br />
|
||||
<br />
|
||||
<?php
|
||||
require_once('inc_errors.php');
|
||||
?>
|
||||
|
||||
<form name="notifyFilterForm" method="get" action="<?php echo $webimroot ?>/operator/notifications.php">
|
||||
|
||||
<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner">
|
||||
|
||||
<div class="packedFormField">
|
||||
<?php echo getlocal("notifications.kind") ?><br/>
|
||||
<select name="kind" onchange="this.form.submit();"><?php
|
||||
foreach($page['allkinds'] as $k) {
|
||||
echo "<option value=\"".$k."\"".($k == form_value("kind") ? " selected=\"selected\"" : "").">".getlocal("notifications.kind.".($k ? $k : "all"))."</option>";
|
||||
} ?></select>
|
||||
</div>
|
||||
|
||||
<div class="packedFormField">
|
||||
<?php echo getlocal("notifications.locale") ?><br/>
|
||||
<select name="lang" onchange="this.form.submit();"><?php
|
||||
foreach($page['locales'] as $k) {
|
||||
echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("lang") ? " selected=\"selected\"" : "").">".$k["name"]."</option>";
|
||||
} ?></select>
|
||||
</div>
|
||||
|
||||
<br clear="all"/>
|
||||
|
||||
</div><div class="formbottom"><div class="formbottomi"></div></div></div>
|
||||
</form>
|
||||
<br/>
|
||||
|
||||
<?php if( $page['pagination'] ) { ?>
|
||||
|
||||
<table class="list">
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>
|
||||
<?php echo getlocal("notifications.head.to") ?>
|
||||
</th><th>
|
||||
<?php echo getlocal("notifications.head.subj") ?>
|
||||
</th><th>
|
||||
<?php echo getlocal("notifications.head.msg") ?>
|
||||
</th><th>
|
||||
<?php echo getlocal("notifications.head.time") ?>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
if( $page['pagination.items'] ) {
|
||||
foreach( $page['pagination.items'] as $b ) { ?>
|
||||
<tr>
|
||||
<td class="notlast">
|
||||
<a href="<?php echo $webimroot ?>/operator/notification.php?id=<?php echo $b['id'] ?>" target="_blank" onclick="this.newWindow = window.open('<?php echo $webimroot ?>/operator/notification.php?id=<?php echo $b['id'] ?>', '', 'toolbar=0,scrollbars=1,location=0,status=1,menubar=0,width=720,height=520,resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;" class="<?php echo $b['vckind'] == 'xmpp' ? 'xmpp' : 'mail' ?>">
|
||||
<?php echo htmlspecialchars(shorten(topage($b['vcto']),30)) ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="notlast">
|
||||
<?php echo htmlspecialchars(shorten(topage($b['vcsubject']),30)) ?>
|
||||
</td>
|
||||
<td class="notlast">
|
||||
<?php echo htmlspecialchars(shorten(topage($b['tmessage']),30)) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo date_to_text($b['created']) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
} else {
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<?php echo getlocal("tag.pagination.no_items.elements") ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php
|
||||
if( $page['pagination.items'] ) {
|
||||
echo "<br/>";
|
||||
echo generate_pagination($page['pagination']);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
} /* content */
|
||||
|
||||
require_once('inc_main.php');
|
||||
?>
|