mirror of
https://github.com/Mibew/mibew.git
synced 2025-03-03 18:38:31 +03:00
Use english strings instead of keys for localization
This commit is contained in:
parent
c454ec6d98
commit
64c626ffdb
@ -325,7 +325,7 @@ function show_install_err($text)
|
||||
$page = array(
|
||||
'version' => MIBEW_VERSION,
|
||||
'localeLinks' => get_locale_links(),
|
||||
'title' => getlocal("install.err.title"),
|
||||
'title' => getlocal("Problem"),
|
||||
'no_right_menu' => true,
|
||||
'fixedwrap' => true,
|
||||
'errors' => array($text),
|
||||
|
@ -83,7 +83,7 @@ function check_mibewroot()
|
||||
return false;
|
||||
}
|
||||
|
||||
$page['done'][] = getlocal("install.0.app", array(MIBEW_WEB_ROOT));
|
||||
$page['done'][] = getlocal("Application path is {0}", array(MIBEW_WEB_ROOT));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -129,9 +129,9 @@ function check_files()
|
||||
$packageFile = MIBEW_FS_ROOT . "/install/package";
|
||||
$fp = @fopen($packageFile, "r");
|
||||
if ($fp === FALSE) {
|
||||
$errors[] = getlocal("install.cannot_read", array(MIBEW_WEB_ROOT . "/install/package"));
|
||||
$errors[] = getlocal("Cannot read file {0}", array(MIBEW_WEB_ROOT . "/install/package"));
|
||||
if (file_exists($packageFile)) {
|
||||
$errors[] = getlocal("install.check_permissions", array(fpermissions($packageFile)));
|
||||
$errors[] = getlocal("Insufficient file permissions {0}", array(fpermissions($packageFile)));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -150,10 +150,10 @@ function check_files()
|
||||
$relativeName = MIBEW_FS_ROOT . "/$file";
|
||||
if (!is_readable($relativeName)) {
|
||||
if (file_exists($relativeName)) {
|
||||
$errors[] = getlocal("install.cannot_read", array(MIBEW_WEB_ROOT . "/$file"));
|
||||
$errors[] = getlocal("install.check_permissions", array(fpermissions($relativeName)));
|
||||
$errors[] = getlocal("Cannot read file {0}", array(MIBEW_WEB_ROOT . "/$file"));
|
||||
$errors[] = getlocal("Insufficient file permissions {0}", array(fpermissions($relativeName)));
|
||||
} else {
|
||||
$errors[] = getlocal("install.no_file", array(MIBEW_WEB_ROOT . "/$file"));
|
||||
$errors[] = getlocal("File is absent: {0}", array(MIBEW_WEB_ROOT . "/$file"));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -164,14 +164,14 @@ function check_files()
|
||||
$result = md5(str_replace("\r", "", file_get_contents($relativeName)));
|
||||
}
|
||||
if ($result != $sum) {
|
||||
$errors[] = getlocal("install.bad_checksum", array(MIBEW_WEB_ROOT . "/$file"));
|
||||
$errors[] = getlocal("install.check_files");
|
||||
$errors[] = getlocal("Checksum differs for {0}", array(MIBEW_WEB_ROOT . "/$file"));
|
||||
$errors[] = getlocal("Please, re-upload files to the server.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$page['done'][] = getlocal("install.0.package");
|
||||
$page['done'][] = getlocal("Mibew package is valid.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -182,7 +182,7 @@ function check_connection()
|
||||
if ($link) {
|
||||
$result = mysql_query("SELECT VERSION() as c", $link);
|
||||
if ($result && $ver = mysql_fetch_array($result, MYSQL_ASSOC)) {
|
||||
$page['done'][] = getlocal("install.1.connected", array($ver['c']));
|
||||
$page['done'][] = getlocal("You are connected to MySQL server version {0}", array($ver['c']));
|
||||
mysql_free_result($result);
|
||||
} else {
|
||||
$errors[] = "Version of your SQL server is unknown. Please check. Error: " . mysql_error($link);
|
||||
@ -191,7 +191,7 @@ function check_connection()
|
||||
}
|
||||
return $link;
|
||||
} else {
|
||||
$errors[] = getlocal("install.connection.error", array(mysql_error()));
|
||||
$errors[] = getlocal("Could not connect. Please check server settings in config.php. Error: {0}", array(mysql_error()));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -200,13 +200,13 @@ function check_database($link)
|
||||
{
|
||||
global $mysqldb, $page;
|
||||
if (mysql_select_db($mysqldb, $link)) {
|
||||
$page['done'][] = getlocal("install.2.db_exists", array($mysqldb));
|
||||
$page['done'][] = getlocal("Database \"{0}\" is created.", array($mysqldb));
|
||||
mysql_query("SET character set utf8", $link);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
$page['nextstep'] = getlocal("install.2.create", array($mysqldb));
|
||||
$page['nextnotice'] = getlocal("install.2.notice");
|
||||
$page['nextstep'] = getlocal("Create database \"{0}\"", array($mysqldb));
|
||||
$page['nextnotice'] = getlocal("The database was not found on the server. If you have permissions to create it now, click on the following link.");
|
||||
$page['nextstepurl'] = MIBEW_WEB_ROOT . "/install/dbperform.php?act=createdb";
|
||||
}
|
||||
return false;
|
||||
@ -219,10 +219,10 @@ function check_tables($link)
|
||||
if ($curr_tables !== false) {
|
||||
$tocreate = array_diff(array_keys($dbtables), $curr_tables);
|
||||
if (count($tocreate) == 0) {
|
||||
$page['done'][] = getlocal("install.3.tables_exist");
|
||||
$page['done'][] = getlocal("Required tables are created.");
|
||||
return true;
|
||||
} else {
|
||||
$page['nextstep'] = getlocal("install.3.create");
|
||||
$page['nextstep'] = getlocal("Create required tables.");
|
||||
$page['nextstepurl'] = MIBEW_WEB_ROOT . "/install/dbperform.php?act=ct";
|
||||
}
|
||||
}
|
||||
@ -244,9 +244,9 @@ function check_columns($link)
|
||||
$cannot_update = array_diff($tocreate, $dbtables_can_update[$id]);
|
||||
if (count($cannot_update) != 0) {
|
||||
$errors[] = "Key columns are absent in table `$id'. Unable to continue installation.";
|
||||
$page['nextstep'] = getlocal("install.kill_tables");
|
||||
$page['nextstep'] = getlocal("Drop existing tables from database");
|
||||
$page['nextstepurl'] = MIBEW_WEB_ROOT . "/install/dbperform.php?act=dt";
|
||||
$page['nextnotice'] = getlocal("install.kill_tables.notice");
|
||||
$page['nextnotice'] = getlocal("Impossible to update tables structure. Try to do it manually or recreate all tables (warning: all your data will be lost).");
|
||||
return false;
|
||||
}
|
||||
$need_to_create_columns = true;
|
||||
@ -266,13 +266,13 @@ function check_columns($link)
|
||||
}
|
||||
|
||||
if ($need_to_create_columns || $need_to_create_indexes) {
|
||||
$page['nextstep'] = getlocal("install.4.create");
|
||||
$page['nextstep'] = getlocal("Update tables");
|
||||
$page['nextstepurl'] = MIBEW_WEB_ROOT . "/install/dbperform.php?act=addcolumns";
|
||||
$page['nextnotice'] = getlocal("install.4.notice");
|
||||
$page['nextnotice'] = getlocal("Structure of your tables should be adjusted for new version of Messenger.");
|
||||
return false;
|
||||
}
|
||||
|
||||
$page['done'][] = getlocal("install.4.done");
|
||||
$page['done'][] = getlocal("Tables structure is up to date.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -281,9 +281,9 @@ function check_sound()
|
||||
global $page;
|
||||
|
||||
$page['soundcheck'] = true;
|
||||
$page['done'][] = getlocal("install.5.text", array(
|
||||
"<a id='check-nv' href='javascript:void(0)'>" . getlocal("install.5.newvisitor") . "</a>",
|
||||
"<a id='check-nm' href='javascript:void(0)'>" . getlocal("install.5.newmessage") . "</a>"
|
||||
$page['done'][] = getlocal("Click to check the sound: {0} and {1}", array(
|
||||
"<a id='check-nv' href='javascript:void(0)'>" . getlocal("New Visitor") . "</a>",
|
||||
"<a id='check-nm' href='javascript:void(0)'>" . getlocal("New Message") . "</a>"
|
||||
));
|
||||
}
|
||||
|
||||
@ -434,7 +434,7 @@ function check_status()
|
||||
{
|
||||
global $page, $mysqlprefix;
|
||||
|
||||
$page['done'][] = getlocal("install.0.php", array(phpversion()));
|
||||
$page['done'][] = getlocal("PHP version {0}", array(phpversion()));
|
||||
|
||||
if (!check_mibewroot()) {
|
||||
return;
|
||||
@ -470,11 +470,11 @@ function check_status()
|
||||
|
||||
check_sound();
|
||||
|
||||
$page['done'][] = getlocal("installed.message");
|
||||
$page['done'][] = getlocal("<b>Application installed successfully.</b>");
|
||||
|
||||
if (!check_admin($link)) {
|
||||
$page['nextstep'] = getlocal("installed.login_link");
|
||||
$page['nextnotice'] = getlocal("installed.notice", array(MIBEW_WEB_ROOT . "/install/"));
|
||||
$page['nextstep'] = getlocal("Proceed to the login page");
|
||||
$page['nextnotice'] = getlocal("You can logon as <b>admin</b> with empty password.<br/><br/><span class=\"warning\">!!! For security reasons please change your password immediately and remove the {0} folder from your server.</span>", array(MIBEW_WEB_ROOT . "/install/"));
|
||||
$page['nextstepurl'] = MIBEW_WEB_ROOT . "/operator/login?login=admin";
|
||||
}
|
||||
|
||||
@ -493,7 +493,7 @@ function check_status()
|
||||
|
||||
check_status();
|
||||
|
||||
$page['title'] = getlocal("install.title");
|
||||
$page['title'] = getlocal("Installation");
|
||||
$page['fixedwrap'] = true;
|
||||
$page['errors'] = $errors;
|
||||
|
||||
|
@ -5,4 +5,4 @@
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(a,c,d){a.Views.CloseControl=a.Views.Control.extend({template:c.templates.chat_controls_close,events:d.extend({},a.Views.Control.prototype.events,{click:"closeThread"}),closeThread:function(){var b=a.Localization.get("chat.close.confirmation");(!1===b||confirm(b))&&this.model.closeThread()}})})(Mibew,Handlebars,_);
|
||||
(function(a,c,d){a.Views.CloseControl=a.Views.Control.extend({template:c.templates.chat_controls_close,events:d.extend({},a.Views.Control.prototype.events,{click:"closeThread"}),closeThread:function(){var b=a.Localization.get("Are you sure want to leave chat?");(!1===b||confirm(b))&&this.model.closeThread()}})})(Mibew,Handlebars,_);
|
||||
|
@ -6,5 +6,5 @@
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(c,e){var d=c.Models.BaseSurveyForm;c.Models.LeaveMessageForm=d.extend({defaults:e.extend({},d.prototype.defaults,{showCaptcha:!1,captcha:""}),validate:function(a){var b=c.Localization;if("undefined"!=typeof a.email){if(!a.email)return b.get("leavemessage.error.email.required");if(!c.Utils.checkEmail(a.email))return b.get("leavemessage.error.wrong.email")}if("undefined"!=typeof a.name&&!a.name)return b.get("leavemessage.error.name.required");if("undefined"!=typeof a.message&&!a.message)return b.get("leavemessage.error.message.required");
|
||||
if(this.get("showCaptcha")&&"undefined"!=typeof a.captcha&&!a.captcha)return b.get("errors.captcha")},submit:function(){if(!this.validate(this.attributes)){var a=this;c.Objects.server.callFunctions([{"function":"processLeaveMessage",arguments:{references:{},"return":{},groupId:a.get("groupId"),name:a.get("name"),info:a.get("info"),email:a.get("email"),message:a.get("message"),referrer:a.get("referrer"),captcha:a.get("captcha"),threadId:null,token:null}}],function(b){0==b.errorCode?a.trigger("submit:complete",
|
||||
if(this.get("showCaptcha")&&"undefined"!=typeof a.captcha&&!a.captcha)return b.get("The letters you typed don't match the letters that were shown in the picture.")},submit:function(){if(!this.validate(this.attributes)){var a=this;c.Objects.server.callFunctions([{"function":"processLeaveMessage",arguments:{references:{},"return":{},groupId:a.get("groupId"),name:a.get("name"),info:a.get("info"),email:a.get("email"),message:a.get("message"),referrer:a.get("referrer"),captcha:a.get("captcha"),threadId:null,token:null}}],function(b){0==b.errorCode?a.trigger("submit:complete",
|
||||
a):a.trigger("submit:error",a,{code:b.errorCode,message:b.errorMessage||""})},!0)}},ERROR_WRONG_CAPTCHA:10})})(Mibew,_);
|
||||
|
@ -5,6 +5,6 @@
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(b,e){var d=b.Models.BaseSurveyForm;b.Models.SurveyForm=d.extend({defaults:e.extend({},d.prototype.defaults,{showEmail:!1,showMessage:!1,canChangeName:!1}),validate:function(a){if(this.get("showEmail")&&"undefined"!=typeof a.email&&!b.Utils.checkEmail(a.email))return b.Localization.get("presurvey.error.wrong_email")},submit:function(){if(!this.validate(this.attributes)){var a=this;b.Objects.server.callFunctions([{"function":"processSurvey",arguments:{references:{},"return":{next:"next",options:"options"},
|
||||
(function(b,e){var d=b.Models.BaseSurveyForm;b.Models.SurveyForm=d.extend({defaults:e.extend({},d.prototype.defaults,{showEmail:!1,showMessage:!1,canChangeName:!1}),validate:function(a){if(this.get("showEmail")&&"undefined"!=typeof a.email&&!b.Utils.checkEmail(a.email))return b.Localization.get("Wrong email address.")},submit:function(){if(!this.validate(this.attributes)){var a=this;b.Objects.server.callFunctions([{"function":"processSurvey",arguments:{references:{},"return":{next:"next",options:"options"},
|
||||
groupId:a.get("groupId"),name:a.get("name"),info:a.get("info"),email:a.get("email"),message:a.get("message"),referrer:a.get("referrer"),threadId:null,token:null}}],function(c){if(0==c.errorCode)switch(a.trigger("submit:complete",a),b.Application.Survey.stop(),c.next){case "chat":b.Application.Chat.start(c.options);break;case "leaveMessage":b.Application.LeaveMessage.start(c.options);break;default:throw Error("Do not know how to continue!");}else a.trigger("submit:error",a,{code:c.errorCode,message:c.errorMessage||
|
||||
""})},!0)}}})})(Mibew,_);
|
||||
|
@ -110,7 +110,7 @@ MibewAPIChatInteraction=function(){this.mandatoryArguments=function(){return{"*"
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(c,e){var d=c.Models.BaseSurveyForm;c.Models.LeaveMessageForm=d.extend({defaults:e.extend({},d.prototype.defaults,{showCaptcha:!1,captcha:""}),validate:function(a){var b=c.Localization;if("undefined"!=typeof a.email){if(!a.email)return b.get("leavemessage.error.email.required");if(!c.Utils.checkEmail(a.email))return b.get("leavemessage.error.wrong.email")}if("undefined"!=typeof a.name&&!a.name)return b.get("leavemessage.error.name.required");if("undefined"!=typeof a.message&&!a.message)return b.get("leavemessage.error.message.required");
|
||||
if(this.get("showCaptcha")&&"undefined"!=typeof a.captcha&&!a.captcha)return b.get("errors.captcha")},submit:function(){if(!this.validate(this.attributes)){var a=this;c.Objects.server.callFunctions([{"function":"processLeaveMessage",arguments:{references:{},"return":{},groupId:a.get("groupId"),name:a.get("name"),info:a.get("info"),email:a.get("email"),message:a.get("message"),referrer:a.get("referrer"),captcha:a.get("captcha"),threadId:null,token:null}}],function(b){0==b.errorCode?a.trigger("submit:complete",
|
||||
if(this.get("showCaptcha")&&"undefined"!=typeof a.captcha&&!a.captcha)return b.get("The letters you typed don't match the letters that were shown in the picture.")},submit:function(){if(!this.validate(this.attributes)){var a=this;c.Objects.server.callFunctions([{"function":"processLeaveMessage",arguments:{references:{},"return":{},groupId:a.get("groupId"),name:a.get("name"),info:a.get("info"),email:a.get("email"),message:a.get("message"),referrer:a.get("referrer"),captcha:a.get("captcha"),threadId:null,token:null}}],function(b){0==b.errorCode?a.trigger("submit:complete",
|
||||
a):a.trigger("submit:error",a,{code:b.errorCode,message:b.errorMessage||""})},!0)}},ERROR_WRONG_CAPTCHA:10})})(Mibew,_);
|
||||
/*
|
||||
Copyright 2005-2014 the original author or authors.
|
||||
@ -147,7 +147,7 @@ this.play(b+"/sounds/new_message")}this.set({skipNextMessageSound:!1})}})})(Mibe
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(b,e){var d=b.Models.BaseSurveyForm;b.Models.SurveyForm=d.extend({defaults:e.extend({},d.prototype.defaults,{showEmail:!1,showMessage:!1,canChangeName:!1}),validate:function(a){if(this.get("showEmail")&&"undefined"!=typeof a.email&&!b.Utils.checkEmail(a.email))return b.Localization.get("presurvey.error.wrong_email")},submit:function(){if(!this.validate(this.attributes)){var a=this;b.Objects.server.callFunctions([{"function":"processSurvey",arguments:{references:{},"return":{next:"next",options:"options"},
|
||||
(function(b,e){var d=b.Models.BaseSurveyForm;b.Models.SurveyForm=d.extend({defaults:e.extend({},d.prototype.defaults,{showEmail:!1,showMessage:!1,canChangeName:!1}),validate:function(a){if(this.get("showEmail")&&"undefined"!=typeof a.email&&!b.Utils.checkEmail(a.email))return b.Localization.get("Wrong email address.")},submit:function(){if(!this.validate(this.attributes)){var a=this;b.Objects.server.callFunctions([{"function":"processSurvey",arguments:{references:{},"return":{next:"next",options:"options"},
|
||||
groupId:a.get("groupId"),name:a.get("name"),info:a.get("info"),email:a.get("email"),message:a.get("message"),referrer:a.get("referrer"),threadId:null,token:null}}],function(c){if(0==c.errorCode)switch(a.trigger("submit:complete",a),b.Application.Survey.stop(),c.next){case "chat":b.Application.Chat.start(c.options);break;case "leaveMessage":b.Application.LeaveMessage.start(c.options);break;default:throw Error("Do not know how to continue!");}else a.trigger("submit:error",a,{code:c.errorCode,message:c.errorMessage||
|
||||
""})},!0)}}})})(Mibew,_);
|
||||
/*
|
||||
@ -194,7 +194,7 @@ changeGroupDescription:function(){var a=this.ui.groupSelect.prop("selectedIndex"
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(a,c,d){a.Views.CloseControl=a.Views.Control.extend({template:c.templates.chat_controls_close,events:d.extend({},a.Views.Control.prototype.events,{click:"closeThread"}),closeThread:function(){var b=a.Localization.get("chat.close.confirmation");(!1===b||confirm(b))&&this.model.closeThread()}})})(Mibew,Handlebars,_);
|
||||
(function(a,c,d){a.Views.CloseControl=a.Views.Control.extend({template:c.templates.chat_controls_close,events:d.extend({},a.Views.Control.prototype.events,{click:"closeThread"}),closeThread:function(){var b=a.Localization.get("Are you sure want to leave chat?");(!1===b||confirm(b))&&this.model.closeThread()}})})(Mibew,Handlebars,_);
|
||||
/*
|
||||
Copyright 2005-2014 the original author or authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License").
|
||||
|
@ -5,6 +5,6 @@
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(a,h,j){var c=0,g=function(){c++;10==c&&(alert(a.Localization.get("pending.errors.network")),c=0)},b=new h.Marionette.Application;b.addRegions({agentsRegion:"#agents-region",statusPanelRegion:"#status-panel-region",threadsRegion:"#threads-region",visitorsRegion:"#visitors-region"});b.addInitializer(function(d){a.PluginOptions=d.plugins||{};var c=a.Objects,f=a.Objects.Models,e=a.Objects.Collections;c.server=new a.Server(j.extend({interactionType:MibewAPIUsersInteraction,onTimeout:g,onTransportError:g},
|
||||
(function(a,h,j){var c=0,g=function(){c++;10==c&&(alert(a.Localization.get("Network problems detected. Please refresh the page.")),c=0)},b=new h.Marionette.Application;b.addRegions({agentsRegion:"#agents-region",statusPanelRegion:"#status-panel-region",threadsRegion:"#threads-region",visitorsRegion:"#visitors-region"});b.addInitializer(function(d){a.PluginOptions=d.plugins||{};var c=a.Objects,f=a.Objects.Models,e=a.Objects.Collections;c.server=new a.Server(j.extend({interactionType:MibewAPIUsersInteraction,onTimeout:g,onTransportError:g},
|
||||
d.server));f.page=new a.Models.Page(d.page);f.agent=new a.Models.Agent(d.agent);e.threads=new a.Collections.Threads;b.threadsRegion.show(new a.Views.ThreadsCollection({collection:e.threads}));d.page.showVisitors&&(e.visitors=new a.Collections.Visitors,b.visitorsRegion.show(new a.Views.VisitorsCollection({collection:e.visitors})));f.statusPanel=new a.Models.StatusPanel;b.statusPanelRegion.show(new a.Views.StatusPanel({model:f.statusPanel}));d.page.showOnlineOperators&&(e.agents=new a.Collections.Agents,
|
||||
b.agentsRegion.show(new a.Views.AgentsCollection({collection:e.agents})));c.server.callFunctionsPeriodically(function(){return[{"function":"update",arguments:{"return":{},references:{},agentId:f.agent.id}}]},function(){})});b.on("start",function(){a.Objects.server.runUpdater()});a.Application=b})(Mibew,Backbone,_);
|
||||
|
@ -8,5 +8,5 @@
|
||||
(function(d,h,k){d.Views.ThreadsCollection=d.Views.CompositeBase.extend({template:h.templates.threads_collection,itemView:d.Views.QueuedThread,itemViewContainer:"#threads-container",emptyView:d.Views.NoThreads,className:"threads-collection",collectionEvents:{sort:"render","sort:field":"createSortField",add:"threadAdded"},itemViewOptions:function(a){return{tagName:d.Objects.Models.page.get("threadTag"),collection:a.get("controls")}},initialize:function(){window.setInterval(k.bind(this.updateTimers,
|
||||
this),2E3);this.on("itemview:before:render",this.updateStyles,this);this.on("composite:collection:rendered",this.updateTimers,this)},updateStyles:function(a){var b=this.collection,c=a.model,d=this;if(c.id){var e=this.getQueueCode(c),f=!1,g=!1,b=b.filter(function(a){return d.getQueueCode(a)==e});0<b.length&&(g=b[0].id==c.id,f=b[b.length-1].id==c.id);if(0<a.lastStyles.length){c=0;for(b=a.lastStyles.length;c<b;c++)a.$el.removeClass(a.lastStyles[c]);a.lastStyles=[]}c=(e!=this.QUEUE_BAN?"in":"")+this.queueCodeToString(e);
|
||||
a.lastStyles.push(c);g&&a.lastStyles.push(c+"-first");f&&a.lastStyles.push(c+"-last");c=0;for(b=a.lastStyles.length;c<b;c++)a.$el.addClass(a.lastStyles[c])}},updateTimers:function(){d.Utils.updateTimers(this.$el,".timesince")},createSortField:function(a,b){var c=this.getQueueCode(a)||"Z";b.field=c.toString()+"_"+a.get("waitingTime").toString()},threadAdded:function(){var a=d.Objects.Models.page.get("mibewRoot");"undefined"!==typeof a&&d.Utils.playSound(a+"/sounds/new_user");if(d.Objects.Models.page.get("showPopup"))this.once("render",
|
||||
function(){alert(d.Localization.get("pending.popup_notification"))})},getQueueCode:function(a){var b=a.get("state");return!1!=a.get("ban")&&b!=a.STATE_CHATTING?this.QUEUE_BAN:b==a.STATE_QUEUE||b==a.STATE_LOADING?this.QUEUE_WAITING:b==a.STATE_CLOSED||b==a.STATE_LEFT?this.QUEUE_CLOSED:b==a.STATE_WAITING?this.QUEUE_PRIO:b==a.STATE_CHATTING?this.QUEUE_CHATTING:!1},queueCodeToString:function(a){return a==this.QUEUE_PRIO?"prio":a==this.QUEUE_WAITING?"wait":a==this.QUEUE_CHATTING?"chat":a==this.QUEUE_BAN?
|
||||
function(){alert(d.Localization.get("A new visitor is waiting for an answer."))})},getQueueCode:function(a){var b=a.get("state");return!1!=a.get("ban")&&b!=a.STATE_CHATTING?this.QUEUE_BAN:b==a.STATE_QUEUE||b==a.STATE_LOADING?this.QUEUE_WAITING:b==a.STATE_CLOSED||b==a.STATE_LEFT?this.QUEUE_CLOSED:b==a.STATE_WAITING?this.QUEUE_PRIO:b==a.STATE_CHATTING?this.QUEUE_CHATTING:!1},queueCodeToString:function(a){return a==this.QUEUE_PRIO?"prio":a==this.QUEUE_WAITING?"wait":a==this.QUEUE_CHATTING?"chat":a==this.QUEUE_BAN?
|
||||
"ban":a==this.QUEUE_CLOSED?"closed":""},QUEUE_PRIO:1,QUEUE_WAITING:2,QUEUE_CHATTING:3,QUEUE_BAN:4,QUEUE_CLOSED:5})})(Mibew,Handlebars,_);
|
||||
|
@ -6,7 +6,7 @@
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(d,e){d.Views.QueuedThread=d.Views.CompositeBase.extend({template:e.templates.queued_thread,itemView:d.Views.Control,itemViewContainer:".thread-controls",className:"thread",modelEvents:{change:"render"},events:{"click .open-dialog":"openDialog","click .view-control":"viewDialog","click .track-control":"showTrack","click .ban-control":"showBan","click .geo-link":"showGeoInfo","click .first-message a":"showFirstMessage"},initialize:function(){this.lastStyles=[]},serializeData:function(){var a=
|
||||
this.model,b=d.Objects.Models.page,c=a.toJSON();c.stateDesc=this.stateToDesc(a.get("state"));c.chatting=a.get("state")==a.STATE_CHATTING;c.tracked=b.get("showVisitors");c.firstMessage&&(c.firstMessagePreview=30<c.firstMessage.length?c.firstMessage.substring(0,30)+"...":c.firstMessage);return c},stateToDesc:function(a){var b=d.Localization;return a==this.model.STATE_QUEUE?b.get("chat.thread.state_wait"):a==this.model.STATE_WAITING?b.get("chat.thread.state_wait_for_another_agent"):a==this.model.STATE_CHATTING?
|
||||
b.get("chat.thread.state_chatting_with_agent"):a==this.model.STATE_CLOSED?b.get("chat.thread.state_closed"):a==this.model.STATE_LOADING?b.get("chat.thread.state_loading"):""},showGeoInfo:function(){var a=this.model.get("userIp");if(a){var b=d.Objects.Models.page,c=b.get("geoLink").replace("{ip}",a);d.Popup.open(c,"ip"+a,b.get("geoWindowParams"))}},openDialog:function(){var a=this.model;if(a.get("canOpen")||a.get("canView"))a=!a.get("canOpen"),this.showDialogWindow(a)},viewDialog:function(){this.showDialogWindow(!0)},
|
||||
this.model,b=d.Objects.Models.page,c=a.toJSON();c.stateDesc=this.stateToDesc(a.get("state"));c.chatting=a.get("state")==a.STATE_CHATTING;c.tracked=b.get("showVisitors");c.firstMessage&&(c.firstMessagePreview=30<c.firstMessage.length?c.firstMessage.substring(0,30)+"...":c.firstMessage);return c},stateToDesc:function(a){var b=d.Localization;return a==this.model.STATE_QUEUE?b.get("In queue"):a==this.model.STATE_WAITING?b.get("Waiting for operator"):a==this.model.STATE_CHATTING?
|
||||
b.get("In chat"):a==this.model.STATE_CLOSED?b.get("Closed"):a==this.model.STATE_LOADING?b.get("Loading"):""},showGeoInfo:function(){var a=this.model.get("userIp");if(a){var b=d.Objects.Models.page,c=b.get("geoLink").replace("{ip}",a);d.Popup.open(c,"ip"+a,b.get("geoWindowParams"))}},openDialog:function(){var a=this.model;if(a.get("canOpen")||a.get("canView"))a=!a.get("canOpen"),this.showDialogWindow(a)},viewDialog:function(){this.showDialogWindow(!0)},
|
||||
showDialogWindow:function(a){var b=this.model.id,c=d.Objects.Models.page;d.Popup.open(c.get("agentLink")+"/"+b+(a?"?viewonly=true":""),"ImCenter"+b,c.get("chatWindowParams"))},showTrack:function(){var a=this.model.id,b=d.Objects.Models.page;d.Popup.open(b.get("trackedLink")+"?thread="+a,"ImTracked"+a,b.get("trackedUserWindowParams"))},showBan:function(){var a=this.model,b=a.get("ban"),c=d.Objects.Models.page;d.Popup.open(c.get("banLink")+"/"+(!1!==b?b.id+"/edit":"add?thread="+a.id),"ImBan"+b.id,c.get("banWindowParams"))},
|
||||
showFirstMessage:function(){var a=this.model.get("firstMessage");a&&alert(a)}})})(Mibew,Handlebars);
|
||||
|
@ -93,8 +93,8 @@ a,c);return c.field},updateVisitors:function(a){if(0==a.errorCode){var c;c=a.cur
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(d,e){d.Views.QueuedThread=d.Views.CompositeBase.extend({template:e.templates.queued_thread,itemView:d.Views.Control,itemViewContainer:".thread-controls",className:"thread",modelEvents:{change:"render"},events:{"click .open-dialog":"openDialog","click .view-control":"viewDialog","click .track-control":"showTrack","click .ban-control":"showBan","click .geo-link":"showGeoInfo","click .first-message a":"showFirstMessage"},initialize:function(){this.lastStyles=[]},serializeData:function(){var a=
|
||||
this.model,b=d.Objects.Models.page,c=a.toJSON();c.stateDesc=this.stateToDesc(a.get("state"));c.chatting=a.get("state")==a.STATE_CHATTING;c.tracked=b.get("showVisitors");c.firstMessage&&(c.firstMessagePreview=30<c.firstMessage.length?c.firstMessage.substring(0,30)+"...":c.firstMessage);return c},stateToDesc:function(a){var b=d.Localization;return a==this.model.STATE_QUEUE?b.get("chat.thread.state_wait"):a==this.model.STATE_WAITING?b.get("chat.thread.state_wait_for_another_agent"):a==this.model.STATE_CHATTING?
|
||||
b.get("chat.thread.state_chatting_with_agent"):a==this.model.STATE_CLOSED?b.get("chat.thread.state_closed"):a==this.model.STATE_LOADING?b.get("chat.thread.state_loading"):""},showGeoInfo:function(){var a=this.model.get("userIp");if(a){var b=d.Objects.Models.page,c=b.get("geoLink").replace("{ip}",a);d.Popup.open(c,"ip"+a,b.get("geoWindowParams"))}},openDialog:function(){var a=this.model;if(a.get("canOpen")||a.get("canView"))a=!a.get("canOpen"),this.showDialogWindow(a)},viewDialog:function(){this.showDialogWindow(!0)},
|
||||
this.model,b=d.Objects.Models.page,c=a.toJSON();c.stateDesc=this.stateToDesc(a.get("state"));c.chatting=a.get("state")==a.STATE_CHATTING;c.tracked=b.get("showVisitors");c.firstMessage&&(c.firstMessagePreview=30<c.firstMessage.length?c.firstMessage.substring(0,30)+"...":c.firstMessage);return c},stateToDesc:function(a){var b=d.Localization;return a==this.model.STATE_QUEUE?b.get("In queue"):a==this.model.STATE_WAITING?b.get("Waiting for operator"):a==this.model.STATE_CHATTING?
|
||||
b.get("In chat"):a==this.model.STATE_CLOSED?b.get("Closed"):a==this.model.STATE_LOADING?b.get("Loading"):""},showGeoInfo:function(){var a=this.model.get("userIp");if(a){var b=d.Objects.Models.page,c=b.get("geoLink").replace("{ip}",a);d.Popup.open(c,"ip"+a,b.get("geoWindowParams"))}},openDialog:function(){var a=this.model;if(a.get("canOpen")||a.get("canView"))a=!a.get("canOpen"),this.showDialogWindow(a)},viewDialog:function(){this.showDialogWindow(!0)},
|
||||
showDialogWindow:function(a){var b=this.model.id,c=d.Objects.Models.page;d.Popup.open(c.get("agentLink")+"/"+b+(a?"?viewonly=true":""),"ImCenter"+b,c.get("chatWindowParams"))},showTrack:function(){var a=this.model.id,b=d.Objects.Models.page;d.Popup.open(b.get("trackedLink")+"?thread="+a,"ImTracked"+a,b.get("trackedUserWindowParams"))},showBan:function(){var a=this.model,b=a.get("ban"),c=d.Objects.Models.page;d.Popup.open(c.get("banLink")+"/"+(!1!==b?b.id+"/edit":"add?thread="+a.id),"ImBan"+b.id,c.get("banWindowParams"))},
|
||||
showFirstMessage:function(){var a=this.model.get("firstMessage");a&&alert(a)}})})(Mibew,Handlebars);
|
||||
/*
|
||||
@ -128,7 +128,7 @@ showTrack:function(){var b=this.model.id,c=a.Objects.Models.page;a.Popup.open(c.
|
||||
(function(d,h,k){d.Views.ThreadsCollection=d.Views.CompositeBase.extend({template:h.templates.threads_collection,itemView:d.Views.QueuedThread,itemViewContainer:"#threads-container",emptyView:d.Views.NoThreads,className:"threads-collection",collectionEvents:{sort:"render","sort:field":"createSortField",add:"threadAdded"},itemViewOptions:function(a){return{tagName:d.Objects.Models.page.get("threadTag"),collection:a.get("controls")}},initialize:function(){window.setInterval(k.bind(this.updateTimers,
|
||||
this),2E3);this.on("itemview:before:render",this.updateStyles,this);this.on("composite:collection:rendered",this.updateTimers,this)},updateStyles:function(a){var b=this.collection,c=a.model,d=this;if(c.id){var e=this.getQueueCode(c),f=!1,g=!1,b=b.filter(function(a){return d.getQueueCode(a)==e});0<b.length&&(g=b[0].id==c.id,f=b[b.length-1].id==c.id);if(0<a.lastStyles.length){c=0;for(b=a.lastStyles.length;c<b;c++)a.$el.removeClass(a.lastStyles[c]);a.lastStyles=[]}c=(e!=this.QUEUE_BAN?"in":"")+this.queueCodeToString(e);
|
||||
a.lastStyles.push(c);g&&a.lastStyles.push(c+"-first");f&&a.lastStyles.push(c+"-last");c=0;for(b=a.lastStyles.length;c<b;c++)a.$el.addClass(a.lastStyles[c])}},updateTimers:function(){d.Utils.updateTimers(this.$el,".timesince")},createSortField:function(a,b){var c=this.getQueueCode(a)||"Z";b.field=c.toString()+"_"+a.get("waitingTime").toString()},threadAdded:function(){var a=d.Objects.Models.page.get("mibewRoot");"undefined"!==typeof a&&d.Utils.playSound(a+"/sounds/new_user");if(d.Objects.Models.page.get("showPopup"))this.once("render",
|
||||
function(){alert(d.Localization.get("pending.popup_notification"))})},getQueueCode:function(a){var b=a.get("state");return!1!=a.get("ban")&&b!=a.STATE_CHATTING?this.QUEUE_BAN:b==a.STATE_QUEUE||b==a.STATE_LOADING?this.QUEUE_WAITING:b==a.STATE_CLOSED||b==a.STATE_LEFT?this.QUEUE_CLOSED:b==a.STATE_WAITING?this.QUEUE_PRIO:b==a.STATE_CHATTING?this.QUEUE_CHATTING:!1},queueCodeToString:function(a){return a==this.QUEUE_PRIO?"prio":a==this.QUEUE_WAITING?"wait":a==this.QUEUE_CHATTING?"chat":a==this.QUEUE_BAN?
|
||||
function(){alert(d.Localization.get("A new visitor is waiting for an answer."))})},getQueueCode:function(a){var b=a.get("state");return!1!=a.get("ban")&&b!=a.STATE_CHATTING?this.QUEUE_BAN:b==a.STATE_QUEUE||b==a.STATE_LOADING?this.QUEUE_WAITING:b==a.STATE_CLOSED||b==a.STATE_LEFT?this.QUEUE_CLOSED:b==a.STATE_WAITING?this.QUEUE_PRIO:b==a.STATE_CHATTING?this.QUEUE_CHATTING:!1},queueCodeToString:function(a){return a==this.QUEUE_PRIO?"prio":a==this.QUEUE_WAITING?"wait":a==this.QUEUE_CHATTING?"chat":a==this.QUEUE_BAN?
|
||||
"ban":a==this.QUEUE_CLOSED?"closed":""},QUEUE_PRIO:1,QUEUE_WAITING:2,QUEUE_CHATTING:3,QUEUE_BAN:4,QUEUE_CLOSED:5})})(Mibew,Handlebars,_);
|
||||
/*
|
||||
Copyright 2005-2014 the original author or authors.
|
||||
@ -144,6 +144,6 @@ this.updateTimers,this)},updateTimers:function(){a.Utils.updateTimers(this.$el,"
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(a,h,j){var c=0,g=function(){c++;10==c&&(alert(a.Localization.get("pending.errors.network")),c=0)},b=new h.Marionette.Application;b.addRegions({agentsRegion:"#agents-region",statusPanelRegion:"#status-panel-region",threadsRegion:"#threads-region",visitorsRegion:"#visitors-region"});b.addInitializer(function(d){a.PluginOptions=d.plugins||{};var c=a.Objects,f=a.Objects.Models,e=a.Objects.Collections;c.server=new a.Server(j.extend({interactionType:MibewAPIUsersInteraction,onTimeout:g,onTransportError:g},
|
||||
(function(a,h,j){var c=0,g=function(){c++;10==c&&(alert(a.Localization.get("Network problems detected. Please refresh the page.")),c=0)},b=new h.Marionette.Application;b.addRegions({agentsRegion:"#agents-region",statusPanelRegion:"#status-panel-region",threadsRegion:"#threads-region",visitorsRegion:"#visitors-region"});b.addInitializer(function(d){a.PluginOptions=d.plugins||{};var c=a.Objects,f=a.Objects.Models,e=a.Objects.Collections;c.server=new a.Server(j.extend({interactionType:MibewAPIUsersInteraction,onTimeout:g,onTransportError:g},
|
||||
d.server));f.page=new a.Models.Page(d.page);f.agent=new a.Models.Agent(d.agent);e.threads=new a.Collections.Threads;b.threadsRegion.show(new a.Views.ThreadsCollection({collection:e.threads}));d.page.showVisitors&&(e.visitors=new a.Collections.Visitors,b.visitorsRegion.show(new a.Views.VisitorsCollection({collection:e.visitors})));f.statusPanel=new a.Models.StatusPanel;b.statusPanelRegion.show(new a.Views.StatusPanel({model:f.statusPanel}));d.page.showOnlineOperators&&(e.agents=new a.Collections.Agents,
|
||||
b.agentsRegion.show(new a.Views.AgentsCollection({collection:e.agents})));c.server.callFunctionsPeriodically(function(){return[{"function":"update",arguments:{"return":{},references:{},agentId:f.agent.id}}]},function(){})});b.on("start",function(){a.Objects.server.runUpdater()});a.Application=b})(Mibew,Backbone,_);
|
||||
|
@ -39,7 +39,7 @@
|
||||
*/
|
||||
closeThread: function() {
|
||||
// Show confirmation message if can
|
||||
var confirmMessage = Mibew.Localization.get('chat.close.confirmation');
|
||||
var confirmMessage = Mibew.Localization.get('Are you sure want to leave chat?');
|
||||
if (confirmMessage !== false) {
|
||||
if (! confirm(confirmMessage)) {
|
||||
return;
|
||||
|
@ -78,7 +78,7 @@
|
||||
if (this.get('showCaptcha')) {
|
||||
if (typeof attributes.captcha != 'undefined') {
|
||||
if (! attributes.captcha) {
|
||||
return l.get('errors.captcha');
|
||||
return l.get('The letters you typed don\'t match the letters that were shown in the picture.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,7 @@
|
||||
if (typeof attributes.email != 'undefined') {
|
||||
if(! Mibew.Utils.checkEmail(attributes.email)) {
|
||||
return Mibew.Localization.get(
|
||||
'presurvey.error.wrong_email'
|
||||
'Wrong email address.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@
|
||||
badRequestsCount++;
|
||||
// Check if there is
|
||||
if (badRequestsCount == 10) {
|
||||
alert(Mibew.Localization.get('pending.errors.network'));
|
||||
alert(Mibew.Localization.get('Network problems detected. Please refresh the page.'));
|
||||
badRequestsCount = 0;
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +166,7 @@
|
||||
if (Mibew.Objects.Models.page.get('showPopup')) {
|
||||
this.once('render', function() {
|
||||
alert(
|
||||
Mibew.Localization.get('pending.popup_notification')
|
||||
Mibew.Localization.get('A new visitor is waiting for an answer.')
|
||||
);
|
||||
})
|
||||
}
|
||||
|
@ -109,19 +109,19 @@
|
||||
stateToDesc: function(state) {
|
||||
var l = Mibew.Localization;
|
||||
if (state == this.model.STATE_QUEUE) {
|
||||
return l.get('chat.thread.state_wait');
|
||||
return l.get('In queue');
|
||||
}
|
||||
if (state == this.model.STATE_WAITING) {
|
||||
return l.get('chat.thread.state_wait_for_another_agent');
|
||||
return l.get('Waiting for operator');
|
||||
}
|
||||
if (state == this.model.STATE_CHATTING) {
|
||||
return l.get('chat.thread.state_chatting_with_agent');
|
||||
return l.get('In chat');
|
||||
}
|
||||
if (state == this.model.STATE_CLOSED) {
|
||||
return l.get('chat.thread.state_closed');
|
||||
return l.get('Closed');
|
||||
}
|
||||
if (state == this.model.STATE_LOADING) {
|
||||
return l.get('chat.thread.state_loading');
|
||||
return l.get('Loading');
|
||||
}
|
||||
return "";
|
||||
},
|
||||
|
@ -266,10 +266,10 @@ function prepare_chat_app_data()
|
||||
|
||||
// Set some localized strings
|
||||
$data['localized'] = array(
|
||||
'email.required' => no_field("form.field.email"),
|
||||
'name.required' => no_field("form.field.name"),
|
||||
'message.required' => no_field("form.field.message"),
|
||||
'wrong.email' => wrong_field("form.field.email"),
|
||||
'email.required' => no_field("Your email"),
|
||||
'name.required' => no_field("Your name"),
|
||||
'message.required' => no_field("Message"),
|
||||
'wrong.email' => wrong_field("Your email"),
|
||||
);
|
||||
|
||||
return $data;
|
||||
@ -312,7 +312,7 @@ function setup_leavemessage($name, $email, $group_id, $info, $referrer)
|
||||
);
|
||||
|
||||
$data['page.title'] = (empty($group_name) ? '' : $group_name . ': ')
|
||||
. getlocal('leavemessage.title');
|
||||
. getlocal('Leave your message');
|
||||
$data['leaveMessage']['page'] = array(
|
||||
'title' => $data['page.title']
|
||||
);
|
||||
@ -358,7 +358,7 @@ function setup_survey($name, $email, $group_id, $info, $referrer)
|
||||
'canChangeName' => (bool) (Settings::get('usercanchangename') == "1"),
|
||||
);
|
||||
|
||||
$data['page.title'] = getlocal('presurvey.title');
|
||||
$data['page.title'] = getlocal('Live support');
|
||||
$data['survey']['page'] = array(
|
||||
'title' => $data['page.title']
|
||||
);
|
||||
@ -535,7 +535,7 @@ function setup_chatview_for_user(Thread $thread)
|
||||
$data['chat']['user'] = array(
|
||||
'name' => htmlspecialchars($thread->userName),
|
||||
'canChangeName' => (bool) (Settings::get('usercanchangename') == "1"),
|
||||
'defaultName' => (bool) (getlocal("chat.default.username") != $thread->userName),
|
||||
'defaultName' => (bool) (getlocal("Guest") != $thread->userName),
|
||||
'canPost' => true,
|
||||
'isAgent' => false,
|
||||
);
|
||||
@ -658,7 +658,7 @@ function ban_for_addr($addr)
|
||||
*/
|
||||
function visitor_from_request()
|
||||
{
|
||||
$default_name = getlocal("chat.default.username");
|
||||
$default_name = getlocal("Guest");
|
||||
$user_name = $default_name;
|
||||
if (isset($_COOKIE[USERNAME_COOKIE_NAME])) {
|
||||
$data = base64_decode(strtr($_COOKIE[USERNAME_COOKIE_NAME], '-_,', '+/='));
|
||||
@ -784,7 +784,7 @@ function chat_start_for_user(
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal(
|
||||
'chat.visitor.invitation.accepted',
|
||||
'Visitor accepted invitation from operator {0}',
|
||||
array($operator_name),
|
||||
CURRENT_LOCALE,
|
||||
true
|
||||
@ -794,14 +794,14 @@ function chat_start_for_user(
|
||||
if ($referrer) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.came.from', array($referrer), CURRENT_LOCALE, true)
|
||||
getlocal('Vistor came from page {0}', array($referrer), CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
if ($requested_operator && !$requested_operator_online) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_INFO,
|
||||
getlocal(
|
||||
'chat.requested_operator.offline',
|
||||
'Thank you for contacting us. We are sorry, but requested operator <strong>{0}</strong> is offline. Another operator will be with you shortly.',
|
||||
array(get_operator_name($requested_operator)),
|
||||
CURRENT_LOCALE,
|
||||
true
|
||||
@ -810,7 +810,7 @@ function chat_start_for_user(
|
||||
} else {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_INFO,
|
||||
getlocal('chat.wait', null, CURRENT_LOCALE, true)
|
||||
getlocal('Thank you for contacting us. An operator will be with you shortly.', null, CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -819,7 +819,7 @@ function chat_start_for_user(
|
||||
if ($info) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.visitor.info', array($info), CURRENT_LOCALE, true)
|
||||
getlocal('Info: {0}', array($info), CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ class BanController extends AbstractController
|
||||
}
|
||||
unset($item);
|
||||
|
||||
$page['title'] = getlocal('page_bans.title');
|
||||
$page['title'] = getlocal('Ban List');
|
||||
$page['menuid'] = 'bans';
|
||||
$pagination = setup_pagination($blocked_list);
|
||||
$page['pagination'] = $pagination['info'];
|
||||
@ -159,7 +159,7 @@ class BanController extends AbstractController
|
||||
$page['threadid'] = $request->request->get('threadid');
|
||||
}
|
||||
|
||||
$page['title'] = getlocal('page_ban.title');
|
||||
$page['title'] = getlocal('Block address');
|
||||
$page['formaction'] = $request->getBaseUrl() . $request->getPathInfo();
|
||||
$page = array_merge($page, prepare_menu($operator, false));
|
||||
|
||||
@ -192,15 +192,15 @@ class BanController extends AbstractController
|
||||
$comment = $request->request->get('comment');
|
||||
|
||||
if (!$address) {
|
||||
$errors[] = no_field('form.field.address');
|
||||
$errors[] = no_field('Visitor\'s Address');
|
||||
}
|
||||
|
||||
if (!preg_match("/^\d+$/", $days)) {
|
||||
$errors[] = wrong_field('form.field.ban_days');
|
||||
$errors[] = wrong_field('Days');
|
||||
}
|
||||
|
||||
if (!$comment) {
|
||||
$errors[] = no_field('form.field.ban_comment');
|
||||
$errors[] = no_field('Comment');
|
||||
}
|
||||
|
||||
// Check if the ban already exists in the database
|
||||
@ -213,7 +213,7 @@ class BanController extends AbstractController
|
||||
'ban_edit',
|
||||
array('ban_id' => $existing_ban['banid'])
|
||||
);
|
||||
$errors[] = getlocal('ban.error.duplicate', array($address, $ban_url));
|
||||
$errors[] = getlocal('The specified address is already in use. Click <a href="{1}">here</a> if you want to edit it.', array($address, $ban_url));
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
@ -254,7 +254,7 @@ class BanController extends AbstractController
|
||||
// Rerender the form page
|
||||
$page['saved'] = true;
|
||||
$page['address'] = $address;
|
||||
$page['title'] = getlocal('page_ban.title');
|
||||
$page['title'] = getlocal('Block address');
|
||||
$page = array_merge($page, prepare_menu($operator, false));
|
||||
|
||||
return $this->render('ban', $page);
|
||||
|
@ -54,14 +54,14 @@ class ButtonCodeController extends AbstractController
|
||||
$image_locales = $image_locales_map[$image];
|
||||
|
||||
$style_list = ChatStyle::getAvailableStyles();
|
||||
$style_list[''] = getlocal('page.preview.style_default');
|
||||
$style_list[''] = getlocal('-from general settings-');
|
||||
$style = $request->query->get('style', '');
|
||||
if ($style && !in_array($style, $style_list)) {
|
||||
$style = '';
|
||||
}
|
||||
|
||||
$invitation_style_list = InvitationStyle::getAvailableStyles();
|
||||
$invitation_style_list[''] = getlocal('page.preview.style_default');
|
||||
$invitation_style_list[''] = getlocal('-from general settings-');
|
||||
$invitation_style = $request->query->get('invitationstyle', '');
|
||||
if ($invitation_style && !in_array($invitation_style, $invitation_style_list)) {
|
||||
$invitation_style = '';
|
||||
@ -71,7 +71,7 @@ class ButtonCodeController extends AbstractController
|
||||
|
||||
$group_id = $request->query->getInt('group');
|
||||
if ($group_id && !group_by_id($group_id)) {
|
||||
$page['errors'][] = getlocal("page.group.no_such");
|
||||
$page['errors'][] = getlocal("No such group");
|
||||
$group_id = false;
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ class ButtonCodeController extends AbstractController
|
||||
$lang = in_array(CURRENT_LOCALE, $locales_list) ? CURRENT_LOCALE : $locales_list[0];
|
||||
}
|
||||
|
||||
$message = getlocal('page.gen_button.text_link_text');
|
||||
$message = getlocal('Click to chat');
|
||||
}
|
||||
|
||||
$page['buttonCode'] = generate_button(
|
||||
@ -146,9 +146,9 @@ class ButtonCodeController extends AbstractController
|
||||
$page['groups'] = get_groups_list();
|
||||
|
||||
$page['availableCodeTypes'] = array(
|
||||
'button' => getlocal('page.gen_button.button'),
|
||||
'operator_code' => getlocal('page.gen_button.operator_code'),
|
||||
'text_link' => getlocal('page.gen_button.text_link')
|
||||
'button' => getlocal('button'),
|
||||
'operator_code' => getlocal('operator code field'),
|
||||
'text_link' => getlocal('text link')
|
||||
);
|
||||
|
||||
$page['formgroup'] = $group_id;
|
||||
@ -165,7 +165,7 @@ class ButtonCodeController extends AbstractController
|
||||
$page['operator_code'] = $operator_code;
|
||||
$page['generateButton'] = $generate_button;
|
||||
|
||||
$page['title'] = getlocal("page.gen_button.title");
|
||||
$page['title'] = getlocal("Button HTML code generation");
|
||||
$page['menuid'] = "getcode";
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
|
@ -41,7 +41,7 @@ class ButtonController extends AbstractController
|
||||
$thread = Thread::load($_SESSION['threadid']);
|
||||
if ($thread && $thread->state != Thread::STATE_CLOSED) {
|
||||
$msg = getlocal(
|
||||
"chat.client.visited.page",
|
||||
"Visitor navigated to {0}",
|
||||
array($referer),
|
||||
$thread->locale,
|
||||
true
|
||||
|
@ -65,7 +65,7 @@ class CannedMessageController extends AbstractController
|
||||
if ($group_id) {
|
||||
$group = group_by_id($group_id);
|
||||
if (!$group) {
|
||||
$page['errors'][] = getlocal('page.group.no_such');
|
||||
$page['errors'][] = getlocal('No such group');
|
||||
$group_id = false;
|
||||
}
|
||||
}
|
||||
@ -77,7 +77,7 @@ class CannedMessageController extends AbstractController
|
||||
$page['groups'] = array();
|
||||
$page['groups'][] = array(
|
||||
'groupid' => '',
|
||||
'vclocalname' => getlocal('page.gen_button.default_group'),
|
||||
'vclocalname' => getlocal('-all operators-'),
|
||||
'level' => 0,
|
||||
);
|
||||
foreach ($all_groups as $g) {
|
||||
@ -101,7 +101,7 @@ class CannedMessageController extends AbstractController
|
||||
$page['formgroup'] = $group_id;
|
||||
|
||||
// Set other needed page values and render the response
|
||||
$page['title'] = getlocal('canned.title');
|
||||
$page['title'] = getlocal('Canned Messages');
|
||||
$page['menuid'] = 'canned';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
|
||||
@ -157,7 +157,7 @@ class CannedMessageController extends AbstractController
|
||||
// Load existing message
|
||||
$canned_message = load_canned_message($message_id);
|
||||
if (!$canned_message) {
|
||||
$page['errors'][] = getlocal('cannededit.no_such');
|
||||
$page['errors'][] = getlocal('No such message');
|
||||
$message_id = false;
|
||||
} else {
|
||||
$title = $canned_message['vctitle'];
|
||||
@ -186,8 +186,8 @@ class CannedMessageController extends AbstractController
|
||||
$page['formmessage'] = $message;
|
||||
$page['formaction'] = $request->getBaseUrl() . $request->getPathInfo();
|
||||
$page['title'] = empty($message_id)
|
||||
? getlocal('cannednew.title')
|
||||
: getlocal('cannededit.title');
|
||||
? getlocal('New Message')
|
||||
: getlocal('Edit Message');
|
||||
$page = array_merge($page, prepare_menu($operator, false));
|
||||
|
||||
return $this->render('canned_message_edit', $page);
|
||||
@ -211,12 +211,12 @@ class CannedMessageController extends AbstractController
|
||||
|
||||
$title = $request->request->get('title');
|
||||
if (!$title) {
|
||||
$errors[] = no_field("form.field.title");
|
||||
$errors[] = no_field("Title");
|
||||
}
|
||||
|
||||
$message = $request->request->get('message');
|
||||
if (!$message) {
|
||||
$errors[] = no_field("form.field.message");
|
||||
$errors[] = no_field("Message");
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
|
@ -91,9 +91,9 @@ class MailController extends AbstractController
|
||||
$email = $request->request->get('email');
|
||||
$group = is_null($thread->groupId) ? null : group_by_id($thread->groupId);
|
||||
if (!$email) {
|
||||
$errors[] = no_field('form.field.email');
|
||||
$errors[] = no_field('Your email');
|
||||
} elseif (!is_valid_email($email)) {
|
||||
$errors[] = wrong_field('form.field.email');
|
||||
$errors[] = wrong_field('Your email');
|
||||
}
|
||||
|
||||
if (count($errors) > 0) {
|
||||
|
@ -83,13 +83,13 @@ class OperatorChatController extends AbstractController
|
||||
// Check operator's browser level because old browsers aren't supported.
|
||||
$remote_level = get_remote_level($request->headers->get('User-Agent'));
|
||||
if ($remote_level != 'ajaxed') {
|
||||
return $this->showErrors(array(getlocal('thread.error.old_browser')));
|
||||
return $this->showErrors(array(getlocal('Old browser is used, please update it')));
|
||||
}
|
||||
|
||||
// Check if the thread can be loaded.
|
||||
$thread = Thread::load($thread_id);
|
||||
if (!$thread || !isset($thread->lastToken)) {
|
||||
return $this->showErrors(array(getlocal('thread.error.wrong_thread')));
|
||||
return $this->showErrors(array(getlocal('Wrong thread')));
|
||||
}
|
||||
|
||||
$view_only = ($request->query->get('viewonly') == 'true');
|
||||
@ -100,7 +100,7 @@ class OperatorChatController extends AbstractController
|
||||
&& $operator['operatorid'] != $thread->agentId;
|
||||
if ($try_take_over) {
|
||||
if (!is_capable(CAN_TAKEOVER, $operator)) {
|
||||
return $this->showErrors(array(getlocal('thread.error.cannot_take_over')));
|
||||
return $this->showErrors(array(getlocal('Cannot take over')));
|
||||
}
|
||||
|
||||
if ($force_take == false) {
|
||||
@ -115,7 +115,7 @@ class OperatorChatController extends AbstractController
|
||||
'user' => $thread->userName,
|
||||
'agent' => $thread->agentName,
|
||||
'link' => $link,
|
||||
'title' => getlocal('confirm.take.head'),
|
||||
'title' => getlocal('Change operator'),
|
||||
);
|
||||
$page_style = new PageStyle(PageStyle::getCurrentStyle());
|
||||
|
||||
@ -127,10 +127,10 @@ class OperatorChatController extends AbstractController
|
||||
|
||||
if (!$view_only) {
|
||||
if (!$thread->take($operator)) {
|
||||
return $this->showErrors(array(getlocal('thread.error.cannot_take')));
|
||||
return $this->showErrors(array(getlocal('Cannot take thread')));
|
||||
}
|
||||
} elseif (!is_capable(CAN_VIEWTHREADS, $operator)) {
|
||||
return $this->showErrors(array(getlocal('thread.error.cannot_view')));
|
||||
return $this->showErrors(array(getlocal('Cannot view threads')));
|
||||
}
|
||||
|
||||
// Redrect the operator to initialized chat page
|
||||
|
@ -103,11 +103,11 @@ class RedirectController extends AbstractController
|
||||
|
||||
if ($next_group) {
|
||||
$page['message'] = getlocal(
|
||||
'chat.redirected.group.content',
|
||||
'The visitor has been placed in a priorty queue of the group {0}.',
|
||||
array(get_group_name($next_group))
|
||||
);
|
||||
if (!$this->redirectToGroup($thread, $next_id)) {
|
||||
$page['errors'][] = getlocal('chat.redirect.cannot');
|
||||
$page['errors'][] = getlocal('You are not chatting with the visitor.');
|
||||
}
|
||||
} else {
|
||||
$page['errors'][] = 'Unknown group';
|
||||
@ -122,11 +122,11 @@ class RedirectController extends AbstractController
|
||||
|
||||
if ($next_operator) {
|
||||
$page['message'] = getlocal(
|
||||
'chat.redirected.content',
|
||||
'The visitor has been placed in the priorty queue of the operator {0}.',
|
||||
array(get_operator_name($next_operator))
|
||||
);
|
||||
if (!$this->redirectToOperator($thread, $next_id)) {
|
||||
$page['errors'][] = getlocal('chat.redirect.cannot');
|
||||
$page['errors'][] = getlocal('You are not chatting with the visitor.');
|
||||
}
|
||||
} else {
|
||||
$page['errors'][] = 'Unknown operator';
|
||||
@ -168,7 +168,7 @@ class RedirectController extends AbstractController
|
||||
$thread->postMessage(
|
||||
Thread::KIND_EVENTS,
|
||||
getlocal(
|
||||
'chat.status.operator.redirect',
|
||||
'Operator {0} redirected you to another operator. Please wait a while.',
|
||||
array(get_operator_name($this->getOperator())),
|
||||
$thread->locale,
|
||||
true
|
||||
@ -222,7 +222,7 @@ class RedirectController extends AbstractController
|
||||
$thread->postMessage(
|
||||
Thread::KIND_EVENTS,
|
||||
getlocal(
|
||||
'chat.status.operator.redirect',
|
||||
'Operator {0} redirected you to another operator. Please wait a while.',
|
||||
array(get_operator_name($this->getOperator())),
|
||||
$thread->locale,
|
||||
true
|
||||
|
@ -40,11 +40,11 @@ abstract class AbstractController extends BaseController
|
||||
$args = array('group_id' => $group_id);
|
||||
|
||||
if ($group_id) {
|
||||
$tabs[getlocal('page_group.tab.main')] = ($route == 'group_members')
|
||||
$tabs[getlocal('General')] = ($route == 'group_members')
|
||||
? $this->generateUrl('group_edit', $args)
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_group.tab.members')] = ($route != 'group_members')
|
||||
$tabs[getlocal('Members')] = ($route != 'group_members')
|
||||
? $this->generateUrl('group_members', $args)
|
||||
: '';
|
||||
}
|
||||
|
@ -66,17 +66,17 @@ class ManagementController extends AbstractController
|
||||
$page['formsortdirection'] = $sort['desc'] ? 'desc' : 'asc';
|
||||
$page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator);
|
||||
$page['availableOrders'] = array(
|
||||
array('id' => 'name', 'name' => getlocal('form.field.groupname')),
|
||||
array('id' => 'lastseen', 'name' => getlocal('page_agents.status')),
|
||||
array('id' => 'weight', 'name' => getlocal('page.groups.weight')),
|
||||
array('id' => 'name', 'name' => getlocal('Name')),
|
||||
array('id' => 'lastseen', 'name' => getlocal('Last active')),
|
||||
array('id' => 'weight', 'name' => getlocal('Weight')),
|
||||
);
|
||||
$page['availableDirections'] = array(
|
||||
array('id' => 'desc', 'name' => getlocal('page.groups.sortdirection.desc')),
|
||||
array('id' => 'asc', 'name' => getlocal('page.groups.sortdirection.asc')),
|
||||
array('id' => 'desc', 'name' => getlocal('descending')),
|
||||
array('id' => 'asc', 'name' => getlocal('ascending')),
|
||||
);
|
||||
|
||||
// Set other variables and render the response.
|
||||
$page['title'] = getlocal('page.groups.title');
|
||||
$page['title'] = getlocal('Groups');
|
||||
$page['menuid'] = 'groups';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
|
||||
|
@ -78,7 +78,7 @@ class MembersController extends AbstractController
|
||||
|
||||
// Set other values and render the page
|
||||
$page['stored'] = $request->query->get('stored');
|
||||
$page['title'] = getlocal('page.groupmembers.title');
|
||||
$page['title'] = getlocal('Members');
|
||||
$page['menuid'] = 'groups';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
|
@ -89,7 +89,7 @@ class SettingsController extends AbstractController
|
||||
$page['stored'] = $request->query->has('stored');
|
||||
$page['availableParentGroups'] = get_available_parent_groups($group_id);
|
||||
$page['formaction'] = $request->getBaseUrl() . $request->getPathInfo();
|
||||
$page['title'] = getlocal('page.group.title');
|
||||
$page['title'] = getlocal('Group details');
|
||||
$page['menuid'] = 'groups';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
@ -129,15 +129,15 @@ class SettingsController extends AbstractController
|
||||
$logo = $request->request->get('logo');
|
||||
|
||||
if (!$name) {
|
||||
$errors[] = no_field("form.field.groupname");
|
||||
$errors[] = no_field("Name");
|
||||
}
|
||||
|
||||
if ($email != '' && !is_valid_email($email)) {
|
||||
$errors[] = wrong_field("form.field.mail");
|
||||
$errors[] = wrong_field("E-mail");
|
||||
}
|
||||
|
||||
if (!preg_match("/^(\d{1,10})?$/", $weight)) {
|
||||
$errors[] = wrong_field("form.field.groupweight");
|
||||
$errors[] = wrong_field("Weight");
|
||||
}
|
||||
|
||||
if (!$weight) {
|
||||
@ -151,7 +151,7 @@ class SettingsController extends AbstractController
|
||||
&& $group_id != $existing_group['groupid']);
|
||||
|
||||
if ($duplicate_name) {
|
||||
$errors[] = getlocal("page.group.duplicate_name");
|
||||
$errors[] = getlocal("Please choose another name because a group with that name already exists.");
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
|
@ -157,7 +157,7 @@ class HistoryController extends AbstractController
|
||||
|
||||
$page['formtype'] = $search_type;
|
||||
$page['forminsystemmessages'] = $search_in_system_messages;
|
||||
$page['title'] = getlocal("page_analysis.search.title");
|
||||
$page['title'] = getlocal("Chat history");
|
||||
$page['menuid'] = "history";
|
||||
$page['canSearchInSystemMessages'] = ($search_type != 'all')
|
||||
&& ($search_type != 'message');
|
||||
@ -197,7 +197,7 @@ class HistoryController extends AbstractController
|
||||
$last_id = -1;
|
||||
$messages = $thread->getMessages(false, $last_id);
|
||||
$page['threadMessages'] = json_encode($messages);
|
||||
$page['title'] = getlocal("thread.chat_log");
|
||||
$page['title'] = getlocal("Chat log");
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator, false));
|
||||
|
||||
@ -260,7 +260,7 @@ class HistoryController extends AbstractController
|
||||
}
|
||||
}
|
||||
|
||||
$page['title'] = getlocal("page.analysis.userhistory.title");
|
||||
$page['title'] = getlocal("Visit history");
|
||||
$page['menuid'] = "history";
|
||||
|
||||
return $this->render('history_user', $page);
|
||||
@ -310,7 +310,7 @@ class HistoryController extends AbstractController
|
||||
);
|
||||
}
|
||||
|
||||
$page['title'] = getlocal('tracked.path');
|
||||
$page['title'] = getlocal('Tracked path of visitor');
|
||||
$page['show_small_login'] = false;
|
||||
|
||||
return $this->render('tracked', $page);
|
||||
|
@ -60,7 +60,7 @@ class HomeController extends AbstractController
|
||||
'featuresPage' => $base_url . '/operator/settings/features',
|
||||
'isOnline' => $is_online,
|
||||
'warnOffline' => true,
|
||||
'title' => getlocal('topMenu.admin'),
|
||||
'title' => getlocal('Home'),
|
||||
'menuid' => 'main',
|
||||
);
|
||||
|
||||
|
@ -35,7 +35,7 @@ class LicenseController extends AbstractController
|
||||
return $this->render(
|
||||
'license',
|
||||
array(
|
||||
'title' => getlocal("license.title"),
|
||||
'title' => getlocal("License"),
|
||||
'no_right_menu' => true,
|
||||
'fixedwrap' => true,
|
||||
'show_small_login' => true,
|
||||
|
@ -37,11 +37,11 @@ abstract class AbstractController extends BaseAbstractController
|
||||
$tabs = array();
|
||||
$route = $request->attributes->get('_route');
|
||||
|
||||
$tabs[getlocal('page_localization.tab.translation')] = ($route != 'translations')
|
||||
$tabs[getlocal('Translations')] = ($route != 'translations')
|
||||
? $this->generateUrl('translations')
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_localization.tab.locale')] = ($route != 'locales')
|
||||
$tabs[getlocal('Locales')] = ($route != 'locales')
|
||||
? $this->generateUrl('locales')
|
||||
: '';
|
||||
|
||||
|
@ -47,7 +47,7 @@ class LocaleController extends AbstractController
|
||||
$available_locales = get_available_locales();
|
||||
|
||||
$locales_list = array();
|
||||
foreach($fs_locales as $locale) {
|
||||
foreach ($fs_locales as $locale) {
|
||||
$locales_list[] = array(
|
||||
'code' => $locale,
|
||||
'name' => (isset($locale_names[$locale]) ? $locale_names[$locale] : $locale),
|
||||
|
@ -108,11 +108,11 @@ class TranslationController extends AbstractController
|
||||
$page['formsource'] = $source;
|
||||
$page['availableLocales'] = $locales_list;
|
||||
$page['availableOrders'] = array(
|
||||
array('id' => 'id', 'name' => getlocal('translate.sort.key')),
|
||||
array('id' => 'l1', 'name' => getlocal('translate.sort.lang')),
|
||||
array('id' => 'id', 'name' => getlocal('Key identifier')),
|
||||
array('id' => 'l1', 'name' => getlocal('Source language string')),
|
||||
);
|
||||
$page['formsort'] = $order;
|
||||
$page['title'] = getlocal('page.translate.title');
|
||||
$page['title'] = getlocal('Translations');
|
||||
$page['menuid'] = 'translation';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
@ -168,7 +168,7 @@ class TranslationController extends AbstractController
|
||||
$page['target'] = $target;
|
||||
$page['formoriginal'] = isset($lang1[$string_id]) ? $lang1[$string_id] : '<b><unknown></b>';
|
||||
$page['formtranslation'] = $translation;
|
||||
$page['title'] = getlocal('page.translate.title');
|
||||
$page['title'] = getlocal('Translations');
|
||||
$page = array_merge(
|
||||
$page,
|
||||
prepare_menu($operator, false)
|
||||
@ -200,7 +200,7 @@ class TranslationController extends AbstractController
|
||||
|
||||
$translation = $request->request->get('translation');
|
||||
if (!$translation) {
|
||||
$errors[] = no_field("form.field.translation");
|
||||
$errors[] = no_field("Translation");
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
@ -213,7 +213,7 @@ class TranslationController extends AbstractController
|
||||
save_message($target, $string_id, $translation);
|
||||
|
||||
$page['saved'] = true;
|
||||
$page['title'] = getlocal("page.translate.title");
|
||||
$page['title'] = getlocal("Translations");
|
||||
$page = array_merge(
|
||||
$page,
|
||||
prepare_menu($operator, false)
|
||||
|
@ -58,8 +58,8 @@ class LoginController extends AbstractController
|
||||
}
|
||||
|
||||
$page['localeLinks'] = get_locale_links();
|
||||
$page['title'] = getlocal('page_login.title');
|
||||
$page['headertitle'] = getlocal('app.title');
|
||||
$page['title'] = getlocal('Login');
|
||||
$page['headertitle'] = getlocal('Mibew Messenger');
|
||||
$page['show_small_login'] = false;
|
||||
$page['fixedwrap'] = true;
|
||||
|
||||
@ -103,9 +103,9 @@ class LoginController extends AbstractController
|
||||
return $this->redirect($target);
|
||||
} else {
|
||||
if (operator_is_disabled($operator)) {
|
||||
$errors[] = getlocal('page_login.operator.disabled');
|
||||
$errors[] = getlocal('Your account is temporarily blocked. Please contact system administrator.');
|
||||
} else {
|
||||
$errors[] = getlocal("page_login.error");
|
||||
$errors[] = getlocal("Entered login/password is incorrect");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ class MailTemplateController extends AbstractController
|
||||
$page['formaction'] = $this->generateUrl('mail_templates');
|
||||
$page['mailTemplates'] = $this->getMailTemplatesList($lang);
|
||||
$page['formlang'] = $lang;
|
||||
$page['title'] = getlocal('mail_template.title');
|
||||
$page['title'] = getlocal('Mail templates');
|
||||
$page['menuid'] = 'mail_templates';
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
@ -95,7 +95,7 @@ class MailTemplateController extends AbstractController
|
||||
'mail_template_edit',
|
||||
array('name' => $template_name)
|
||||
);
|
||||
$page['title'] = getlocal('mail_template.title');
|
||||
$page['title'] = getlocal('Mail templates');
|
||||
$page['menuid'] = 'mail_templates';
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
@ -121,12 +121,12 @@ class MailTemplateController extends AbstractController
|
||||
|
||||
$subject = $request->request->get('subject');
|
||||
if (!$subject) {
|
||||
$errors[] = no_field('form.field.mail_template_subject');
|
||||
$errors[] = no_field('Mail subject');
|
||||
}
|
||||
|
||||
$body = $request->request->get('body');
|
||||
if (!$body) {
|
||||
$errors[] = no_field('form.field.mail_template_body');
|
||||
$errors[] = no_field('Mail body');
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
|
@ -40,19 +40,19 @@ abstract class AbstractController extends BaseController
|
||||
$args = array('operator_id' => $operator_id);
|
||||
|
||||
if ($operator_id) {
|
||||
$tabs[getlocal('page_agent.tab.main')] = ($route != 'operator_edit')
|
||||
$tabs[getlocal('General')] = ($route != 'operator_edit')
|
||||
? $this->generateUrl('operator_edit', $args)
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_agent.tab.avatar')] = ($route != 'operator_avatar')
|
||||
$tabs[getlocal('Photo')] = ($route != 'operator_avatar')
|
||||
? $this->generateUrl('operator_avatar', $args)
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_agent.tab.groups')] = ($route != 'operator_groups')
|
||||
$tabs[getlocal('Groups')] = ($route != 'operator_groups')
|
||||
? $this->generateUrl('operator_groups', $args)
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_agent.tab.permissions')] = ($route != 'operator_permissions')
|
||||
$tabs[getlocal('Permissions')] = ($route != 'operator_permissions')
|
||||
? $this->generateUrl('operator_permissions', $args)
|
||||
: '';
|
||||
}
|
||||
|
@ -59,9 +59,9 @@ class AvatarController extends AbstractController
|
||||
$page['avatar'] = $op['vcavatar'];
|
||||
$page['currentop'] = $op
|
||||
? get_operator_name($op) . ' (' . $op['vclogin'] . ')'
|
||||
: getlocal('not_found');
|
||||
: getlocal('-not found-');
|
||||
$page['canmodify'] = $can_modify ? '1' : '';
|
||||
$page['title'] = getlocal('page_avatar.title');
|
||||
$page['title'] = getlocal('Upload photo');
|
||||
$page['menuid'] = ($operator['operatorid'] == $op_id) ? 'profile' : 'operators';
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
@ -107,9 +107,9 @@ class AvatarController extends AbstractController
|
||||
$file_size = $file->getSize();
|
||||
|
||||
if ($file_size == 0 || $file_size > Settings::get('max_uploaded_file_size')) {
|
||||
$errors[] = failed_uploading_file($orig_filename, "errors.file.size.exceeded");
|
||||
$errors[] = failed_uploading_file($orig_filename, "Uploaded file size exceeded");
|
||||
} elseif (!in_array($ext, $valid_types)) {
|
||||
$errors[] = failed_uploading_file($orig_filename, "errors.invalid.file.type");
|
||||
$errors[] = failed_uploading_file($orig_filename, "Invalid file type");
|
||||
} else {
|
||||
// Remove avatar if it already exists
|
||||
$avatar_local_dir = MIBEW_FS_ROOT . '/files/avatar/';
|
||||
@ -123,7 +123,7 @@ class AvatarController extends AbstractController
|
||||
$file->move($avatar_local_dir, $new_file_name);
|
||||
$avatar = MIBEW_WEB_ROOT . "/files/avatar/$new_file_name";
|
||||
} catch (Exception $e) {
|
||||
$errors[] = failed_uploading_file($orig_filename, "errors.file.move.error");
|
||||
$errors[] = failed_uploading_file($orig_filename, "Error moving file");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -60,7 +60,7 @@ class GroupsController extends AbstractController
|
||||
|
||||
$page['currentop'] = $op
|
||||
? get_operator_name($op) . ' (' . $op['vclogin'] . ')'
|
||||
: getlocal('not_found');
|
||||
: getlocal('-not found-');
|
||||
$page['canmodify'] = $can_modify ? '1' : '';
|
||||
|
||||
// Get IDs of groups the operator belongs to.
|
||||
@ -82,7 +82,7 @@ class GroupsController extends AbstractController
|
||||
}
|
||||
|
||||
$page['stored'] = $request->query->has('stored');
|
||||
$page['title'] = getlocal('operator.groups.title');
|
||||
$page['title'] = getlocal('Operator groups');
|
||||
$page['menuid'] = ($operator['operatorid'] == $op_id) ? 'profile' : 'operators';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
|
@ -74,17 +74,17 @@ class ManagementController extends AbstractController
|
||||
$page['allowedAgents'] = $operators_list;
|
||||
$page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator);
|
||||
$page['availableOrders'] = array(
|
||||
array('id' => 'login', 'name' => getlocal('page_agents.login')),
|
||||
array('id' => 'localename', 'name' => getlocal('page_agents.agent_name')),
|
||||
array('id' => 'commonname', 'name' => getlocal('page_agents.commonname')),
|
||||
array('id' => 'lastseen', 'name' => getlocal('page_agents.status')),
|
||||
array('id' => 'login', 'name' => getlocal('Login')),
|
||||
array('id' => 'localename', 'name' => getlocal('Name')),
|
||||
array('id' => 'commonname', 'name' => getlocal('International name')),
|
||||
array('id' => 'lastseen', 'name' => getlocal('Last active')),
|
||||
);
|
||||
$page['availableDirections'] = array(
|
||||
array('id' => 'desc', 'name' => getlocal('page_agents.sortdirection.desc')),
|
||||
array('id' => 'asc', 'name' => getlocal('page_agents.sortdirection.asc')),
|
||||
array('id' => 'desc', 'name' => getlocal('descending')),
|
||||
array('id' => 'asc', 'name' => getlocal('ascending')),
|
||||
);
|
||||
|
||||
$page['title'] = getlocal('page_agents.title');
|
||||
$page['title'] = getlocal('Operators');
|
||||
$page['menuid'] = 'operators';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
|
||||
@ -108,13 +108,13 @@ class ManagementController extends AbstractController
|
||||
$errors = array();
|
||||
|
||||
if ($operator_id == $current_operator['operatorid']) {
|
||||
$errors[] = getlocal('page_agents.error.cannot_remove_self');
|
||||
$errors[] = getlocal('Cannot remove self.');
|
||||
} else {
|
||||
$operator = operator_by_id($operator_id);
|
||||
if (!$operator) {
|
||||
throw new NotFoundException('The operator is not found.');
|
||||
} elseif ($operator['vclogin'] == 'admin') {
|
||||
$errors[] = getlocal("page_agents.error.cannot_remove_admin");
|
||||
$errors[] = getlocal("Cannot remove operator \"admin\".");
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,13 +149,13 @@ class ManagementController extends AbstractController
|
||||
$errors = array();
|
||||
|
||||
if ($operator_id == $current_operator['operatorid']) {
|
||||
$errors[] = getlocal('page_agents.cannot.disable.self');
|
||||
$errors[] = getlocal('Cannot disable self.');
|
||||
} else {
|
||||
$operator = operator_by_id($operator_id);
|
||||
if (!$operator) {
|
||||
throw new NotFoundException('The operator is not found.');
|
||||
} elseif ($operator['vclogin'] == 'admin') {
|
||||
$errors[] = getlocal('page_agents.cannot.disable.admin');
|
||||
$errors[] = getlocal('Cannot disable "admin".');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ class PermissionsController extends AbstractController
|
||||
// Check if the target operator exists
|
||||
$page['currentop'] = $op
|
||||
? get_operator_name($op) . ' (' . $op['vclogin'] . ')'
|
||||
: getlocal('not_found');
|
||||
: getlocal('-not found-');
|
||||
|
||||
// Build list of permissions which belongs to the target operator.
|
||||
$checked_permissions = array();
|
||||
@ -72,7 +72,7 @@ class PermissionsController extends AbstractController
|
||||
}
|
||||
|
||||
$page['stored'] = $request->query->has('stored');
|
||||
$page['title'] = getlocal('permissions.title');
|
||||
$page['title'] = getlocal('Permissions');
|
||||
$page['menuid'] = ($operator['operatorid'] == $op_id) ? 'profile' : 'operators';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
|
@ -59,7 +59,7 @@ class ProfileController extends AbstractController
|
||||
$no_password = check_password_hash($operator['vclogin'], '', $operator['vcpassword'])
|
||||
&& !$request->query->has('stored');
|
||||
if ($no_password) {
|
||||
$page['errors'][] = getlocal('my_settings.error.no_password');
|
||||
$page['errors'][] = getlocal('No Password set for the Administrator');
|
||||
}
|
||||
|
||||
$page['formlogin'] = $op['vclogin'];
|
||||
@ -94,7 +94,7 @@ class ProfileController extends AbstractController
|
||||
$page['canmodify'] = $can_modify ? '1' : '';
|
||||
$page['canchangelogin'] = is_capable(CAN_ADMINISTRATE, $operator);
|
||||
$page['needChangePassword'] = check_password_hash($operator['vclogin'], '', $operator['vcpassword']);
|
||||
$page['title'] = getlocal('page_agent.title');
|
||||
$page['title'] = getlocal('Operator details');
|
||||
$page['menuid'] = ($op_id == $operator['operatorid']) ? 'profile' : 'operators';
|
||||
$page['requirePassword'] = (!$op_id || $page['needChangePassword']);
|
||||
$page['formaction'] = $request->getBaseUrl() . $request->getPathInfo();
|
||||
@ -133,33 +133,33 @@ class ProfileController extends AbstractController
|
||||
$code = $request->request->get('code');
|
||||
|
||||
if (!$local_name) {
|
||||
$errors[] = no_field('form.field.agent_name');
|
||||
$errors[] = no_field('Name');
|
||||
}
|
||||
|
||||
if (!$common_name) {
|
||||
$errors[] = no_field('form.field.agent_commonname');
|
||||
$errors[] = no_field('International name (Latin)');
|
||||
}
|
||||
|
||||
if (!$login) {
|
||||
$errors[] = no_field('form.field.login');
|
||||
$errors[] = no_field('Login');
|
||||
} elseif (!preg_match("/^[\w_\.]+$/", $login)) {
|
||||
$errors[] = getlocal('page_agent.error.wrong_login');
|
||||
$errors[] = getlocal('Login should contain only latin characters, numbers and underscore symbol.');
|
||||
}
|
||||
|
||||
if (!$email || !is_valid_email($email)) {
|
||||
$errors[] = wrong_field('form.field.mail');
|
||||
$errors[] = wrong_field('E-mail');
|
||||
}
|
||||
|
||||
if ($code && (!preg_match("/^[A-Za-z0-9_]+$/", $code))) {
|
||||
$errors[] = getlocal('page_agent.error.wrong_agent_code');
|
||||
$errors[] = getlocal('Code should contain only latin characters, numbers and underscore symbol.');
|
||||
}
|
||||
|
||||
if (!$op_id && !$password) {
|
||||
$errors[] = no_field('form.field.password');
|
||||
$errors[] = no_field('Password');
|
||||
}
|
||||
|
||||
if ($password != $password_confirm) {
|
||||
$errors[] = getlocal('my_settings.error.password_match');
|
||||
$errors[] = getlocal('Entered passwords do not match');
|
||||
}
|
||||
|
||||
$existing_operator = operator_by_login($login);
|
||||
@ -168,7 +168,7 @@ class ProfileController extends AbstractController
|
||||
&& $existing_operator
|
||||
&& $op_id != $existing_operator['operatorid']);
|
||||
if ($duplicate_login) {
|
||||
$errors[] = getlocal('page_agent.error.duplicate_login');
|
||||
$errors[] = getlocal('Please choose another login because an operator with that login is already registered in the system.');
|
||||
}
|
||||
|
||||
// Check if operator with specified email already exists in the database.
|
||||
@ -181,7 +181,7 @@ class ProfileController extends AbstractController
|
||||
&& $existing_operator
|
||||
&& $op_id != $existing_operator['operatorid']);
|
||||
if ($duplicate_email) {
|
||||
$errors[] = getlocal('page_agent.error.duplicate_email');
|
||||
$errors[] = getlocal('Please choose another email because an operator with that email is already registered in the system.');
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
|
@ -42,8 +42,8 @@ class PasswordRecoveryController extends AbstractController
|
||||
|
||||
$page = array(
|
||||
'version' => MIBEW_VERSION,
|
||||
'title' => getlocal('restore.title'),
|
||||
'headertitle' => getlocal('app.title'),
|
||||
'title' => getlocal('Trouble Accessing Your Account?'),
|
||||
'headertitle' => getlocal('Mibew Messenger'),
|
||||
'show_small_login' => true,
|
||||
'fixedwrap' => true,
|
||||
'errors' => array(),
|
||||
@ -57,7 +57,7 @@ class PasswordRecoveryController extends AbstractController
|
||||
? operator_by_email($login_or_email)
|
||||
: operator_by_login($login_or_email);
|
||||
if (!$to_restore) {
|
||||
$page['errors'][] = getlocal('no_such_operator');
|
||||
$page['errors'][] = getlocal('No such Operator');
|
||||
}
|
||||
|
||||
$email = $to_restore['vcemail'];
|
||||
@ -128,8 +128,8 @@ class PasswordRecoveryController extends AbstractController
|
||||
$page = array(
|
||||
'version' => MIBEW_VERSION,
|
||||
'showform' => true,
|
||||
'title' => getlocal('resetpwd.title'),
|
||||
'headertitle' => getlocal('app.title'),
|
||||
'title' => getlocal('Change your password'),
|
||||
'headertitle' => getlocal('Mibew Messenger'),
|
||||
'show_small_login' => true,
|
||||
'fixedwrap' => true,
|
||||
'errors' => array(),
|
||||
@ -166,11 +166,11 @@ class PasswordRecoveryController extends AbstractController
|
||||
$password_confirm = $request->request->get('passwordConfirm');
|
||||
|
||||
if (!$password) {
|
||||
$page['errors'][] = no_field('form.field.password');
|
||||
$page['errors'][] = no_field('Password');
|
||||
}
|
||||
|
||||
if ($password != $password_confirm) {
|
||||
$page['errors'][] = getlocal('my_settings.error.password_match');
|
||||
$page['errors'][] = getlocal('Entered passwords do not match');
|
||||
}
|
||||
|
||||
if (count($page['errors']) == 0) {
|
||||
|
@ -42,15 +42,15 @@ abstract class AbstractController extends BaseController
|
||||
$performance = $route == 'settings_performance' || $route == 'settings_performance_save';
|
||||
|
||||
|
||||
$tabs[getlocal('page_settings.tab.main')] = (!$common)
|
||||
$tabs[getlocal('General')] = (!$common)
|
||||
? $this->generateUrl('settings_common')
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_settings.tab.features')] = (!$features)
|
||||
$tabs[getlocal('Optional Services')] = (!$features)
|
||||
? $this->generateUrl('settings_features')
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('page_settings.tab.performance')] = (!$performance)
|
||||
$tabs[getlocal('Performance')] = (!$performance)
|
||||
? $this->generateUrl('settings_performance')
|
||||
: '';
|
||||
|
||||
|
@ -104,7 +104,7 @@ class CommonController extends AbstractController
|
||||
array('cron_key' => $params['cron_key']),
|
||||
UrlGeneratorInterface::ABSOLUTE_URL
|
||||
);
|
||||
$page['title'] = getlocal('settings.title');
|
||||
$page['title'] = getlocal('Messenger settings');
|
||||
$page['menuid'] = 'settings';
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
@ -152,7 +152,7 @@ class CommonController extends AbstractController
|
||||
}
|
||||
|
||||
if ($params['email'] && !is_valid_email($params['email'])) {
|
||||
$errors[] = getlocal('settings.wrong.email');
|
||||
$errors[] = getlocal('Enter a valid email address');
|
||||
}
|
||||
|
||||
if ($params['geolinkparams']) {
|
||||
@ -170,7 +170,7 @@ class CommonController extends AbstractController
|
||||
}
|
||||
|
||||
if (preg_match("/^[0-9A-Za-z]*$/", $params['cron_key']) == 0) {
|
||||
$errors[] = getlocal('settings.wrong.cronkey');
|
||||
$errors[] = getlocal('Use only Latin letters(upper and lower case) and numbers in cron key.');
|
||||
}
|
||||
|
||||
// Load styles configs
|
||||
|
@ -54,7 +54,7 @@ class FeaturesController extends AbstractController
|
||||
|
||||
$page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator);
|
||||
$page['stored'] = $request->query->get('stored');
|
||||
$page['title'] = getlocal('settings.title');
|
||||
$page['title'] = getlocal('Messenger settings');
|
||||
$page['menuid'] = 'settings';
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
|
@ -86,7 +86,7 @@ class PerformanceController extends AbstractController
|
||||
|
||||
$page['enabletracking'] = Settings::get('enabletracking');
|
||||
$page['stored'] = $request->query->get('stored');
|
||||
$page['title'] = getlocal("settings.title");
|
||||
$page['title'] = getlocal("Messenger settings");
|
||||
$page['menuid'] = "settings";
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
@ -112,59 +112,59 @@ class PerformanceController extends AbstractController
|
||||
|
||||
$params['online_timeout'] = $request->request->get('onlinetimeout');
|
||||
if (!is_numeric($params['online_timeout'])) {
|
||||
$errors[] = wrong_field("settings.onlinetimeout");
|
||||
$errors[] = wrong_field("Operator online time threshold");
|
||||
}
|
||||
|
||||
$params['updatefrequency_operator'] = $request->request->get('frequencyoperator');
|
||||
if (!is_numeric($params['updatefrequency_operator'])) {
|
||||
$errors[] = wrong_field("settings.frequencyoperator");
|
||||
$errors[] = wrong_field("Operator's console refresh time");
|
||||
}
|
||||
|
||||
$params['updatefrequency_chat'] = $request->request->get('frequencychat');
|
||||
if (!is_numeric($params['updatefrequency_chat'])) {
|
||||
$errors[] = wrong_field("settings.frequencychat");
|
||||
$errors[] = wrong_field("Chat refresh time");
|
||||
}
|
||||
|
||||
$params['max_connections_from_one_host'] = $request->request->get('onehostconnections');
|
||||
if (!is_numeric($params['max_connections_from_one_host'])) {
|
||||
$errors[] = getlocal("settings.wrong.onehostconnections");
|
||||
$errors[] = getlocal("\"Max number of threads\" field should be a number");
|
||||
}
|
||||
|
||||
$params['thread_lifetime'] = $request->request->get('threadlifetime');
|
||||
if (!is_numeric($params['thread_lifetime'])) {
|
||||
$errors[] = getlocal("settings.wrong.threadlifetime");
|
||||
$errors[] = getlocal("\"Thread lifetime\" field should be a number");
|
||||
}
|
||||
|
||||
$params['statistics_aggregation_interval'] = $request->request->get('statistics_aggregation_interval');
|
||||
if (!is_numeric($params['statistics_aggregation_interval'])) {
|
||||
$errors[] = wrong_field("settings.statistics_aggregation_interval");
|
||||
$errors[] = wrong_field("Statistics aggregation interval");
|
||||
}
|
||||
|
||||
if (Settings::get('enabletracking')) {
|
||||
$params['updatefrequency_tracking'] = $request->request->get('frequencytracking');
|
||||
if (!is_numeric($params['updatefrequency_tracking'])) {
|
||||
$errors[] = wrong_field("settings.frequencytracking");
|
||||
$errors[] = wrong_field("Tracking refresh time");
|
||||
}
|
||||
|
||||
$params['visitors_limit'] = $request->request->get('visitorslimit');
|
||||
if (!is_numeric($params['visitors_limit'])) {
|
||||
$errors[] = wrong_field("settings.visitorslimit");
|
||||
$errors[] = wrong_field("Limit for tracked visitors list");
|
||||
}
|
||||
|
||||
$params['invitation_lifetime'] = $request->request->get('invitationlifetime');
|
||||
if (!is_numeric($params['invitation_lifetime'])) {
|
||||
$errors[] = wrong_field("settings.invitationlifetime");
|
||||
$errors[] = wrong_field("Invitation lifetime");
|
||||
}
|
||||
|
||||
$params['tracking_lifetime'] = $request->request->get('trackinglifetime');
|
||||
if (!is_numeric($params['tracking_lifetime'])) {
|
||||
$errors[] = wrong_field("settings.trackinglifetime");
|
||||
$errors[] = wrong_field("Track lifetime");
|
||||
}
|
||||
}
|
||||
|
||||
$params['max_uploaded_file_size'] = $request->request->get('maxuploadedfilesize');
|
||||
if (!is_numeric($params['max_uploaded_file_size'])) {
|
||||
$errors[] = wrong_field("settings.maxuploadedfilesize");
|
||||
$errors[] = wrong_field("Maximum size of uploaded files");
|
||||
}
|
||||
|
||||
if (count($errors) != 0) {
|
||||
|
@ -61,7 +61,7 @@ class StatisticsController extends AbstractController
|
||||
UrlGeneratorInterface::ABSOLUTE_URL
|
||||
);
|
||||
$page['pageDescription'] = getlocal(
|
||||
'statistics.description.full',
|
||||
'From this page you can generate a variety of usage reports. Last time statistics was calculated {0}. You can calculate it <a href="{1}" target="_blank">manually</a>.',
|
||||
array(
|
||||
date_to_text(Settings::get('_last_cron_run')),
|
||||
$cron_uri,
|
||||
@ -76,7 +76,7 @@ class StatisticsController extends AbstractController
|
||||
$start = $time_interval['start'];
|
||||
$end = $time_interval['end'];
|
||||
if ($start > $end) {
|
||||
$page['errors'][] = getlocal('statistics.wrong.dates');
|
||||
$page['errors'][] = getlocal('You have selected From date after Till date');
|
||||
}
|
||||
|
||||
$page = array_merge(
|
||||
@ -97,7 +97,7 @@ class StatisticsController extends AbstractController
|
||||
}
|
||||
|
||||
$page['showresults'] = count($page['errors']) == 0;
|
||||
$page['title'] = getlocal("statistics.title");
|
||||
$page['title'] = getlocal("Statistics");
|
||||
$page['menuid'] = "statistics";
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
$page['tabs'] = $this->buildTabs($request);
|
||||
@ -118,16 +118,16 @@ class StatisticsController extends AbstractController
|
||||
$args = $request->query->all();
|
||||
$type = $request->attributes->get('type');
|
||||
|
||||
$tabs[getlocal('report.bydate.title')] = $type != self::TYPE_BY_DATE
|
||||
$tabs[getlocal('Usage statistics for each date')] = $type != self::TYPE_BY_DATE
|
||||
? $this->generateUrl('statistics', ($args + array('type' => self::TYPE_BY_DATE)))
|
||||
: '';
|
||||
|
||||
$tabs[getlocal('report.byoperator.title')] = $type != self::TYPE_BY_OPERATOR
|
||||
$tabs[getlocal('Threads by operator')] = $type != self::TYPE_BY_OPERATOR
|
||||
? $this->generateUrl('statistics', ($args + array('type' => self::TYPE_BY_OPERATOR)))
|
||||
: '';
|
||||
|
||||
if (Settings::get('enabletracking')) {
|
||||
$tabs[getlocal('report.bypage.title')] = $type != self::TYPE_BY_PAGE
|
||||
$tabs[getlocal('Chat threads by page')] = $type != self::TYPE_BY_PAGE
|
||||
? $this->generateUrl('statistics', ($args + array('type' => self::TYPE_BY_PAGE)))
|
||||
: '';
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ class StyleController extends AbstractController
|
||||
$page['formaction'] = $request->getBaseUrl() . $request->getPathInfo();
|
||||
$page['availablePreviews'] = $style_list;
|
||||
$page['screenshotsList'] = $screenshots;
|
||||
$page['title'] = getlocal('page.preview.title');
|
||||
$page['title'] = getlocal('Site style');
|
||||
$page['menuid'] = 'styles';
|
||||
|
||||
$page = array_merge($page, prepare_menu($operator));
|
||||
@ -78,16 +78,16 @@ class StyleController extends AbstractController
|
||||
$tabs = array();
|
||||
$type = $request->attributes->get('type');
|
||||
|
||||
$tabs[getlocal("page_settings.tab.page_themes")] = ($type != self::TYPE_PAGE)
|
||||
$tabs[getlocal("Operator pages themes preview")] = ($type != self::TYPE_PAGE)
|
||||
? $this->generateUrl('style_preview', array('type' => self::TYPE_PAGE))
|
||||
: '';
|
||||
|
||||
$tabs[getlocal("page_settings.tab.themes")] = ($type != self::TYPE_CHAT)
|
||||
$tabs[getlocal("Chat themes preview")] = ($type != self::TYPE_CHAT)
|
||||
? $this->generateUrl('style_preview', array('type' => self::TYPE_CHAT))
|
||||
: '';
|
||||
|
||||
if (Settings::get('enabletracking')) {
|
||||
$tabs[getlocal("page_settings.tab.invitationthemes")] = ($type != self::TYPE_INVITATION)
|
||||
$tabs[getlocal("Invitation themes preview")] = ($type != self::TYPE_INVITATION)
|
||||
? $this->generateUrl('style_preview', array('type' => self::TYPE_INVITATION))
|
||||
: '';
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ class UpdatesController extends AbstractController
|
||||
'localizations' => get_available_locales(),
|
||||
'phpVersion' => phpversion(),
|
||||
'version' => MIBEW_VERSION,
|
||||
'title' => getlocal("updates.title"),
|
||||
'title' => getlocal("Updates"),
|
||||
'menuid' => "updates",
|
||||
'errors' => array(),
|
||||
);
|
||||
|
@ -67,7 +67,7 @@ class UsersController extends AbstractController
|
||||
$page['coreStyles.trackedVisitorWindowParams'] = $style_config['tracked']['visitor_window_params'];
|
||||
$page['coreStyles.banWindowParams'] = $style_config['ban']['window_params'];
|
||||
|
||||
$page['title'] = getlocal("clients.title");
|
||||
$page['title'] = getlocal("List of visitors waiting");
|
||||
$page['menuid'] = "users";
|
||||
|
||||
// Get additional plugins data
|
||||
|
@ -119,7 +119,7 @@ class WidgetController extends AbstractController
|
||||
'operatorName' => htmlspecialchars($operator_name),
|
||||
'avatarUrl' => htmlspecialchars($operator['vcavatar']),
|
||||
'threadUrl' => $this->generateUrl('chat_user_invitation'),
|
||||
'acceptCaption' => getlocal('invitation.accept.caption'),
|
||||
'acceptCaption' => getlocal('Answer'),
|
||||
);
|
||||
|
||||
$_SESSION['invitation_threadid'] = $thread->id;
|
||||
|
@ -503,7 +503,7 @@ class ThreadProcessor extends ClientSideProcessor
|
||||
if ($email) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.visitor.email', array($email), CURRENT_LOCALE, true)
|
||||
getlocal('E-Mail: {0}', array($email), CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
|
||||
@ -558,7 +558,7 @@ class ThreadProcessor extends ClientSideProcessor
|
||||
unset($_SESSION['mibew_captcha']);
|
||||
if (empty($original) || empty($captcha) || $captcha != $original) {
|
||||
throw new ThreadProcessorException(
|
||||
getlocal('errors.captcha'),
|
||||
getlocal('The letters you typed don\'t match the letters that were shown in the picture.'),
|
||||
ThreadProcessorException::ERROR_WRONG_CAPTCHA
|
||||
);
|
||||
}
|
||||
@ -573,7 +573,7 @@ class ThreadProcessor extends ClientSideProcessor
|
||||
|
||||
if (!is_valid_email($email)) {
|
||||
throw new ThreadProcessorException(
|
||||
wrong_field("form.field.email"),
|
||||
wrong_field("Your email"),
|
||||
ThreadProcessorException::ERROR_WRONG_EMAIL
|
||||
);
|
||||
}
|
||||
@ -617,19 +617,19 @@ class ThreadProcessor extends ClientSideProcessor
|
||||
if ($referrer) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.came.from', array($referrer), CURRENT_LOCALE, true)
|
||||
getlocal('Vistor came from page {0}', array($referrer), CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
if ($email) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.visitor.email', array($email), CURRENT_LOCALE, true)
|
||||
getlocal('E-Mail: {0}', array($email), CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
if ($info) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.visitor.info', array($info), CURRENT_LOCALE, true)
|
||||
getlocal('Info: {0}', array($info), CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
$thread->postMessage(Thread::KIND_USER, $message, array('name' => $name));
|
||||
|
@ -364,7 +364,7 @@ class Thread
|
||||
// Send message
|
||||
$thread->postMessage(
|
||||
self::KIND_EVENTS,
|
||||
getlocal('chat.status.user.reopenedthread', null, $thread->locale, true)
|
||||
getlocal('Visitor joined chat again', null, $thread->locale, true)
|
||||
);
|
||||
|
||||
return $thread;
|
||||
@ -601,7 +601,7 @@ class Thread
|
||||
if ($this->state == self::STATE_CHATTING) {
|
||||
// Send message to user
|
||||
$message_to_post = getlocal(
|
||||
'chat.status.operator.dead',
|
||||
'Your operator has connection issues. We have moved you to a priorty position in the queue. Sorry for keeping you waiting.',
|
||||
null,
|
||||
$this->locale,
|
||||
true
|
||||
@ -627,7 +627,7 @@ class Thread
|
||||
|
||||
// And send a message to operator
|
||||
$message_to_post = getlocal(
|
||||
'chat.status.user.dead',
|
||||
'Visitor closed chat window',
|
||||
null,
|
||||
$this->locale,
|
||||
true
|
||||
@ -710,14 +710,14 @@ class Thread
|
||||
// Prepare message
|
||||
if ($this->nextAgent == $operator['operatorid']) {
|
||||
$message_to_post = getlocal(
|
||||
"chat.status.operator.changed",
|
||||
"Operator <strong>{0}</strong> changed operator <strong>{1}</strong>",
|
||||
array($operator_name, $this->agentName),
|
||||
$this->locale,
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$message_to_post = getlocal(
|
||||
"chat.status.operator.returned",
|
||||
"Operator {0} is back",
|
||||
array($operator_name),
|
||||
$this->locale,
|
||||
true
|
||||
@ -857,7 +857,7 @@ class Thread
|
||||
$this->postMessage(
|
||||
self::KIND_EVENTS,
|
||||
getlocal(
|
||||
"chat.status.user.left",
|
||||
"Visitor {0} left the chat",
|
||||
array($this->userName),
|
||||
$this->locale,
|
||||
true
|
||||
@ -868,7 +868,7 @@ class Thread
|
||||
$this->postMessage(
|
||||
self::KIND_FOR_AGENT,
|
||||
getlocal(
|
||||
'chat.visitor.invitation.canceled',
|
||||
'Operator canceled invitation',
|
||||
null,
|
||||
$this->locale,
|
||||
true
|
||||
@ -878,7 +878,7 @@ class Thread
|
||||
$this->postMessage(
|
||||
self::KIND_EVENTS,
|
||||
getlocal(
|
||||
"chat.status.operator.left",
|
||||
"Operator {0} left the chat",
|
||||
array($this->agentName),
|
||||
$this->locale,
|
||||
true
|
||||
@ -936,14 +936,14 @@ class Thread
|
||||
if ($this->state == self::STATE_WAITING) {
|
||||
if ($operator['operatorid'] != $this->agentId) {
|
||||
$message = getlocal(
|
||||
"chat.status.operator.changed",
|
||||
"Operator <strong>{0}</strong> changed operator <strong>{1}</strong>",
|
||||
array($operator_name, $this->agentName),
|
||||
$this->locale,
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$message = getlocal(
|
||||
"chat.status.operator.returned",
|
||||
"Operator {0} is back",
|
||||
array($operator_name),
|
||||
$this->locale,
|
||||
true
|
||||
@ -951,7 +951,7 @@ class Thread
|
||||
}
|
||||
} else {
|
||||
$message = getlocal(
|
||||
"chat.status.operator.joined",
|
||||
"Operator {0} joined the chat",
|
||||
array($operator_name),
|
||||
$this->locale,
|
||||
true
|
||||
@ -962,7 +962,7 @@ class Thread
|
||||
if ($operator['operatorid'] != $this->agentId) {
|
||||
$take_thread = true;
|
||||
$message = getlocal(
|
||||
"chat.status.operator.changed",
|
||||
"Operator <strong>{0}</strong> changed operator <strong>{1}</strong>",
|
||||
array($operator_name, $this->agentName),
|
||||
$this->locale,
|
||||
true
|
||||
@ -1013,7 +1013,7 @@ class Thread
|
||||
|
||||
// Send message about renaming
|
||||
$message = getlocal(
|
||||
"chat.status.user.changedname",
|
||||
"The visitor changed their name <strong>{0}</strong> to <strong>{1}</strong>",
|
||||
array($old_name, $new_name),
|
||||
$this->locale,
|
||||
true
|
||||
|
@ -72,16 +72,16 @@ function set_form_date($utime, $prefix)
|
||||
function date_to_text($unixtime)
|
||||
{
|
||||
if ($unixtime < 60 * 60 * 24 * 30) {
|
||||
return getlocal("time.never");
|
||||
return getlocal("Never");
|
||||
}
|
||||
|
||||
$then = getdate($unixtime);
|
||||
$now = getdate();
|
||||
|
||||
if ($then['yday'] == $now['yday'] && $then['year'] == $now['year']) {
|
||||
return getlocal("time.today.at", array(format_date($unixtime, 'time')));
|
||||
return getlocal("Today at {0}", array(format_date($unixtime, 'time')));
|
||||
} elseif (($then['yday'] + 1) == $now['yday'] && $then['year'] == $now['year']) {
|
||||
return getlocal("time.yesterday.at", array(format_date($unixtime, 'time')));
|
||||
return getlocal("Yesterday at {0}", array(format_date($unixtime, 'time')));
|
||||
} else {
|
||||
return format_date($unixtime, 'full');
|
||||
}
|
||||
|
@ -803,7 +803,7 @@ function get_localized_string($string, $locale)
|
||||
return get_localized_string($string, 'en');
|
||||
}
|
||||
|
||||
return "!" . $string;
|
||||
return $string;
|
||||
}
|
||||
|
||||
/* prepares for Javascript string */
|
||||
|
@ -201,17 +201,17 @@ function get_plugins_data($page_name)
|
||||
|
||||
function no_field($key)
|
||||
{
|
||||
return getlocal('errors.required', array(getlocal($key)));
|
||||
return getlocal('Please fill "{0}".', array(getlocal($key)));
|
||||
}
|
||||
|
||||
function failed_uploading_file($filename, $key)
|
||||
{
|
||||
return getlocal('errors.failed.uploading.file', array($filename, getlocal($key)));
|
||||
return getlocal('Error uploading file "{0}": {1}.', array($filename, getlocal($key)));
|
||||
}
|
||||
|
||||
function wrong_field($key)
|
||||
{
|
||||
return getlocal('errors.wrong_field', array(getlocal($key)));
|
||||
return getlocal('Please fill "{0}" correctly.', array(getlocal($key)));
|
||||
}
|
||||
|
||||
function add_params($servlet, $params)
|
||||
|
@ -147,7 +147,7 @@ function verifyparam_groupid($param_id, &$errors)
|
||||
if ($group_id) {
|
||||
$group = group_by_id($group_id);
|
||||
if (!$group) {
|
||||
$errors[] = getlocal("page.group.no_such");
|
||||
$errors[] = getlocal("No such group");
|
||||
$group_id = "";
|
||||
}
|
||||
}
|
||||
@ -166,7 +166,7 @@ function get_groups_list()
|
||||
$all_groups = get_all_groups();
|
||||
$result[] = array(
|
||||
'groupid' => '',
|
||||
'vclocalname' => getlocal("page.gen_button.default_group"),
|
||||
'vclocalname' => getlocal("-all operators-"),
|
||||
'level' => 0,
|
||||
);
|
||||
foreach ($all_groups as $g) {
|
||||
|
@ -124,7 +124,7 @@ function get_available_parent_groups($skip_group)
|
||||
$result[] = array(
|
||||
'groupid' => '',
|
||||
'level' => '',
|
||||
'vclocalname' => getlocal("form.field.groupparent.root"),
|
||||
'vclocalname' => getlocal("-none-"),
|
||||
);
|
||||
|
||||
$db = Database::getInstance();
|
||||
|
@ -120,7 +120,7 @@ function invitation_invite($visitor_id, $operator)
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal(
|
||||
'chat.visitor.invitation.sent',
|
||||
'Operator {0} invites visitor at {1} page',
|
||||
array($operator_name, $last_visited_page),
|
||||
CURRENT_LOCALE,
|
||||
true
|
||||
@ -128,7 +128,7 @@ function invitation_invite($visitor_id, $operator)
|
||||
);
|
||||
$thread->postMessage(
|
||||
Thread::KIND_AGENT,
|
||||
getlocal('invitation.message', null, CURRENT_LOCALE, true),
|
||||
getlocal('Hello, how can I help you?', null, CURRENT_LOCALE, true),
|
||||
array(
|
||||
'name' => $operator_name,
|
||||
'operator_id' => $operator['operatorid'],
|
||||
@ -202,7 +202,7 @@ function invitation_reject($visitor_id)
|
||||
if ($thread) {
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.visitor.invitation.rejected', null, CURRENT_LOCALE, true)
|
||||
getlocal('Visitor rejected invitation', null, CURRENT_LOCALE, true)
|
||||
);
|
||||
}
|
||||
|
||||
@ -272,7 +272,7 @@ function invitation_close_old()
|
||||
$thread = Thread::createFromDbInfo($thread_info);
|
||||
$thread->postMessage(
|
||||
Thread::KIND_FOR_AGENT,
|
||||
getlocal('chat.visitor.invitation.ignored', null, $thread->locale, true)
|
||||
getlocal('Visitor ignored invitation and it was closed automatically', null, $thread->locale, true)
|
||||
);
|
||||
unset($thread);
|
||||
}
|
||||
|
@ -572,8 +572,8 @@ function setup_redirect_links(UrlGeneratorInterface $url_generator, $threadid, $
|
||||
$params['nextAgent'] = $agent['operatorid'];
|
||||
$status = $agent['time'] < Settings::get('online_timeout')
|
||||
? ($agent['istatus'] == 0
|
||||
? getlocal("char.redirect.operator.online_suff")
|
||||
: getlocal("char.redirect.operator.away_suff"))
|
||||
? getlocal("(online)")
|
||||
: getlocal("(away)"))
|
||||
: "";
|
||||
$agent_list .= "<li><a href=\"" . $url_generator->generate('chat_operator_redirect', $params)
|
||||
. "\" title=\"" . get_operator_name($agent) . "\">"
|
||||
@ -588,8 +588,8 @@ function setup_redirect_links(UrlGeneratorInterface $url_generator, $threadid, $
|
||||
foreach ($groups as $group) {
|
||||
$params['nextGroup'] = $group['groupid'];
|
||||
$status = group_is_online($group)
|
||||
? getlocal("char.redirect.operator.online_suff")
|
||||
: (group_is_away($group) ? getlocal("char.redirect.operator.away_suff") : "");
|
||||
? getlocal("(online)")
|
||||
: (group_is_away($group) ? getlocal("(away)") : "");
|
||||
$group_list .= "<li><a href=\"" . $url_generator->generate('chat_operator_redirect', $params)
|
||||
. "\" title=\"" . get_group_name($group) . "\">"
|
||||
. get_group_name($group)
|
||||
@ -648,7 +648,7 @@ function prepare_menu($operator, $has_right = true)
|
||||
$result['showMenu'] = true;
|
||||
$result['operator'] = get_operator_name($operator);
|
||||
$result['goOnlineLink'] = getlocal(
|
||||
"menu.goonline",
|
||||
"You are Offline.<br/><a href=\"{0}\">Connect...</a>",
|
||||
array(MIBEW_WEB_ROOT . "/operator/users?nomenu")
|
||||
);
|
||||
if ($has_right) {
|
||||
|
@ -149,7 +149,7 @@ function setup_pagination($items, $default_items_per_page = 15)
|
||||
function generate_pagination($style_path, $pagination, $bottom = true)
|
||||
{
|
||||
$result = getlocal(
|
||||
'tag.pagination.info',
|
||||
'Page {0} of {1}, {2}-{3} from {4}',
|
||||
array(
|
||||
$pagination['page'],
|
||||
$pagination['total'],
|
||||
@ -177,7 +177,7 @@ function generate_pagination($style_path, $pagination, $bottom = true)
|
||||
generate_pagination_image(
|
||||
$style_path,
|
||||
"prevpage",
|
||||
getlocal("tag.pagination.previous")
|
||||
getlocal("previous")
|
||||
)
|
||||
) . PAGINATION_SPACING;
|
||||
}
|
||||
@ -200,7 +200,7 @@ function generate_pagination($style_path, $pagination, $bottom = true)
|
||||
generate_pagination_image(
|
||||
$style_path,
|
||||
"nextpage",
|
||||
getlocal("tag.pagination.next")
|
||||
getlocal("next")
|
||||
)
|
||||
);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,53 +10,53 @@ typeof f===m?f.apply(a):f))+'" alt=""/>\n </a>\n ')}fu
|
||||
m="function",h=this.escapeExpression,s=this;c='\n<div id="top2">\n <div id="logo">\n ';if((n=e["if"].call(a,(n=(n=a&&a.page,null==n||!1===n?n:n.company),null==n||!1===n?n:n.chatLogoURL),{hash:{},inverse:s.program(6,function(a,c){var b,f;b="\n ";if((f=e["if"].call(a,(f=a&&a.page,null==f||!1===f?f:f.mibewHost),{hash:{},inverse:s.program(9,t,c),fn:s.program(7,l,c),data:c}))||0===f)b+=f;return b+"\n "},b),fn:s.program(1,function(a,c){var b,f;b="\n ";if((f=e["if"].call(a,
|
||||
(f=a&&a.page,null==f||!1===f?f:f.mibewHost),{hash:{},inverse:s.program(4,k,c),fn:s.program(2,g,c),data:c}))||0===f)b+=f;return b+"\n "},b),data:b}))||0===n)c+=n;return c+='\n \n <div id="page-title">'+h((n=(n=a&&a.page,null==n||!1===n?n:n.title),typeof n===m?n.apply(a):n))+'</div>\n <div class="clear"> </div>\n </div>\n</div>'});v.chat_avatar=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g=this.escapeExpression;
|
||||
return(c=e["if"].call(a,a&&a.imageLink,{hash:{},inverse:this.program(3,function(a,e){return'<div class="default-avatar"></div>'},b),fn:this.program(1,function(a,c){var b,d;b='<img src="';(d=e.imageLink)?d=d.call(a,{hash:{},data:c}):(d=a&&a.imageLink,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=g(d)+'" border="0" alt="" />'},b),data:b}))||0===c?c:""});v.chat_controls_close=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;
|
||||
d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"chat.window.close_title",k):c.call(a,"l10n","chat.window.close_title",k)))+'"></div>')});v.chat_controls_history=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"page.analysis.userhistory.title",
|
||||
k):c.call(a,"l10n","page.analysis.userhistory.title",k)))+'"></div>')});v.chat_controls_redirect=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k=e.helperMissing,l=this.escapeExpression;return(g=e["if"].call(a,(g=a&&a.user,null==g||!1===g?g:g.canPost),{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){var b,d,s;return b=""+('\n<div class="tpl-image" title="'+l((d=e.l10n||a&&a.l10n,s={hash:{},data:c},d?d.call(a,"chat.window.toolbar.redirect_user",
|
||||
s):k.call(a,"l10n","chat.window.toolbar.redirect_user",s)))+'"></div>\n')},b),data:b}))||0===g?g:""});v.chat_controls_refresh=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"chat.window.toolbar.refresh",k):c.call(a,"l10n","chat.window.toolbar.refresh",k)))+'"></div>')});v.chat_controls_secure_mode=u(function(c,
|
||||
a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];this.merge(e,c.helpers);return'<div class="tpl-image" title="SSL"></div>'});v.chat_controls_send_mail=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"chat.window.toolbar.mail_history",k):c.call(a,"l10n","chat.window.toolbar.mail_history",k)))+'"></div>')});v.chat_controls_sound=
|
||||
u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g=e.helperMissing,k=this.escapeExpression;return(c=e["if"].call(a,a&&a.enabled,{hash:{},inverse:this.program(3,function(a,c){var b,d,h;return b=""+('\n <div class="tpl-image sound-control-off" title="'+k((d=e.l10n||a&&a.l10n,h={hash:{},data:c},d?d.call(a,"chat.window.toolbar.turn_on_sound",h):g.call(a,"l10n","chat.window.toolbar.turn_on_sound",h)))+'"></div>\n')},b),fn:this.program(1,function(a,c){var b,
|
||||
d,h;return b=""+('\n <div class="tpl-image sound-control-on" title="'+k((d=e.l10n||a&&a.l10n,h={hash:{},data:c},d?d.call(a,"chat.window.toolbar.turn_off_sound",h):g.call(a,"l10n","chat.window.toolbar.turn_off_sound",h)))+'"></div>\n')},b),data:b}))||0===c?c:""});v.chat_controls_user_name=u(function(c,a,e,d,b){function g(a,c){var b,d,f,h;return b=""+('\n <div class="user-name-control-input-bg"><input id="user-name-control-input" type="text" size="12" value="'+n((d=(d=a&&a.user,null==d||!1===
|
||||
d?d:d.name),typeof d===t?d.apply(a):d))+'" class="username" /></div>\n <a href="javascript:void(0)" class="user-name-control-set tpl-image" title="'+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"chat.client.changename",h):m.call(a,"l10n","chat.client.changename",h)))+'"></a>\n ')}function k(a,c){var b,d,f,h;return b=""+('\n <a href="javascript:void(0)" title="'+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"chat.client.changename",h):m.call(a,"l10n","chat.client.changename",
|
||||
h)))+'">'+n((d=(d=a&&a.user,null==d||!1===d?d:d.name),typeof d===t?d.apply(a):d))+'</a>\n <a class="user-name-control-change tpl-image" title="'+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"chat.client.changename",h):m.call(a,"l10n","chat.client.changename",h)))+'"></a>\n ')}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var l,t="function",n=this.escapeExpression,m=e.helperMissing,h=this;return(l=e["if"].call(a,(l=a&&a.user,null==l||!1===l?l:l.canChangeName),
|
||||
{hash:{},inverse:h.program(6,function(a,c){var b,d,f,h;return b=""+("\n"+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"chat.client.name",h):m.call(a,"l10n","chat.client.name",h)))+" "+n((d=(d=a&&a.user,null==d||!1===d?d:d.name),typeof d===t?d.apply(a):d))+"\n")},b),fn:h.program(1,function(a,c){var d,b,f;d=""+('\n <span class="user-name-control-prefix">'+n((b=e.l10n||a&&a.l10n,f={hash:{},data:c},b?b.call(a,"chat.client.name",f):m.call(a,"l10n","chat.client.name",f)))+"</span>\n ");
|
||||
if((b=e["if"].call(a,a&&a.nameInput,{hash:{},inverse:h.program(4,k,c),fn:h.program(2,g,c),data:c}))||0===b)d+=b;return d+"\n"},b),data:b}))||0===l?l:""});v.chat_layout=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);d=this.merge(d,c.partials);b=b||{};var g,k,l=e.helperMissing,t=this.escapeExpression;c="\n";if((d=this.invokePartial(d._logo,"_logo",a,e,d,b))||0===d)c+=d;c+='\n\n\n<div id="chat-header">\n <div class="bgc"><div class="bgl"><div class="bgr">\n \n <div id="controls-region"></div>\n </div></div></div>\n</div>\n\n\n<div id="chat">\n <div class="bgl"><div class="bgr"><div class="sdwbgc"><div class="sdwbgl"><div class="sdwbgr">\n ';
|
||||
if((d=e.unless.call(a,(d=a&&a.user,null==d||!1===d?d:d.isAgent),{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){return'\n <div id="avatar-region"></div>\n '},b),data:b}))||0===d)c+=d;return c+='\n \n <div id="messages-region"></div>\n \n <div id="status-region"></div>\n </div></div></div></div></div>\n</div>\n\n\n<div id="message-form-region"></div>\n\n\n<div id="footer">'+t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"chat.window.poweredby",
|
||||
k):l.call(a,"l10n","chat.window.poweredby",k)))+' <a id="poweredByLink" href="http://mibew.org" title="Mibew Community" target="_blank">mibew.org</a></div>'});v.chat_message=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l=this.escapeExpression,t=e.helperMissing;c=""+("<span>"+l((g=e.formatTime||a&&a.formatTime,k={hash:{},data:b},g?g.call(a,a&&a.created,k):t.call(a,"formatTime",a&&a.created,k)))+"</span> \n");if((g=e["if"].call(a,a&&a.name,{hash:{},
|
||||
inverse:this.noop,fn:this.program(1,function(a,c){var b,d;b="<span class='n";(d=e.kindName)?d=d.call(a,{hash:{},data:c}):(d=a&&a.kindName,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);b+=l(d)+"'>";(d=e.name)?d=d.call(a,{hash:{},data:c}):(d=a&&a.name,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=l(d)+"</span>: "},b),data:b}))||0===g)c+=g;c+="\n<span class='m";(g=e.kindName)?g=g.call(a,{hash:{},data:b}):(g=a&&a.kindName,g="function"===typeof g?g.call(a,{hash:{},data:b}):g);
|
||||
c+=l(g)+"'>";if((g=e["if"].call(a,a&&a.allowFormatting,{hash:{},inverse:this.program(5,function(a,c){var d,b;return l((d=e.apply||a&&a.apply,b={hash:{},data:c},d?d.call(a,a&&a.message,"urlReplace, nl2br",b):t.call(a,"apply",a&&a.message,"urlReplace, nl2br",b)))},b),fn:this.program(3,function(a,c){var d,b;return l((d=e.apply||a&&a.apply,b={hash:{},data:c},d?d.call(a,a&&a.message,"urlReplace, nl2br, allowTags",b):t.call(a,"apply",a&&a.message,"urlReplace, nl2br, allowTags",b)))},b),data:b}))||0===g)c+=
|
||||
g;return c+"</span><br/>"});v.chat_message_form=u(function(c,a,e,d,b){function g(a,c){var d,b,f;d=""+('\n <select id="predefined" size="1" class="answer">\n <option>'+n((b=e.l10n||a&&a.l10n,f={hash:{},data:c},b?b.call(a,"chat.window.predefined.select_answer",f):m.call(a,"l10n","chat.window.predefined.select_answer",f)))+"</option>\n ");if((b=e.each.call(a,a&&a.predefinedAnswers,{hash:{},inverse:h.noop,fn:h.program(5,k,c),data:c}))||0===b)d+=b;return d+
|
||||
"\n </select>\n "}function k(a,c){var d,b;return d=""+("\n <option>"+n((b=a&&a["short"],typeof b===t?b.apply(a):b))+"</option>\n ")}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var l,t="function",n=this.escapeExpression,m=e.helperMissing,h=this;c='<div id="message">\n';if((l=e["if"].call(a,(l=a&&a.user,null==l||!1===l?l:l.canPost),{hash:{},inverse:h.noop,fn:h.program(1,function(a,c){return'\n <div class="bgc"><div class="bgl"><div class="bgr">\n <textarea id="message-input" class="message" tabindex="0" rows="4" cols="10"></textarea>\n </div></div></div>\n'},
|
||||
b),data:b}))||0===l)c+=l;c+='\n</div>\n\n<div id="send">\n';if((l=e["if"].call(a,(l=a&&a.user,null==l||!1===l?l:l.canPost),{hash:{},inverse:h.noop,fn:h.program(3,function(a,c){var d,b,f,w;d='\n <div id="postmessage">\n <div id="predefined-wrapper">\n ';if((b=e["if"].call(a,(b=a&&a.user,null==b||!1===b?b:b.isAgent),{hash:{},inverse:h.noop,fn:h.program(4,g,c),data:c}))||0===b)d+=b;return d+='\n </div>\n <a href="javascript:void(0)" id="send-message" title="'+n((f=
|
||||
e.l10n||a&&a.l10n,w={hash:{},data:c},f?f.call(a,"chat.window.send_message",w):m.call(a,"l10n","chat.window.send_message",w)))+'">'+n((f=e.l10n||a&&a.l10n,w={hash:{},data:c},f?f.call(a,"chat.window.send_message_short_and_shortcut",w):m.call(a,"l10n","chat.window.send_message_short_and_shortcut",w)))+"</a>\n </div>\n"},b),data:b}))||0===l)c+=l;return c+'\n</div>\n<div class="clear"></div>'});v.chat_status_base=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||
|
||||
{};c=this.escapeExpression;(e=e.title)?a=e.call(a,{hash:{},data:b}):(e=a&&a.title,a="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c(a)});v.chat_status_message=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};c=this.escapeExpression;(e=e.message)?a=e.call(a,{hash:{},data:b}):(e=a&&a.message,a="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c(a)});v.chat_status_typing=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,
|
||||
c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"typing.remote",k):c.call(a,"l10n","typing.remote",k)))});v.default_control=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};d=this.escapeExpression;c="<strong>";(e=e.title)?a=e.call(a,{hash:{},data:b}):(e=a&&a.title,a="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c+=d(a)+"</strong>"});v.invitation_layout=u(function(c,
|
||||
a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];this.merge(e,c.helpers);return'<div id="invitation-messages-region"></div>'});v.leave_message_description=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="buttons">\n <a href="javascript:window.close();" title="'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"leavemessage.close",l):c.call(a,"l10n","leavemessage.close",l)))+'">\n <img class="tpl-image iclosewin" src="'+
|
||||
d((g=(g=a&&a.page,null==g||!1===g?g:g.tplRoot),"function"===typeof g?g.apply(a):g))+'/images/free.gif" alt="'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"leavemessage.close",l):c.call(a,"l10n","leavemessage.close",l)))+'" />\n </a>\n</div>\n<div class="messagetxt">'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"leavemessage.descr",l):c.call(a,"l10n","leavemessage.descr",l)))+"</div>")});v.leave_message_form=u(function(c,a,e,d,b){function g(a,c){var d,b;d='<input type="hidden" name="group" value="';
|
||||
(b=e.groupId)?b=b.call(a,{hash:{},data:c}):(b=a&&a.groupId,b=typeof b===s?b.call(a,{hash:{},data:c}):b);return d+=r(b)+'"/>'}function k(a,c){var b,d;b=""+('\n <option value="'+r((d=a&&a.id,typeof d===s?d.apply(a):d))+'" ');if((d=e["if"].call(a,a&&a.selected,{hash:{},inverse:p.noop,fn:p.program(6,l,c),data:c}))||0===d)b+=d;return b+=">"+r((d=a&&a.name,typeof d===s?d.apply(a):d))+"</option>\n "}function l(a,d){return'selected="selected"'}function t(a,d){var c;
|
||||
return(c=e["if"].call(a,a&&a.selected,{hash:{},inverse:p.noop,fn:p.program(9,n,d),data:d}))||0===c?c:""}function n(a,d){var c;return r((c=a&&a.description,typeof c===s?c.apply(a):c))}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var m,h,s="function",r=this.escapeExpression,p=this,q=e.helperMissing;c=""+('<form name="leaveMessageForm" method="post" action="">\n <input type="hidden" name="style" value="'+r((m=(m=a&&a.page,null==m||!1===m?m:m.style),typeof m===s?m.apply(a):m))+
|
||||
'"/>\n <input type="hidden" name="info" value="');(d=e.info)?m=d.call(a,{hash:{},data:b}):(d=a&&a.info,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'"/>\n <input type="hidden" name="referrer" value="';(d=e.referrer)?m=d.call(a,{hash:{},data:b}):(d=a&&a.referrer,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'"/>\n ';if((m=e.unless.call(a,a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(1,function(a,c){var d;return(d=e["if"].call(a,a&&a.groupId,{hash:{},inverse:p.noop,fn:p.program(2,
|
||||
g,c),data:c}))||0===d?d:""},b),data:b}))||0===m)c+=m;c+='\n\n <div class="errors"></div>\n\n <table cellspacing="1" cellpadding="5" border="0" class="form">\n <tr>\n <td><strong>'+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"form.field.email",h):q.call(a,"l10n","form.field.email",h)))+':</strong></td>\n <td><input type="text" name="email" size="50" value="';(d=e.email)?m=d.call(a,{hash:{},data:b}):(d=a&&a.email,m=typeof d===s?d.call(a,{hash:{},data:b}):
|
||||
d);c+=r(m)+'" class="username"/></td>\n </tr>\n <tr>\n <td><strong>'+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"form.field.name",h):q.call(a,"l10n","form.field.name",h)))+':</strong></td>\n <td><input type="text" name="name" size="50" value="';(d=e.name)?m=d.call(a,{hash:{},data:b}):(d=a&&a.name,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'" class="username"/></td>\n </tr>\n ';if((m=e["if"].call(a,a&&a.groups,{hash:{},inverse:p.noop,
|
||||
fn:p.program(4,function(a,d){var c,b,h,g;c=""+('\n <tr>\n <td class="text"><strong>'+r((h=e.l10n||a&&a.l10n,g={hash:{},data:d},h?h.call(a,"form.field.department",g):q.call(a,"l10n","form.field.department",g)))+'</strong></td>\n <td>\n <select name="group" style="min-width:200px;">\n ');if((b=e.each.call(a,a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(5,k,d),data:d}))||0===b)c+=b;c+='\n </select>\n </td>\n </tr>\n <tr>\n <td class="text"><strong>'+
|
||||
r((h=e.l10n||a&&a.l10n,g={hash:{},data:d},h?h.call(a,"form.field.department.description",g):q.call(a,"l10n","form.field.department.description",g)))+'</strong></td>\n <td class="text" id="groupDescription">\n ';if((b=e.each.call(a,a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(8,t,d),data:d}))||0===b)c+=b;return c+"\n </td>\n </tr>\n "},b),data:b}))||0===m)c+=m;c+="\n <tr>\n <td><strong>"+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},
|
||||
d?d.call(a,"form.field.message",h):q.call(a,"l10n","form.field.message",h)))+':</strong></td>\n <td valign="top">\n <textarea name="message" tabindex="0" cols="40" rows="5">';(d=e.message)?m=d.call(a,{hash:{},data:b}):(d=a&&a.message,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+"</textarea>\n </td>\n </tr>\n ";if((m=e["if"].call(a,a&&a.showCaptcha,{hash:{},inverse:p.noop,fn:p.program(11,function(a,c){return'\n <tr>\n <td><img id="captcha-img" src="captcha"/></td>\n <td><input type="text" name="captcha" size="50" maxlength="15" value="" class="username"/></td>\n </tr>\n '},
|
||||
b),data:b}))||0===m)c+=m;return c+='\n </table>\n <a href="javascript:void(0);" class="but" id="send-message">'+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"mailthread.perform",h):q.call(a,"l10n","mailthread.perform",h)))+'</a>\n <div class="clear"> </div>\n</form>\n<div id="ajax-loader"><img src="'+r((m=(m=a&&a.page,null==m||!1===m?m:m.tplRoot),typeof m===s?m.apply(a):m))+'/images/ajax-loader.gif" alt="Loading..." /></div>'});v.leave_message_layout=u(function(c,a,e,d,b){this.compilerInfo=
|
||||
[4,">= 1.0.0"];e=this.merge(e,c.helpers);d=this.merge(d,c.partials);b=b||{};c="\n";if((a=this.invokePartial(d._logo,"_logo",a,e,d,b))||0===a)c+=a;return c+'\n\n\n<div id="headers">\n <div class="wndb"><div class="wndl"><div class="wndr"><div class="wndt"><div class="wndtl"><div class="wndtr"><div class="wndbl"><div class="wndbr" id="description-region">\n </div></div></div></div></div></div></div></div>\n</div>\n\n\n<div id="content-wrapper"></div>'});v.leave_message_sent_description=u(function(c,
|
||||
a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="buttons">\n <a href="javascript:window.close();" title="'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"chat.mailthread.sent.close",l):c.call(a,"l10n","chat.mailthread.sent.close",l)))+'">\n <img class="tpl-image iclosewin" src="'+d((g=(g=a&&a.page,null==g||!1===g?g:g.tplRoot),"function"===typeof g?g.apply(a):g))+'/images/free.gif" alt="'+
|
||||
d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"chat.mailthread.sent.close",l):c.call(a,"l10n","chat.mailthread.sent.close",l)))+'" />\n </a>\n</div>\n<div class="messagetxt">'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"leavemessage.sent.message",l):c.call(a,"l10n","leavemessage.sent.message",l)))+"</div>")});v.message=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l=this.escapeExpression,t=e.helperMissing;c=""+("<span>"+l((g=
|
||||
e.formatTime||a&&a.formatTime,k={hash:{},data:b},g?g.call(a,a&&a.created,k):t.call(a,"formatTime",a&&a.created,k)))+"</span>\n");if((g=e["if"].call(a,a&&a.name,{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){var d,b;d="<span class='n";(b=e.kindName)?b=b.call(a,{hash:{},data:c}):(b=a&&a.kindName,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);d+=l(b)+"'>";(b=e.name)?b=b.call(a,{hash:{},data:c}):(b=a&&a.name,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);return d+=l(b)+"</span>: "},
|
||||
b),data:b}))||0===g)c+=g;c+="\n<span class='m";(g=e.kindName)?g=g.call(a,{hash:{},data:b}):(g=a&&a.kindName,g="function"===typeof g?g.call(a,{hash:{},data:b}):g);c+=l(g)+"'>";if((g=e["if"].call(a,a&&a.allowFormatting,{hash:{},inverse:this.program(5,function(a,c){var d,b;return l((d=e.apply||a&&a.apply,b={hash:{},data:c},d?d.call(a,a&&a.message,"urlReplace, nl2br",b):t.call(a,"apply",a&&a.message,"urlReplace, nl2br",b)))},b),fn:this.program(3,function(a,d){var b,c;return l((b=e.apply||a&&a.apply,c=
|
||||
{hash:{},data:d},b?b.call(a,a&&a.message,"urlReplace, nl2br, allowTags",c):t.call(a,"apply",a&&a.message,"urlReplace, nl2br, allowTags",c)))},b),data:b}))||0===g)c+=g;return c+"</span><br/>"});v.survey_form=u(function(c,a,e,d,b){function g(a,b){var c,d;c='<input type="hidden" name="group" value="';(d=e.groupId)?d=d.call(a,{hash:{},data:b}):(d=a&&a.groupId,d=typeof d===r?d.call(a,{hash:{},data:b}):d);return c+=p(d)+'"/>'}function k(a,d){var c,b;c=""+('\n <option value="'+p((b=
|
||||
a&&a.id,typeof b===r?b.apply(a):b))+'" ');if((b=e["if"].call(a,a&&a.selected,{hash:{},inverse:q.noop,fn:q.program(10,l,d),data:d}))||0===b)c+=b;c+=">"+p((b=a&&a.name,typeof b===r?b.apply(a):b));if((b=e.unless.call(a,a&&a.online,{hash:{},inverse:q.noop,fn:q.program(12,t,d),data:d}))||0===b)c+=b;return c+"</option>\n "}function l(a,b){return'selected="selected"'}function t(a,b){return" (offline)"}function n(a,b){var d;return(d=e["if"].call(a,a&&a.selected,{hash:{},inverse:q.noop,
|
||||
d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Close chat",k):c.call(a,"l10n","Close chat",k)))+'"></div>')});v.chat_controls_history=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Visit history",k):c.call(a,"l10n","Visit history",k)))+
|
||||
'"></div>')});v.chat_controls_redirect=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k=e.helperMissing,l=this.escapeExpression;return(g=e["if"].call(a,(g=a&&a.user,null==g||!1===g?g:g.canPost),{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){var b,d,s;return b=""+('\n<div class="tpl-image" title="'+l((d=e.l10n||a&&a.l10n,s={hash:{},data:c},d?d.call(a,"Redirect visitor to another operator",s):k.call(a,"l10n","Redirect visitor to another operator",
|
||||
s)))+'"></div>\n')},b),data:b}))||0===g?g:""});v.chat_controls_refresh=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Refresh",k):c.call(a,"l10n","Refresh",k)))+'"></div>')});v.chat_controls_secure_mode=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];this.merge(e,c.helpers);return'<div class="tpl-image" title="SSL"></div>'});
|
||||
v.chat_controls_send_mail=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="tpl-image" title="'+d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Send chat history by e-mail",k):c.call(a,"l10n","Send chat history by e-mail",k)))+'"></div>')});v.chat_controls_sound=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g=e.helperMissing,k=this.escapeExpression;
|
||||
return(c=e["if"].call(a,a&&a.enabled,{hash:{},inverse:this.program(3,function(a,c){var b,d,h;return b=""+('\n <div class="tpl-image sound-control-off" title="'+k((d=e.l10n||a&&a.l10n,h={hash:{},data:c},d?d.call(a,"Turn on sound",h):g.call(a,"l10n","Turn on sound",h)))+'"></div>\n')},b),fn:this.program(1,function(a,c){var b,d,h;return b=""+('\n <div class="tpl-image sound-control-on" title="'+k((d=e.l10n||a&&a.l10n,h={hash:{},data:c},d?d.call(a,"Turn off sound",h):g.call(a,"l10n","Turn off sound",
|
||||
h)))+'"></div>\n')},b),data:b}))||0===c?c:""});v.chat_controls_user_name=u(function(c,a,e,d,b){function g(a,c){var b,d,f,h;return b=""+('\n <div class="user-name-control-input-bg"><input id="user-name-control-input" type="text" size="12" value="'+n((d=(d=a&&a.user,null==d||!1===d?d:d.name),typeof d===t?d.apply(a):d))+'" class="username" /></div>\n <a href="javascript:void(0)" class="user-name-control-set tpl-image" title="'+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"Change name",
|
||||
h):m.call(a,"l10n","Change name",h)))+'"></a>\n ')}function k(a,c){var b,d,f,h;return b=""+('\n <a href="javascript:void(0)" title="'+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"Change name",h):m.call(a,"l10n","Change name",h)))+'">'+n((d=(d=a&&a.user,null==d||!1===d?d:d.name),typeof d===t?d.apply(a):d))+'</a>\n <a class="user-name-control-change tpl-image" title="'+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"Change name",h):m.call(a,"l10n","Change name",h)))+
|
||||
'"></a>\n ')}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var l,t="function",n=this.escapeExpression,m=e.helperMissing,h=this;return(l=e["if"].call(a,(l=a&&a.user,null==l||!1===l?l:l.canChangeName),{hash:{},inverse:h.program(6,function(a,c){var b,d,f,h;return b=""+("\n"+n((f=e.l10n||a&&a.l10n,h={hash:{},data:c},f?f.call(a,"You are",h):m.call(a,"l10n","You are",h)))+" "+n((d=(d=a&&a.user,null==d||!1===d?d:d.name),typeof d===t?d.apply(a):d))+"\n")},b),fn:h.program(1,function(a,
|
||||
c){var d,b,f;d=""+('\n <span class="user-name-control-prefix">'+n((b=e.l10n||a&&a.l10n,f={hash:{},data:c},b?b.call(a,"You are",f):m.call(a,"l10n","You are",f)))+"</span>\n ");if((b=e["if"].call(a,a&&a.nameInput,{hash:{},inverse:h.program(4,k,c),fn:h.program(2,g,c),data:c}))||0===b)d+=b;return d+"\n"},b),data:b}))||0===l?l:""});v.chat_layout=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);d=this.merge(d,c.partials);b=b||{};var g,k,l=e.helperMissing,t=this.escapeExpression;
|
||||
c="\n";if((d=this.invokePartial(d._logo,"_logo",a,e,d,b))||0===d)c+=d;c+='\n\n\n<div id="chat-header">\n <div class="bgc"><div class="bgl"><div class="bgr">\n \n <div id="controls-region"></div>\n </div></div></div>\n</div>\n\n\n<div id="chat">\n <div class="bgl"><div class="bgr"><div class="sdwbgc"><div class="sdwbgl"><div class="sdwbgr">\n ';if((d=e.unless.call(a,(d=a&&a.user,null==d||!1===d?d:d.isAgent),{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){return'\n <div id="avatar-region"></div>\n '},
|
||||
b),data:b}))||0===d)c+=d;return c+='\n \n <div id="messages-region"></div>\n \n <div id="status-region"></div>\n </div></div></div></div></div>\n</div>\n\n\n<div id="message-form-region"></div>\n\n\n<div id="footer">'+t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Powered by:",k):l.call(a,"l10n","Powered by:",k)))+' <a id="poweredByLink" href="http://mibew.org" title="Mibew Community" target="_blank">mibew.org</a></div>'});v.chat_message=u(function(c,a,e,d,b){this.compilerInfo=
|
||||
[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l=this.escapeExpression,t=e.helperMissing;c=""+("<span>"+l((g=e.formatTime||a&&a.formatTime,k={hash:{},data:b},g?g.call(a,a&&a.created,k):t.call(a,"formatTime",a&&a.created,k)))+"</span> \n");if((g=e["if"].call(a,a&&a.name,{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){var b,d;b="<span class='n";(d=e.kindName)?d=d.call(a,{hash:{},data:c}):(d=a&&a.kindName,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);b+=l(d)+"'>";(d=e.name)?
|
||||
d=d.call(a,{hash:{},data:c}):(d=a&&a.name,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=l(d)+"</span>: "},b),data:b}))||0===g)c+=g;c+="\n<span class='m";(g=e.kindName)?g=g.call(a,{hash:{},data:b}):(g=a&&a.kindName,g="function"===typeof g?g.call(a,{hash:{},data:b}):g);c+=l(g)+"'>";if((g=e["if"].call(a,a&&a.allowFormatting,{hash:{},inverse:this.program(5,function(a,c){var d,b;return l((d=e.apply||a&&a.apply,b={hash:{},data:c},d?d.call(a,a&&a.message,"urlReplace, nl2br",b):t.call(a,
|
||||
"apply",a&&a.message,"urlReplace, nl2br",b)))},b),fn:this.program(3,function(a,c){var d,b;return l((d=e.apply||a&&a.apply,b={hash:{},data:c},d?d.call(a,a&&a.message,"urlReplace, nl2br, allowTags",b):t.call(a,"apply",a&&a.message,"urlReplace, nl2br, allowTags",b)))},b),data:b}))||0===g)c+=g;return c+"</span><br/>"});v.chat_message_form=u(function(c,a,e,d,b){function g(a,c){var d,b,f;d=""+('\n <select id="predefined" size="1" class="answer">\n <option>'+n((b=e.l10n||
|
||||
a&&a.l10n,f={hash:{},data:c},b?b.call(a,"Select answer...",f):m.call(a,"l10n","Select answer...",f)))+"</option>\n ");if((b=e.each.call(a,a&&a.predefinedAnswers,{hash:{},inverse:h.noop,fn:h.program(5,k,c),data:c}))||0===b)d+=b;return d+"\n </select>\n "}function k(a,c){var d,b;return d=""+("\n <option>"+n((b=a&&a["short"],typeof b===t?b.apply(a):b))+"</option>\n ")}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);
|
||||
b=b||{};var l,t="function",n=this.escapeExpression,m=e.helperMissing,h=this;c='<div id="message">\n';if((l=e["if"].call(a,(l=a&&a.user,null==l||!1===l?l:l.canPost),{hash:{},inverse:h.noop,fn:h.program(1,function(a,c){return'\n <div class="bgc"><div class="bgl"><div class="bgr">\n <textarea id="message-input" class="message" tabindex="0" rows="4" cols="10"></textarea>\n </div></div></div>\n'},b),data:b}))||0===l)c+=l;c+='\n</div>\n\n<div id="send">\n';if((l=e["if"].call(a,(l=a&&a.user,
|
||||
null==l||!1===l?l:l.canPost),{hash:{},inverse:h.noop,fn:h.program(3,function(a,c){var d,b,f,w;d='\n <div id="postmessage">\n <div id="predefined-wrapper">\n ';if((b=e["if"].call(a,(b=a&&a.user,null==b||!1===b?b:b.isAgent),{hash:{},inverse:h.noop,fn:h.program(4,g,c),data:c}))||0===b)d+=b;return d+='\n </div>\n <a href="javascript:void(0)" id="send-message" title="'+n((f=e.l10n||a&&a.l10n,w={hash:{},data:c},f?f.call(a,"Send message",w):m.call(a,"l10n","Send message",
|
||||
w)))+'">'+n((f=e.l10n||a&&a.l10n,w={hash:{},data:c},f?f.call(a,"chat.window.send_message_short_and_shortcut",w):m.call(a,"l10n","chat.window.send_message_short_and_shortcut",w)))+"</a>\n </div>\n"},b),data:b}))||0===l)c+=l;return c+'\n</div>\n<div class="clear"></div>'});v.chat_status_base=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};c=this.escapeExpression;(e=e.title)?a=e.call(a,{hash:{},data:b}):(e=a&&a.title,a="function"===typeof e?e.call(a,{hash:{},
|
||||
data:b}):e);return c(a)});v.chat_status_message=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};c=this.escapeExpression;(e=e.message)?a=e.call(a,{hash:{},data:b}):(e=a&&a.message,a="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c(a)});v.chat_status_typing=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k;c=e.helperMissing;d=this.escapeExpression;return d((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,
|
||||
"Remote user is typing...",k):c.call(a,"l10n","Remote user is typing...",k)))});v.default_control=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};d=this.escapeExpression;c="<strong>";(e=e.title)?a=e.call(a,{hash:{},data:b}):(e=a&&a.title,a="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c+=d(a)+"</strong>"});v.invitation_layout=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];this.merge(e,c.helpers);return'<div id="invitation-messages-region"></div>'});
|
||||
v.leave_message_description=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="buttons">\n <a href="javascript:window.close();" title="'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"Close",l):c.call(a,"l10n","Close",l)))+'">\n <img class="tpl-image iclosewin" src="'+d((g=(g=a&&a.page,null==g||!1===g?g:g.tplRoot),"function"===typeof g?g.apply(a):g))+'/images/free.gif" alt="'+
|
||||
d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"Close",l):c.call(a,"l10n","Close",l)))+'" />\n </a>\n</div>\n<div class="messagetxt">'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"Sorry. None of the support team is available at the moment. <br/>Please leave a message and someone will get back to you shortly.",l):c.call(a,"l10n","Sorry. None of the support team is available at the moment. <br/>Please leave a message and someone will get back to you shortly.",l)))+"</div>")});v.leave_message_form=
|
||||
u(function(c,a,e,d,b){function g(a,c){var d,b;d='<input type="hidden" name="group" value="';(b=e.groupId)?b=b.call(a,{hash:{},data:c}):(b=a&&a.groupId,b=typeof b===s?b.call(a,{hash:{},data:c}):b);return d+=r(b)+'"/>'}function k(a,c){var b,d;b=""+('\n <option value="'+r((d=a&&a.id,typeof d===s?d.apply(a):d))+'" ');if((d=e["if"].call(a,a&&a.selected,{hash:{},inverse:p.noop,fn:p.program(6,l,c),data:c}))||0===d)b+=d;return b+=">"+r((d=a&&a.name,typeof d===s?d.apply(a):d))+"</option>\n "}
|
||||
function l(a,d){return'selected="selected"'}function t(a,d){var c;return(c=e["if"].call(a,a&&a.selected,{hash:{},inverse:p.noop,fn:p.program(9,n,d),data:d}))||0===c?c:""}function n(a,d){var c;return r((c=a&&a.description,typeof c===s?c.apply(a):c))}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var m,h,s="function",r=this.escapeExpression,p=this,q=e.helperMissing;c=""+('<form name="leaveMessageForm" method="post" action="">\n <input type="hidden" name="style" value="'+r((m=
|
||||
(m=a&&a.page,null==m||!1===m?m:m.style),typeof m===s?m.apply(a):m))+'"/>\n <input type="hidden" name="info" value="');(d=e.info)?m=d.call(a,{hash:{},data:b}):(d=a&&a.info,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'"/>\n <input type="hidden" name="referrer" value="';(d=e.referrer)?m=d.call(a,{hash:{},data:b}):(d=a&&a.referrer,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'"/>\n ';if((m=e.unless.call(a,a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(1,function(a,c){var d;
|
||||
return(d=e["if"].call(a,a&&a.groupId,{hash:{},inverse:p.noop,fn:p.program(2,g,c),data:c}))||0===d?d:""},b),data:b}))||0===m)c+=m;c+='\n\n <div class="errors"></div>\n\n <table cellspacing="1" cellpadding="5" border="0" class="form">\n <tr>\n <td><strong>'+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Your email",h):q.call(a,"l10n","Your email",h)))+':</strong></td>\n <td><input type="text" name="email" size="50" value="';(d=e.email)?m=d.call(a,{hash:{},data:b}):
|
||||
(d=a&&a.email,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'" class="username"/></td>\n </tr>\n <tr>\n <td><strong>'+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Your name",h):q.call(a,"l10n","Your name",h)))+':</strong></td>\n <td><input type="text" name="name" size="50" value="';(d=e.name)?m=d.call(a,{hash:{},data:b}):(d=a&&a.name,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+'" class="username"/></td>\n </tr>\n ';if((m=e["if"].call(a,
|
||||
a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(4,function(a,d){var c,b,h,g;c=""+('\n <tr>\n <td class="text"><strong>'+r((h=e.l10n||a&&a.l10n,g={hash:{},data:d},h?h.call(a,"Choose Department:",g):q.call(a,"l10n","Choose Department:",g)))+'</strong></td>\n <td>\n <select name="group" style="min-width:200px;">\n ');if((b=e.each.call(a,a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(5,k,d),data:d}))||0===b)c+=b;c+='\n </select>\n </td>\n </tr>\n <tr>\n <td class="text"><strong>'+
|
||||
r((h=e.l10n||a&&a.l10n,g={hash:{},data:d},h?h.call(a,"Department description:",g):q.call(a,"l10n","Department description:",g)))+'</strong></td>\n <td class="text" id="groupDescription">\n ';if((b=e.each.call(a,a&&a.groups,{hash:{},inverse:p.noop,fn:p.program(8,t,d),data:d}))||0===b)c+=b;return c+"\n </td>\n </tr>\n "},b),data:b}))||0===m)c+=m;c+="\n <tr>\n <td><strong>"+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Message",
|
||||
h):q.call(a,"l10n","Message",h)))+':</strong></td>\n <td valign="top">\n <textarea name="message" tabindex="0" cols="40" rows="5">';(d=e.message)?m=d.call(a,{hash:{},data:b}):(d=a&&a.message,m=typeof d===s?d.call(a,{hash:{},data:b}):d);c+=r(m)+"</textarea>\n </td>\n </tr>\n ";if((m=e["if"].call(a,a&&a.showCaptcha,{hash:{},inverse:p.noop,fn:p.program(11,function(a,c){return'\n <tr>\n <td><img id="captcha-img" src="captcha"/></td>\n <td><input type="text" name="captcha" size="50" maxlength="15" value="" class="username"/></td>\n </tr>\n '},
|
||||
b),data:b}))||0===m)c+=m;return c+='\n </table>\n <a href="javascript:void(0);" class="but" id="send-message">'+r((d=e.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Send",h):q.call(a,"l10n","Send",h)))+'</a>\n <div class="clear"> </div>\n</form>\n<div id="ajax-loader"><img src="'+r((m=(m=a&&a.page,null==m||!1===m?m:m.tplRoot),typeof m===s?m.apply(a):m))+'/images/ajax-loader.gif" alt="Loading..." /></div>'});v.leave_message_layout=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];
|
||||
e=this.merge(e,c.helpers);d=this.merge(d,c.partials);b=b||{};c="\n";if((a=this.invokePartial(d._logo,"_logo",a,e,d,b))||0===a)c+=a;return c+'\n\n\n<div id="headers">\n <div class="wndb"><div class="wndl"><div class="wndr"><div class="wndt"><div class="wndtl"><div class="wndtr"><div class="wndbl"><div class="wndbr" id="description-region">\n </div></div></div></div></div></div></div></div>\n</div>\n\n\n<div id="content-wrapper"></div>'});v.leave_message_sent_description=u(function(c,a,e,d,b){this.compilerInfo=
|
||||
[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l;c=e.helperMissing;d=this.escapeExpression;return a=""+('<div class="buttons">\n <a href="javascript:window.close();" title="'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"Close...",l):c.call(a,"l10n","Close...",l)))+'">\n <img class="tpl-image iclosewin" src="'+d((g=(g=a&&a.page,null==g||!1===g?g:g.tplRoot),"function"===typeof g?g.apply(a):g))+'/images/free.gif" alt="'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?
|
||||
k.call(a,"Close...",l):c.call(a,"l10n","Close...",l)))+'" />\n </a>\n</div>\n<div class="messagetxt">'+d((k=e.l10n||a&&a.l10n,l={hash:{},data:b},k?k.call(a,"Thank you for your message. We'll answer your query by email as soon as possible.",l):c.call(a,"l10n","Thank you for your message. We'll answer your query by email as soon as possible.",l)))+"</div>")});v.message=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var g,k,l=this.escapeExpression,t=e.helperMissing;
|
||||
c=""+("<span>"+l((g=e.formatTime||a&&a.formatTime,k={hash:{},data:b},g?g.call(a,a&&a.created,k):t.call(a,"formatTime",a&&a.created,k)))+"</span>\n");if((g=e["if"].call(a,a&&a.name,{hash:{},inverse:this.noop,fn:this.program(1,function(a,c){var d,b;d="<span class='n";(b=e.kindName)?b=b.call(a,{hash:{},data:c}):(b=a&&a.kindName,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);d+=l(b)+"'>";(b=e.name)?b=b.call(a,{hash:{},data:c}):(b=a&&a.name,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);
|
||||
return d+=l(b)+"</span>: "},b),data:b}))||0===g)c+=g;c+="\n<span class='m";(g=e.kindName)?g=g.call(a,{hash:{},data:b}):(g=a&&a.kindName,g="function"===typeof g?g.call(a,{hash:{},data:b}):g);c+=l(g)+"'>";if((g=e["if"].call(a,a&&a.allowFormatting,{hash:{},inverse:this.program(5,function(a,c){var d,b;return l((d=e.apply||a&&a.apply,b={hash:{},data:c},d?d.call(a,a&&a.message,"urlReplace, nl2br",b):t.call(a,"apply",a&&a.message,"urlReplace, nl2br",b)))},b),fn:this.program(3,function(a,d){var b,c;return l((b=
|
||||
e.apply||a&&a.apply,c={hash:{},data:d},b?b.call(a,a&&a.message,"urlReplace, nl2br, allowTags",c):t.call(a,"apply",a&&a.message,"urlReplace, nl2br, allowTags",c)))},b),data:b}))||0===g)c+=g;return c+"</span><br/>"});v.survey_form=u(function(c,a,e,d,b){function g(a,b){var c,d;c='<input type="hidden" name="group" value="';(d=e.groupId)?d=d.call(a,{hash:{},data:b}):(d=a&&a.groupId,d=typeof d===r?d.call(a,{hash:{},data:b}):d);return c+=p(d)+'"/>'}function k(a,d){var c,b;c=""+('\n <option value="'+
|
||||
p((b=a&&a.id,typeof b===r?b.apply(a):b))+'" ');if((b=e["if"].call(a,a&&a.selected,{hash:{},inverse:q.noop,fn:q.program(10,l,d),data:d}))||0===b)c+=b;c+=">"+p((b=a&&a.name,typeof b===r?b.apply(a):b));if((b=e.unless.call(a,a&&a.online,{hash:{},inverse:q.noop,fn:q.program(12,t,d),data:d}))||0===b)c+=b;return c+"</option>\n "}function l(a,b){return'selected="selected"'}function t(a,b){return" (offline)"}function n(a,b){var d;return(d=e["if"].call(a,a&&a.selected,{hash:{},inverse:q.noop,
|
||||
fn:q.program(15,m,b),data:b}))||0===d?d:""}function m(a,b){var d;return p((d=a&&a.description,typeof d===r?d.apply(a):d))}this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);b=b||{};var h,s,r="function",p=this.escapeExpression,q=this,f=e.helperMissing;c=""+('<form name="surveyForm" method="post" action="">\n <input type="hidden" name="style" value="'+p((h=(h=a&&a.page,null==h||!1===h?h:h.style),typeof h===r?h.apply(a):h))+'"/>\n <input type="hidden" name="info" value="');(d=e.info)?h=
|
||||
d.call(a,{hash:{},data:b}):(d=a&&a.info,h=typeof d===r?d.call(a,{hash:{},data:b}):d);c+=p(h)+'"/>\n <input type="hidden" name="referrer" value="';(d=e.referrer)?h=d.call(a,{hash:{},data:b}):(d=a&&a.referrer,h=typeof d===r?d.call(a,{hash:{},data:b}):d);c+=p(h)+'"/>\n <input type="hidden" name="survey" value="on"/>\n ';if((h=e.unless.call(a,a&&a.showEmail,{hash:{},inverse:q.noop,fn:q.program(1,function(a,b){var d,c;d='<input type="hidden" name="email" value="';(c=e.email)?c=c.call(a,{hash:{},
|
||||
data:b}):(c=a&&a.email,c=typeof c===r?c.call(a,{hash:{},data:b}):c);return d+=p(c)+'"/>'},b),data:b}))||0===h)c+=h;c+="\n ";if((h=e.unless.call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(3,function(a,b){var d;return(d=e["if"].call(a,a&&a.groupId,{hash:{},inverse:q.noop,fn:q.program(4,g,b),data:b}))||0===d?d:""},b),data:b}))||0===h)c+=h;c+="\n ";if((h=e.unless.call(a,a&&a.showMessage,{hash:{},inverse:q.noop,fn:q.program(6,function(a,d){var b,c;b='<input type="hidden" name="message" value="';
|
||||
(c=e.message)?c=c.call(a,{hash:{},data:d}):(c=a&&a.message,c=typeof c===r?c.call(a,{hash:{},data:d}):c);return b+=p(c)+'"/>'},b),data:b}))||0===h)c+=h;c+='\n\n <div class="errors"></div>\n\n <table class="form">\n ';if((h=e["if"].call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(8,function(a,b){var d,c,g,h;d=""+("\n <tr>\n <td><strong>"+p((g=e.l10n||a&&a.l10n,h={hash:{},data:b},g?g.call(a,"form.field.department",h):f.call(a,"l10n","form.field.department",h)))+'</strong></td>\n <td>\n <select name="group">\n ');
|
||||
if((c=e.each.call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(9,k,b),data:b}))||0===c)d+=c;d+="\n </select>\n </td>\n </tr>\n <tr>\n <td><strong>"+p((g=e.l10n||a&&a.l10n,h={hash:{},data:b},g?g.call(a,"form.field.department.description",h):f.call(a,"l10n","form.field.department.description",h)))+'</strong></td>\n <td id="groupDescription">';if((c=e.each.call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(14,n,b),data:b}))||0===
|
||||
c)d+=c;return d+"</td>\n </tr>\n "},b),data:b}))||0===h)c+=h;c+="\n <tr>\n <td><strong>"+p((d=e.l10n||a&&a.l10n,s={hash:{},data:b},d?d.call(a,"presurvey.name",s):f.call(a,"l10n","presurvey.name",s)))+'</strong></td>\n <td><input type="text" name="name" size="50" value="';(d=e.name)?h=d.call(a,{hash:{},data:b}):(d=a&&a.name,h=typeof d===r?d.call(a,{hash:{},data:b}):d);c+=p(h)+'" class="username" ';if((h=e.unless.call(a,a&&a.canChangeName,{hash:{},inverse:q.noop,
|
||||
fn:q.program(17,function(a,d){return'disabled="disabled"'},b),data:b}))||0===h)c+=h;c+="/></td>\n </tr>\n ";if((h=e["if"].call(a,a&&a.showEmail,{hash:{},inverse:q.noop,fn:q.program(19,function(a,d){var b,c,g;b=""+("\n <tr>\n <td><strong>"+p((c=e.l10n||a&&a.l10n,g={hash:{},data:d},c?c.call(a,"presurvey.mail",g):f.call(a,"l10n","presurvey.mail",g)))+'</strong></td>\n <td><input type="text" name="email" size="50" value="');(c=e.email)?c=c.call(a,{hash:{},data:d}):
|
||||
(c=a&&a.email,c=typeof c===r?c.call(a,{hash:{},data:d}):c);return b+=p(c)+'" class="username"/></td>\n </tr>\n '},b),data:b}))||0===h)c+=h;c+="\n ";if((h=e["if"].call(a,a&&a.showMessage,{hash:{},inverse:q.noop,fn:q.program(21,function(a,c){var d,b,g;d=""+("\n <tr>\n <td><strong>"+p((b=e.l10n||a&&a.l10n,g={hash:{},data:c},b?b.call(a,"presurvey.question",g):f.call(a,"l10n","presurvey.question",g)))+'</strong></td>\n <td valign="top"><textarea name="message" tabindex="0" cols="45" rows="2">');
|
||||
(b=e.message)?b=b.call(a,{hash:{},data:c}):(b=a&&a.message,b=typeof b===r?b.call(a,{hash:{},data:c}):b);return d+=p(b)+"</textarea></td>\n </tr>\n "},b),data:b}))||0===h)c+=h;return c+='\n </table>\n <a href="javascript:void(0);" class="but" id="submit-survey">'+p((d=e.l10n||a&&a.l10n,s={hash:{},data:b},d?d.call(a,"presurvey.submit",s):f.call(a,"l10n","presurvey.submit",s)))+'</a>\n <div class="clear"> </div>\n</form>\n<div id="ajax-loader"><img src="'+p((h=(h=a&&a.page,null==
|
||||
h||!1===h?h:h.tplRoot),typeof h===r?h.apply(a):h))+'/images/ajax-loader.gif" alt="Loading..." /></div>'});v.survey_layout=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);d=this.merge(d,c.partials);b=b||{};var g,k,l=e.helperMissing,t=this.escapeExpression;c="\n";if((d=this.invokePartial(d._logo,"_logo",a,e,d,b))||0===d)c+=d;return c+='\n\n\n<div id="headers">\n <div class="wndb"><div class="wndl"><div class="wndr"><div class="wndt"><div class="wndtl"><div class="wndtr"><div class="wndbl"><div class="wndbr">\n <div class="buttons">\n <a href="javascript:window.close();" title="'+
|
||||
t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"leavemessage.close",k):l.call(a,"l10n","leavemessage.close",k)))+'"><img class="tpl-image iclosewin" src="'+t((d=(d=a&&a.page,null==d||!1===d?d:d.tplRoot),"function"===typeof d?d.apply(a):d))+'/images/free.gif" alt="'+t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"leavemessage.close",k):l.call(a,"l10n","leavemessage.close",k)))+'" /></a>\n </div>\n <div class="messagetxt">'+t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,
|
||||
"presurvey.intro",k):l.call(a,"l10n","presurvey.intro",k)))+'</div>\n </div></div></div></div></div></div></div></div>\n</div>\n\n\n<div id="content-wrapper"></div>'})})();
|
||||
(c=e.message)?c=c.call(a,{hash:{},data:d}):(c=a&&a.message,c=typeof c===r?c.call(a,{hash:{},data:d}):c);return b+=p(c)+'"/>'},b),data:b}))||0===h)c+=h;c+='\n\n <div class="errors"></div>\n\n <table class="form">\n ';if((h=e["if"].call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(8,function(a,b){var d,c,g,h;d=""+("\n <tr>\n <td><strong>"+p((g=e.l10n||a&&a.l10n,h={hash:{},data:b},g?g.call(a,"Choose Department:",h):f.call(a,"l10n","Choose Department:",h)))+'</strong></td>\n <td>\n <select name="group">\n ');
|
||||
if((c=e.each.call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(9,k,b),data:b}))||0===c)d+=c;d+="\n </select>\n </td>\n </tr>\n <tr>\n <td><strong>"+p((g=e.l10n||a&&a.l10n,h={hash:{},data:b},g?g.call(a,"Department description:",h):f.call(a,"l10n","Department description:",h)))+'</strong></td>\n <td id="groupDescription">';if((c=e.each.call(a,a&&a.groups,{hash:{},inverse:q.noop,fn:q.program(14,n,b),data:b}))||0===c)d+=c;return d+"</td>\n </tr>\n "},
|
||||
b),data:b}))||0===h)c+=h;c+="\n <tr>\n <td><strong>"+p((d=e.l10n||a&&a.l10n,s={hash:{},data:b},d?d.call(a,"Name:",s):f.call(a,"l10n","Name:",s)))+'</strong></td>\n <td><input type="text" name="name" size="50" value="';(d=e.name)?h=d.call(a,{hash:{},data:b}):(d=a&&a.name,h=typeof d===r?d.call(a,{hash:{},data:b}):d);c+=p(h)+'" class="username" ';if((h=e.unless.call(a,a&&a.canChangeName,{hash:{},inverse:q.noop,fn:q.program(17,function(a,d){return'disabled="disabled"'},b),
|
||||
data:b}))||0===h)c+=h;c+="/></td>\n </tr>\n ";if((h=e["if"].call(a,a&&a.showEmail,{hash:{},inverse:q.noop,fn:q.program(19,function(a,d){var b,c,g;b=""+("\n <tr>\n <td><strong>"+p((c=e.l10n||a&&a.l10n,g={hash:{},data:d},c?c.call(a,"Email:",g):f.call(a,"l10n","Email:",g)))+'</strong></td>\n <td><input type="text" name="email" size="50" value="');(c=e.email)?c=c.call(a,{hash:{},data:d}):(c=a&&a.email,c=typeof c===r?c.call(a,{hash:{},data:d}):c);return b+=p(c)+'" class="username"/></td>\n </tr>\n '},
|
||||
b),data:b}))||0===h)c+=h;c+="\n ";if((h=e["if"].call(a,a&&a.showMessage,{hash:{},inverse:q.noop,fn:q.program(21,function(a,c){var d,b,g;d=""+("\n <tr>\n <td><strong>"+p((b=e.l10n||a&&a.l10n,g={hash:{},data:c},b?b.call(a,"Initial Question:",g):f.call(a,"l10n","Initial Question:",g)))+'</strong></td>\n <td valign="top"><textarea name="message" tabindex="0" cols="45" rows="2">');(b=e.message)?b=b.call(a,{hash:{},data:c}):(b=a&&a.message,b=typeof b===r?b.call(a,{hash:{},
|
||||
data:c}):b);return d+=p(b)+"</textarea></td>\n </tr>\n "},b),data:b}))||0===h)c+=h;return c+='\n </table>\n <a href="javascript:void(0);" class="but" id="submit-survey">'+p((d=e.l10n||a&&a.l10n,s={hash:{},data:b},d?d.call(a,"Start Chat",s):f.call(a,"l10n","Start Chat",s)))+'</a>\n <div class="clear"> </div>\n</form>\n<div id="ajax-loader"><img src="'+p((h=(h=a&&a.page,null==h||!1===h?h:h.tplRoot),typeof h===r?h.apply(a):h))+'/images/ajax-loader.gif" alt="Loading..." /></div>'});
|
||||
v.survey_layout=u(function(c,a,e,d,b){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,c.helpers);d=this.merge(d,c.partials);b=b||{};var g,k,l=e.helperMissing,t=this.escapeExpression;c="\n";if((d=this.invokePartial(d._logo,"_logo",a,e,d,b))||0===d)c+=d;return c+='\n\n\n<div id="headers">\n <div class="wndb"><div class="wndl"><div class="wndr"><div class="wndt"><div class="wndtl"><div class="wndtr"><div class="wndbl"><div class="wndbr">\n <div class="buttons">\n <a href="javascript:window.close();" title="'+
|
||||
t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Close",k):l.call(a,"l10n","Close",k)))+'"><img class="tpl-image iclosewin" src="'+t((d=(d=a&&a.page,null==d||!1===d?d:d.tplRoot),"function"===typeof d?d.apply(a):d))+'/images/free.gif" alt="'+t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Close",k):l.call(a,"l10n","Close",k)))+'" /></a>\n </div>\n <div class="messagetxt">'+t((g=e.l10n||a&&a.l10n,k={hash:{},data:b},g?g.call(a,"Thank you for contacting us. Please fill out the form below and click the Start Chat button.",
|
||||
k):l.call(a,"l10n","Thank you for contacting us. Please fill out the form below and click the Start Chat button.",k)))+'</div>\n </div></div></div></div></div></div></div></div>\n</div>\n\n\n<div id="content-wrapper"></div>'})})();
|
||||
|
@ -1 +1 @@
|
||||
<div class="tpl-image" title="{{l10n "chat.window.close_title"}}"></div>
|
||||
<div class="tpl-image" title="{{l10n "Close chat"}}"></div>
|
@ -1 +1 @@
|
||||
<div class="tpl-image" title="{{l10n "page.analysis.userhistory.title"}}"></div>
|
||||
<div class="tpl-image" title="{{l10n "Visit history"}}"></div>
|
@ -1,3 +1,3 @@
|
||||
{{#if user.canPost}}
|
||||
<div class="tpl-image" title="{{l10n "chat.window.toolbar.redirect_user"}}"></div>
|
||||
<div class="tpl-image" title="{{l10n "Redirect visitor to another operator"}}"></div>
|
||||
{{/if}}
|
@ -1 +1 @@
|
||||
<div class="tpl-image" title="{{l10n "chat.window.toolbar.refresh"}}"></div>
|
||||
<div class="tpl-image" title="{{l10n "Refresh"}}"></div>
|
@ -1 +1 @@
|
||||
<div class="tpl-image" title="{{l10n "chat.window.toolbar.mail_history"}}"></div>
|
||||
<div class="tpl-image" title="{{l10n "Send chat history by e-mail"}}"></div>
|
@ -1,5 +1,5 @@
|
||||
{{#if enabled}}
|
||||
<div class="tpl-image sound-control-on" title="{{l10n "chat.window.toolbar.turn_off_sound"}}"></div>
|
||||
<div class="tpl-image sound-control-on" title="{{l10n "Turn off sound"}}"></div>
|
||||
{{else}}
|
||||
<div class="tpl-image sound-control-off" title="{{l10n "chat.window.toolbar.turn_on_sound"}}"></div>
|
||||
<div class="tpl-image sound-control-off" title="{{l10n "Turn on sound"}}"></div>
|
||||
{{/if}}
|
@ -1,12 +1,12 @@
|
||||
{{#if user.canChangeName}}
|
||||
<span class="user-name-control-prefix">{{l10n "chat.client.name"}}</span>
|
||||
<span class="user-name-control-prefix">{{l10n "You are"}}</span>
|
||||
{{#if nameInput}}
|
||||
<div class="user-name-control-input-bg"><input id="user-name-control-input" type="text" size="12" value="{{user.name}}" class="username" /></div>
|
||||
<a href="javascript:void(0)" class="user-name-control-set tpl-image" title="{{l10n "chat.client.changename"}}"></a>
|
||||
<a href="javascript:void(0)" class="user-name-control-set tpl-image" title="{{l10n "Change name"}}"></a>
|
||||
{{else}}
|
||||
<a href="javascript:void(0)" title="{{l10n "chat.client.changename"}}">{{user.name}}</a>
|
||||
<a class="user-name-control-change tpl-image" title="{{l10n "chat.client.changename"}}"></a>
|
||||
<a href="javascript:void(0)" title="{{l10n "Change name"}}">{{user.name}}</a>
|
||||
<a class="user-name-control-change tpl-image" title="{{l10n "Change name"}}"></a>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{l10n "chat.client.name"}} {{user.name}}
|
||||
{{l10n "You are"}} {{user.name}}
|
||||
{{/if}}
|
@ -26,4 +26,4 @@
|
||||
<div id="message-form-region"></div>
|
||||
|
||||
{{! Footer links}}
|
||||
<div id="footer">{{l10n "chat.window.poweredby"}} <a id="poweredByLink" href="http://mibew.org" title="Mibew Community" target="_blank">mibew.org</a></div>
|
||||
<div id="footer">{{l10n "Powered by:"}} <a id="poweredByLink" href="http://mibew.org" title="Mibew Community" target="_blank">mibew.org</a></div>
|
@ -12,14 +12,14 @@
|
||||
<div id="predefined-wrapper">
|
||||
{{#if user.isAgent}}
|
||||
<select id="predefined" size="1" class="answer">
|
||||
<option>{{l10n "chat.window.predefined.select_answer"}}</option>
|
||||
<option>{{l10n "Select answer..."}}</option>
|
||||
{{#each predefinedAnswers}}
|
||||
<option>{{this.short}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
{{/if}}
|
||||
</div>
|
||||
<a href="javascript:void(0)" id="send-message" title="{{l10n "chat.window.send_message"}}">{{l10n "chat.window.send_message_short_and_shortcut"}}</a>
|
||||
<a href="javascript:void(0)" id="send-message" title="{{l10n "Send message"}}">{{l10n "chat.window.send_message_short_and_shortcut"}}</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -1 +1 @@
|
||||
{{l10n "typing.remote"}}
|
||||
{{l10n "Remote user is typing..."}}
|
@ -1,6 +1,6 @@
|
||||
<div class="buttons">
|
||||
<a href="javascript:window.close();" title="{{l10n "leavemessage.close"}}">
|
||||
<img class="tpl-image iclosewin" src="{{page.tplRoot}}/images/free.gif" alt="{{l10n "leavemessage.close"}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n "Close"}}">
|
||||
<img class="tpl-image iclosewin" src="{{page.tplRoot}}/images/free.gif" alt="{{l10n "Close"}}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="messagetxt">{{l10n "leavemessage.descr"}}</div>
|
||||
<div class="messagetxt">{{l10n "Sorry. None of the support team is available at the moment. <br/>Please leave a message and someone will get back to you shortly."}}</div>
|
@ -8,16 +8,16 @@
|
||||
|
||||
<table cellspacing="1" cellpadding="5" border="0" class="form">
|
||||
<tr>
|
||||
<td><strong>{{l10n "form.field.email"}}:</strong></td>
|
||||
<td><strong>{{l10n "Your email"}}:</strong></td>
|
||||
<td><input type="text" name="email" size="50" value="{{email}}" class="username"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{{l10n "form.field.name"}}:</strong></td>
|
||||
<td><strong>{{l10n "Your name"}}:</strong></td>
|
||||
<td><input type="text" name="name" size="50" value="{{name}}" class="username"/></td>
|
||||
</tr>
|
||||
{{#if groups}}
|
||||
<tr>
|
||||
<td class="text"><strong>{{l10n "form.field.department"}}</strong></td>
|
||||
<td class="text"><strong>{{l10n "Choose Department:"}}</strong></td>
|
||||
<td>
|
||||
<select name="group" style="min-width:200px;">
|
||||
{{#each groups}}
|
||||
@ -27,14 +27,14 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text"><strong>{{l10n "form.field.department.description"}}</strong></td>
|
||||
<td class="text"><strong>{{l10n "Department description:"}}</strong></td>
|
||||
<td class="text" id="groupDescription">
|
||||
{{#each groups}}{{#if this.selected}}{{this.description}}{{/if}}{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
<tr>
|
||||
<td><strong>{{l10n "form.field.message"}}:</strong></td>
|
||||
<td><strong>{{l10n "Message"}}:</strong></td>
|
||||
<td valign="top">
|
||||
<textarea name="message" tabindex="0" cols="40" rows="5">{{message}}</textarea>
|
||||
</td>
|
||||
@ -46,7 +46,7 @@
|
||||
</tr>
|
||||
{{/if}}
|
||||
</table>
|
||||
<a href="javascript:void(0);" class="but" id="send-message">{{l10n "mailthread.perform"}}</a>
|
||||
<a href="javascript:void(0);" class="but" id="send-message">{{l10n "Send"}}</a>
|
||||
<div class="clear"> </div>
|
||||
</form>
|
||||
<div id="ajax-loader"><img src="{{page.tplRoot}}/images/ajax-loader.gif" alt="Loading..." /></div>
|
@ -1,6 +1,6 @@
|
||||
<div class="buttons">
|
||||
<a href="javascript:window.close();" title="{{l10n "chat.mailthread.sent.close"}}">
|
||||
<img class="tpl-image iclosewin" src="{{page.tplRoot}}/images/free.gif" alt="{{l10n "chat.mailthread.sent.close"}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n "Close..."}}">
|
||||
<img class="tpl-image iclosewin" src="{{page.tplRoot}}/images/free.gif" alt="{{l10n "Close..."}}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="messagetxt">{{l10n "leavemessage.sent.message"}}</div>
|
||||
<div class="messagetxt">{{l10n "Thank you for your message. We'll answer your query by email as soon as possible."}}</div>
|
@ -12,7 +12,7 @@
|
||||
<table class="form">
|
||||
{{#if groups}}
|
||||
<tr>
|
||||
<td><strong>{{l10n "form.field.department"}}</strong></td>
|
||||
<td><strong>{{l10n "Choose Department:"}}</strong></td>
|
||||
<td>
|
||||
<select name="group">
|
||||
{{#each groups}}
|
||||
@ -22,28 +22,28 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{{l10n "form.field.department.description"}}</strong></td>
|
||||
<td><strong>{{l10n "Department description:"}}</strong></td>
|
||||
<td id="groupDescription">{{#each groups}}{{#if this.selected}}{{this.description}}{{/if}}{{/each}}</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
<tr>
|
||||
<td><strong>{{l10n "presurvey.name"}}</strong></td>
|
||||
<td><strong>{{l10n "Name:"}}</strong></td>
|
||||
<td><input type="text" name="name" size="50" value="{{name}}" class="username" {{#unless canChangeName}}disabled="disabled"{{/unless}}/></td>
|
||||
</tr>
|
||||
{{#if showEmail}}
|
||||
<tr>
|
||||
<td><strong>{{l10n "presurvey.mail"}}</strong></td>
|
||||
<td><strong>{{l10n "Email:"}}</strong></td>
|
||||
<td><input type="text" name="email" size="50" value="{{email}}" class="username"/></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{#if showMessage}}
|
||||
<tr>
|
||||
<td><strong>{{l10n "presurvey.question"}}</strong></td>
|
||||
<td><strong>{{l10n "Initial Question:"}}</strong></td>
|
||||
<td valign="top"><textarea name="message" tabindex="0" cols="45" rows="2">{{message}}</textarea></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
</table>
|
||||
<a href="javascript:void(0);" class="but" id="submit-survey">{{l10n "presurvey.submit"}}</a>
|
||||
<a href="javascript:void(0);" class="but" id="submit-survey">{{l10n "Start Chat"}}</a>
|
||||
<div class="clear"> </div>
|
||||
</form>
|
||||
<div id="ajax-loader"><img src="{{page.tplRoot}}/images/ajax-loader.gif" alt="Loading..." /></div>
|
@ -5,9 +5,9 @@
|
||||
<div id="headers">
|
||||
<div class="wndb"><div class="wndl"><div class="wndr"><div class="wndt"><div class="wndtl"><div class="wndtr"><div class="wndbl"><div class="wndbr">
|
||||
<div class="buttons">
|
||||
<a href="javascript:window.close();" title="{{l10n "leavemessage.close"}}"><img class="tpl-image iclosewin" src="{{page.tplRoot}}/images/free.gif" alt="{{l10n "leavemessage.close"}}" /></a>
|
||||
<a href="javascript:window.close();" title="{{l10n "Close"}}"><img class="tpl-image iclosewin" src="{{page.tplRoot}}/images/free.gif" alt="{{l10n "Close"}}" /></a>
|
||||
</div>
|
||||
<div class="messagetxt">{{l10n "presurvey.intro"}}</div>
|
||||
<div class="messagetxt">{{l10n "Thank you for contacting us. Please fill out the form below and click the Start Chat button."}}</div>
|
||||
</div></div></div></div></div></div></div></div>
|
||||
</div>
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
|
||||
<title>{{#block "windowTitle"}}{{l10n "chat.window.title.user"}}{{/block}}</title>
|
||||
<title>{{#block "windowTitle"}}{{l10n "Mibew Messenger"}}{{/block}}</title>
|
||||
<link rel="shortcut icon" href="{{stylePath}}/images/favicon.ico" type="image/x-icon" />
|
||||
<link rel="stylesheet" type="text/css" href="{{stylePath}}/chat.css" media="all" />
|
||||
{{#block "head"}}{{/block}}
|
||||
@ -30,7 +30,7 @@
|
||||
<img src="{{stylePath}}/images/default-logo.png" alt=""/>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<div id="page-title">{{#block "pageTitle"}}{{l10n "chat.window.title.user"}}{{/block}}</div>
|
||||
<div id="page-title">{{#block "pageTitle"}}{{l10n "Mibew Messenger"}}{{/block}}</div>
|
||||
<div class="clear"> </div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,43 +30,43 @@
|
||||
<script type="text/javascript"><!--
|
||||
// Localized strings for the core
|
||||
Mibew.Localization.set({
|
||||
'chat.close.confirmation': '{{#jsString}}{{l10n "chat.close.confirmation"}}{{/jsString}}',
|
||||
'typing.remote': '{{#jsString}}{{l10n "typing.remote"}}{{/jsString}}',
|
||||
'chat.window.predefined.select_answer': '{{#jsString}}{{l10n "chat.window.predefined.select_answer"}}{{/jsString}}',
|
||||
'chat.window.send_message': '{{#jsString}}{{l10n "chat.window.send_message"}}{{/jsString}}',
|
||||
'chat.window.send_message_short_and_shortcut': '{{#jsString}}{{l10n "chat.window.send_message_short" send_shortcut}}{{/jsString}}',
|
||||
'chat.window.close_title': '{{#jsString}}{{l10n "chat.window.close_title"}}{{/jsString}}',
|
||||
'chat.window.toolbar.refresh': '{{#jsString}}{{l10n "chat.window.toolbar.refresh"}}{{/jsString}}',
|
||||
'chat.window.toolbar.mail_history': '{{#jsString}}{{l10n "chat.window.toolbar.mail_history"}}{{/jsString}}',
|
||||
'chat.window.toolbar.redirect_user': '{{#jsString}}{{l10n "chat.window.toolbar.redirect_user"}}{{/jsString}}',
|
||||
'page.analysis.userhistory.title': '{{#jsString}}{{l10n "page.analysis.userhistory.title"}}{{/jsString}}',
|
||||
'chat.client.name': '{{#jsString}}{{l10n "chat.client.name"}}{{/jsString}}',
|
||||
'chat.client.changename': '{{#jsString}}{{l10n "chat.client.changename"}}{{/jsString}}',
|
||||
'chat.window.toolbar.turn_off_sound': '{{#jsString}}{{l10n "chat.window.toolbar.turn_off_sound"}}{{/jsString}}',
|
||||
'chat.window.toolbar.turn_on_sound': '{{#jsString}}{{l10n "chat.window.toolbar.turn_on_sound"}}{{/jsString}}',
|
||||
'chat.window.poweredby': '{{#jsString}}{{l10n "chat.window.poweredby"}}{{/jsString}}',
|
||||
'chat.mailthread.sent.close': '{{#jsString}}{{l10n "chat.mailthread.sent.close"}}{{/jsString}}',
|
||||
'form.field.department': '{{#jsString}}{{l10n "form.field.department"}}{{/jsString}}',
|
||||
'form.field.department.description': '{{#jsString}}{{l10n "form.field.department.description"}}{{/jsString}}',
|
||||
'form.field.email': '{{#jsString}}{{l10n "form.field.email"}}{{/jsString}}',
|
||||
'form.field.name': '{{#jsString}}{{l10n "form.field.name"}}{{/jsString}}',
|
||||
'form.field.message': '{{#jsString}}{{l10n "form.field.message"}}{{/jsString}}',
|
||||
'leavemessage.close': '{{#jsString}}{{l10n "leavemessage.close"}}{{/jsString}}',
|
||||
'leavemessage.descr': '{{#jsString}}{{l10n "leavemessage.descr"}}{{/jsString}}',
|
||||
'leavemessage.sent.message': '{{#jsString}}{{l10n "leavemessage.sent.message"}}{{/jsString}}',
|
||||
'Are you sure want to leave chat?': '{{#jsString}}{{l10n "Are you sure want to leave chat?"}}{{/jsString}}',
|
||||
'Remote user is typing...': '{{#jsString}}{{l10n "Remote user is typing..."}}{{/jsString}}',
|
||||
'Select answer...': '{{#jsString}}{{l10n "Select answer..."}}{{/jsString}}',
|
||||
'Send message': '{{#jsString}}{{l10n "Send message"}}{{/jsString}}',
|
||||
'chat.window.send_message_short_and_shortcut': '{{#jsString}}{{l10n "Send ({0})" send_shortcut}}{{/jsString}}',
|
||||
'Close chat': '{{#jsString}}{{l10n "Close chat"}}{{/jsString}}',
|
||||
'Refresh': '{{#jsString}}{{l10n "Refresh"}}{{/jsString}}',
|
||||
'Send chat history by e-mail': '{{#jsString}}{{l10n "Send chat history by e-mail"}}{{/jsString}}',
|
||||
'Redirect visitor to another operator': '{{#jsString}}{{l10n "Redirect visitor to another operator"}}{{/jsString}}',
|
||||
'Visit history': '{{#jsString}}{{l10n "Visit history"}}{{/jsString}}',
|
||||
'You are': '{{#jsString}}{{l10n "You are"}}{{/jsString}}',
|
||||
'Change name': '{{#jsString}}{{l10n "Change name"}}{{/jsString}}',
|
||||
'Turn off sound': '{{#jsString}}{{l10n "Turn off sound"}}{{/jsString}}',
|
||||
'Turn on sound': '{{#jsString}}{{l10n "Turn on sound"}}{{/jsString}}',
|
||||
'Powered by:': '{{#jsString}}{{l10n "Powered by:"}}{{/jsString}}',
|
||||
'Close...': '{{#jsString}}{{l10n "Close..."}}{{/jsString}}',
|
||||
'Choose Department:': '{{#jsString}}{{l10n "Choose Department:"}}{{/jsString}}',
|
||||
'Department description:': '{{#jsString}}{{l10n "Department description:"}}{{/jsString}}',
|
||||
'Your email': '{{#jsString}}{{l10n "Your email"}}{{/jsString}}',
|
||||
'Your name': '{{#jsString}}{{l10n "Your name"}}{{/jsString}}',
|
||||
'Message': '{{#jsString}}{{l10n "Message"}}{{/jsString}}',
|
||||
'Close': '{{#jsString}}{{l10n "Close"}}{{/jsString}}',
|
||||
'Sorry. None of the support team is available at the moment. <br/>Please leave a message and someone will get back to you shortly.': '{{#jsString}}{{l10n "Sorry. None of the support team is available at the moment. <br/>Please leave a message and someone will get back to you shortly."}}{{/jsString}}',
|
||||
'Thank you for your message. We\'ll answer your query by email as soon as possible.': '{{#jsString}}{{l10n "Thank you for your message. We'll answer your query by email as soon as possible."}}{{/jsString}}',
|
||||
'leavemessage.error.email.required': '{{#jsString}}{{localized.[email.required]}}{{/jsString}}',
|
||||
'leavemessage.error.name.required': '{{#jsString}}{{localized.[name.required]}}{{/jsString}}',
|
||||
'leavemessage.error.message.required': '{{#jsString}}{{localized.[message.required]}}{{/jsString}}',
|
||||
'leavemessage.error.wrong.email': '{{#jsString}}{{localized.[wrong.email]}}{{/jsString}}',
|
||||
'errors.captcha': '{{#jsString}}{{l10n "errors.captcha"}}{{/jsString}}',
|
||||
'mailthread.perform': '{{#jsString}}{{l10n "mailthread.perform"}}{{/jsString}}',
|
||||
'presurvey.name': '{{#jsString}}{{l10n "presurvey.name"}}{{/jsString}}',
|
||||
'presurvey.mail': '{{#jsString}}{{l10n "presurvey.mail"}}{{/jsString}}',
|
||||
'presurvey.question': '{{#jsString}}{{l10n "presurvey.question"}}{{/jsString}}',
|
||||
'presurvey.submit': '{{#jsString}}{{l10n "presurvey.submit"}}{{/jsString}}',
|
||||
'presurvey.error.wrong_email': '{{#jsString}}{{l10n "presurvey.error.wrong_email"}}{{/jsString}}',
|
||||
'presurvey.title': '{{#jsString}}{{l10n "presurvey.title"}}{{/jsString}}',
|
||||
'presurvey.intro': '{{#jsString}}{{l10n "presurvey.intro"}}{{/jsString}}'
|
||||
'The letters you typed don\'t match the letters that were shown in the picture.': '{{#jsString}}{{l10n "The letters you typed don't match the letters that were shown in the picture."}}{{/jsString}}',
|
||||
'Send': '{{#jsString}}{{l10n "Send"}}{{/jsString}}',
|
||||
'Name:': '{{#jsString}}{{l10n "Name:"}}{{/jsString}}',
|
||||
'Email:': '{{#jsString}}{{l10n "Email:"}}{{/jsString}}',
|
||||
'Initial Question:': '{{#jsString}}{{l10n "Initial Question:"}}{{/jsString}}',
|
||||
'Start Chat': '{{#jsString}}{{l10n "Start Chat"}}{{/jsString}}',
|
||||
'Wrong email address.': '{{#jsString}}{{l10n "Wrong email address."}}{{/jsString}}',
|
||||
'Live support': '{{#jsString}}{{l10n "Live support"}}{{/jsString}}',
|
||||
'Thank you for contacting us. Please fill out the form below and click the Start Chat button.': '{{#jsString}}{{l10n "Thank you for contacting us. Please fill out the form below and click the Start Chat button."}}{{/jsString}}'
|
||||
});
|
||||
// Plugins localization
|
||||
Mibew.Localization.set({{{additional_localized_strings}}});
|
||||
|
@ -1,17 +1,17 @@
|
||||
{{#extends "_layout"}}
|
||||
{{#override "windowTitle"}}{{l10n "chat.error_page.title"}}{{/override}}
|
||||
{{#override "windowTitle"}}{{l10n "Error"}}{{/override}}
|
||||
|
||||
{{#override "pageTitle"}}{{l10n "chat.error_page.title"}}{{/override}}
|
||||
{{#override "pageTitle"}}{{l10n "Error"}}{{/override}}
|
||||
|
||||
{{#override "buttons"}}
|
||||
<a href="javascript:window.close();" title="{{l10n 'chat.error_page.close'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'chat.error_page.close'}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n 'Close...'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'Close...'}}" />
|
||||
</a>
|
||||
{{/override}}
|
||||
|
||||
{{#override "content"}}
|
||||
{{#if errors}}
|
||||
<b>{{l10n "harderrors.header"}}</b><br/>
|
||||
<b>{{l10n "Cannot execute:"}}</b><br/>
|
||||
<ul>
|
||||
{{#each errors}}
|
||||
<li class="error">{{{this}}}</li>
|
||||
|
@ -1,9 +1,9 @@
|
||||
{{#extends "_layout"}}
|
||||
{{#override "pageTitle"}}{{l10n "mailthread.title"}}{{/override}}
|
||||
{{#override "pageTitle"}}{{l10n "Send chat history<br/>by mail"}}{{/override}}
|
||||
|
||||
{{#override "buttons"}}
|
||||
<a href="javascript:window.close();" title="{{l10n 'mailthread.close'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'mailthread.close'}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n 'Close...'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'Close...'}}" />
|
||||
</a>
|
||||
{{/override}}
|
||||
|
||||
@ -12,15 +12,15 @@
|
||||
<input type="hidden" name="style" value="{{styleName}}"/>
|
||||
<input type="hidden" name="level" value="{{level}}"/>
|
||||
|
||||
<strong>{{l10n "mailthread.enter_email"}}</strong>
|
||||
<strong>{{l10n "Enter your email:"}}</strong>
|
||||
<input type="text" name="email" size="20" value="{{formemail}}" class="username" />
|
||||
<a href="javascript:document.mailThreadForm.submit();">{{l10n "mailthread.perform"}}</a>
|
||||
<a href="javascript:document.mailThreadForm.submit();">{{l10n "Send"}}</a>
|
||||
</form>
|
||||
{{/override}}
|
||||
|
||||
{{#override "content"}}
|
||||
{{#if errors}}
|
||||
<b>{{l10n "errors.header"}}</b><br/>
|
||||
<b>{{l10n "Correct the mistakes:"}}</b><br/>
|
||||
<ul>
|
||||
{{#each errors}}
|
||||
<li class="error">{{{this}}}</li>
|
||||
|
@ -1,11 +1,11 @@
|
||||
{{#extends "_layout"}}
|
||||
{{#override "pageTitle"}}{{l10n "chat.mailthread.sent.title"}}{{/override}}
|
||||
{{#override "pageTitle"}}{{l10n "Sent"}}{{/override}}
|
||||
|
||||
{{#override "buttons"}}
|
||||
<a href="javascript:window.close();" title="{{l10n 'chat.mailthread.sent.close'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'chat.mailthread.sent.close'}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n 'Close...'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'Close...'}}" />
|
||||
</a>
|
||||
{{/override}}
|
||||
|
||||
{{#override "message"}}{{l10n "chat.mailthread.sent.content" email}}{{/override}}
|
||||
{{#override "message"}}{{l10n "A history of your chat was sent to address {0}" email}}{{/override}}
|
||||
{{/extends}}
|
@ -1,13 +1,13 @@
|
||||
{{#extends "_layout"}}
|
||||
{{#override "pageTitle"}}{{l10n "chat.error_page.title"}}{{/override}}
|
||||
{{#override "pageTitle"}}{{l10n "Error"}}{{/override}}
|
||||
|
||||
{{#override "buttons"}}
|
||||
<a href="javascript:window.close();" title="{{l10n 'page.chat.old_browser.close'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'page.chat.old_browser.close'}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n 'Close...'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'Close...'}}" />
|
||||
</a>
|
||||
{{/override}}
|
||||
|
||||
{{#override "message"}}<p>{{l10n "page.chat.old_browser.problem"}}</p>{{/override}}
|
||||
{{#override "message"}}<p>{{l10n "Your web browser is not fully supported. \nPlease, use one of the following web browsers:"}}</p>{{/override}}
|
||||
|
||||
{{#override "content"}}
|
||||
<ul>
|
||||
|
@ -1,18 +1,18 @@
|
||||
{{#extends "_layout"}}
|
||||
{{#override "pageTitle"}}{{l10n "chat.redirect.title"}}{{/override}}
|
||||
{{#override "pageTitle"}}{{l10n "Redirect to<br/>another operator"}}{{/override}}
|
||||
|
||||
{{#override "buttons"}}
|
||||
<a href="javascript:window.close();" title="{{l10n 'chat.redirect.back'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'chat.redirect.back'}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n 'Back...'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'Back...'}}" />
|
||||
</a>
|
||||
{{/override}}
|
||||
|
||||
{{#override "message"}}{{l10n "chat.redirect.choose"}}{{/override}}
|
||||
{{#override "message"}}{{l10n "Choose:"}}{{/override}}
|
||||
|
||||
{{#override "content"}}
|
||||
<div class="left">
|
||||
{{#if redirectToAgent}}
|
||||
<strong>{{l10n "chat.redirect.operator"}}</strong>
|
||||
<strong>{{l10n "Operator:"}}</strong>
|
||||
<ul class="agentlist">
|
||||
{{{redirectToAgent}}}
|
||||
</ul>
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
<div class="right">
|
||||
{{#if redirectToGroup}}
|
||||
<strong>{{l10n "chat.redirect.group"}}</strong>
|
||||
<strong>{{l10n "Group:"}}</strong>
|
||||
<ul class="agentlist">
|
||||
{{{redirectToGroup}}}
|
||||
</ul>
|
||||
|
@ -1,9 +1,9 @@
|
||||
{{#extends "_layout"}}
|
||||
{{#override "pageTitle"}}{{l10n "chat.redirected.title"}}{{/override}}
|
||||
{{#override "pageTitle"}}{{l10n "The visitor has been redirected to another operator"}}{{/override}}
|
||||
|
||||
{{#override "buttons"}}
|
||||
<a href="javascript:window.close();" title="{{l10n 'chat.redirected.close'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'chat.redirected.close'}}" />
|
||||
<a href="javascript:window.close();" title="{{l10n 'Close...'}}">
|
||||
<img class="tpl-image iclosewin" src="{{stylePath}}/images/free.gif" alt="{{l10n 'Close...'}}" />
|
||||
</a>
|
||||
{{/override}}
|
||||
|
||||
|
@ -4,32 +4,31 @@
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
(function(){var l=Handlebars.template,m=Handlebars.templates=Handlebars.templates||{};m.agent=l(function(b,a,f,c,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g=f.helperMissing,e=this.escapeExpression;b='<span class="agent-status-';if((c=f["if"].call(a,a&&a.away,{hash:{},inverse:this.program(3,function(a,c){return"online"},d),fn:this.program(1,function(a,c){return"away"},d),data:d}))||0===c)b+=c;b+=' inline-block" title="';if((c=f["if"].call(a,a&&a.away,{hash:{},inverse:this.program(7,
|
||||
function(a,c){var b,h;return e((b=f.l10n||a&&a.l10n,h={hash:{},data:c},b?b.call(a,"pending.status.online",h):g.call(a,"l10n","pending.status.online",h)))},d),fn:this.program(5,function(a,c){var b,h;return e((b=f.l10n||a&&a.l10n,h={hash:{},data:c},b?b.call(a,"pending.status.away",h):g.call(a,"l10n","pending.status.away",h)))},d),data:d}))||0===c)b+=c;b+='"></span>';(c=f.name)?c=c.call(a,{hash:{},data:d}):(c=a&&a.name,c="function"===typeof c?c.call(a,{hash:{},data:d}):c);b+=e(c);if((c=f.unless.call(a,
|
||||
a&&a.isLast,{hash:{},inverse:this.noop,fn:this.program(9,function(a,c){return","},d),data:d}))||0===c)b+=c;return b});m.no_threads=l(function(b,a,f,c,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g,e;b=f.helperMissing;c=this.escapeExpression;return a=""+('<td class="no-threads" colspan="8">'+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"clients.no_clients",e):b.call(a,"l10n","clients.no_clients",e)))+"</td>")});m.no_visitors=l(function(b,a,f,c,d){this.compilerInfo=
|
||||
[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g,e;b=f.helperMissing;c=this.escapeExpression;return a=""+('<td class="no-visitors" colspan="9">'+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.no_visitors",e):b.call(a,"l10n","visitors.no_visitors",e)))+"</td>")});m.queued_thread=l(function(b,a,f,c,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g=f.helperMissing,e=this.escapeExpression;b='<td class="visitor">\n <div><a href="javascript:void(0);" class="user-name open-dialog" title="';
|
||||
if((c=f["if"].call(a,a&&a.canOpen,{hash:{},inverse:this.program(3,function(a,c){var b,h;return e((b=f.l10n||a&&a.l10n,h={hash:{},data:c},b?b.call(a,"pending.table.view",h):g.call(a,"l10n","pending.table.view",h)))},d),fn:this.program(1,function(a,c){var b,h;return e((b=f.l10n||a&&a.l10n,h={hash:{},data:c},b?b.call(a,"pending.table.speak",h):g.call(a,"l10n","pending.table.speak",h)))},d),data:d}))||0===c)b+=c;b+='">';if((c=f["if"].call(a,a&&a.ban,{hash:{},inverse:this.noop,fn:this.program(5,function(a,
|
||||
c){var b,h,d;return b=""+(e((h=f.l10n||a&&a.l10n,d={hash:{},data:c},h?h.call(a,"chat.client.spam.prefix",d):g.call(a,"l10n","chat.client.spam.prefix",d)))+" ")},d),data:d}))||0===c)b+=c;(c=f.userName)?c=c.call(a,{hash:{},data:d}):(c=a&&a.userName,c="function"===typeof c?c.call(a,{hash:{},data:d}):c);b+=e(c)+"</a></div>\n ";if((c=f["if"].call(a,a&&a.firstMessage,{hash:{},inverse:this.noop,fn:this.program(7,function(a,c){var b,h;b='<div class="first-message"><a href="javascript:void(0);" title="';
|
||||
(h=f.firstMessage)?h=h.call(a,{hash:{},data:c}):(h=a&&a.firstMessage,h="function"===typeof h?h.call(a,{hash:{},data:c}):h);b+=e(h)+'">';(h=f.firstMessagePreview)?h=h.call(a,{hash:{},data:c}):(h=a&&a.firstMessagePreview,h="function"===typeof h?h.call(a,{hash:{},data:c}):h);return b+=e(h)+"</a></div>"},d),data:d}))||0===c)b+=c;b+='\n</td>\n<td class="visitor">\n <div class="default-thread-controls inline-block">\n ';if((c=f["if"].call(a,a&&a.canOpen,{hash:{},inverse:this.noop,fn:this.program(9,
|
||||
function(a,c){var b,h,d;return b=""+('\n <div class="control open-dialog open-control inline-block" title="'+e((h=f.l10n||a&&a.l10n,d={hash:{},data:c},h?h.call(a,"pending.table.speak",d):g.call(a,"l10n","pending.table.speak",d)))+'"></div>\n ')},d),data:d}))||0===c)b+=c;b+="\n ";if((c=f["if"].call(a,a&&a.canView,{hash:{},inverse:this.noop,fn:this.program(11,function(a,c){var b,d,n;return b=""+('\n <div class="control view-control inline-block" title="'+e((d=f.l10n||
|
||||
a&&a.l10n,n={hash:{},data:c},d?d.call(a,"pending.table.view",n):g.call(a,"l10n","pending.table.view",n)))+'"></div>\n ')},d),data:d}))||0===c)b+=c;b+="\n ";if((c=f["if"].call(a,a&&a.tracked,{hash:{},inverse:this.noop,fn:this.program(13,function(a,c){var b,d,n;return b=""+('\n <div class="control track-control inline-block" title="'+e((d=f.l10n||a&&a.l10n,n={hash:{},data:c},d?d.call(a,"pending.table.tracked",n):g.call(a,"l10n","pending.table.tracked",n)))+'"></div>\n ')},
|
||||
d),data:d}))||0===c)b+=c;b+="\n ";if((c=f["if"].call(a,a&&a.canBan,{hash:{},inverse:this.noop,fn:this.program(15,function(a,c){var b,d,n;return b=""+('\n <div class="control ban-control inline-block" title="'+e((d=f.l10n||a&&a.l10n,n={hash:{},data:c},d?d.call(a,"pending.table.ban",n):g.call(a,"l10n","pending.table.ban",n)))+'"></div>\n ')},d),data:d}))||0===c)b+=c;b+='\n </div>\n <div class="thread-controls inline-block"></div>\n</td>\n<td class="visitor">';if((c=f["if"].call(a,
|
||||
a&&a.userIp,{hash:{},inverse:this.program(19,function(a,c){var b;(b=f.remote)?b=b.call(a,{hash:{},data:c}):(b=a&&a.remote,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);return e(b)},d),fn:this.program(17,function(a,c){var b,d;b='<a href="javascript:void(0);" class="geo-link" title="GeoLocation">';(d=f.remote)?d=d.call(a,{hash:{},data:c}):(d=a&&a.remote,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=e(d)+"</a>"},d),data:d}))||0===c)b+=c;b+='</td>\n<td class="visitor">';(c=f.stateDesc)?
|
||||
c=c.call(a,{hash:{},data:d}):(c=a&&a.stateDesc,c="function"===typeof c?c.call(a,{hash:{},data:d}):c);b+=e(c)+'</td>\n<td class="visitor">';(c=f.agentName)?c=c.call(a,{hash:{},data:d}):(c=a&&a.agentName,c="function"===typeof c?c.call(a,{hash:{},data:d}):c);b+=e(c)+'</td>\n<td class="visitor"><span class="timesince" data-timestamp="';(c=f.totalTime)?c=c.call(a,{hash:{},data:d}):(c=a&&a.totalTime,c="function"===typeof c?c.call(a,{hash:{},data:d}):c);b+=e(c)+'"></span></td>\n<td class="visitor">';if((c=
|
||||
f.unless.call(a,a&&a.chatting,{hash:{},inverse:this.program(23,function(a,c){return"-"},d),fn:this.program(21,function(a,c){var b,d;b='<span class="timesince" data-timestamp="';(d=f.waitingTime)?d=d.call(a,{hash:{},data:c}):(d=a&&a.waitingTime,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=e(d)+'"></span>'},d),data:d}))||0===c)b+=c;b+='</td>\n<td class="visitor">';if((c=f["if"].call(a,a&&a.ban,{hash:{},inverse:this.program(27,function(a,c){var b;(b=f.userAgent)?b=b.call(a,{hash:{},
|
||||
data:c}):(b=a&&a.userAgent,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);return e(b)},d),fn:this.program(25,function(a,c){var b;return e((b=(b=a&&a.ban,null==b||!1===b?b:b.reason),"function"===typeof b?b.apply(a):b))},d),data:d}))||0===c)b+=c;return b+"</td>"});m.status_panel=l(function(b,a,f,c,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g=f.helperMissing,e=this.escapeExpression;b='<div id="connstatus">';(c=f.message)?c=c.call(a,{hash:{},data:d}):(c=a&&a.message,
|
||||
c="function"===typeof c?c.call(a,{hash:{},data:d}):c);b+=e(c);if((c=f["if"].call(a,(c=a&&a.agent,null==c||!1===c?c:c.away),{hash:{},inverse:this.program(3,function(a,c){var b,d;return e((b=f.l10n||a&&a.l10n,d={hash:{},data:c},b?b.call(a,"pending.status.online",d):g.call(a,"l10n","pending.status.online",d)))},d),fn:this.program(1,function(a,b){var c,d;return e((c=f.l10n||a&&a.l10n,d={hash:{},data:b},c?c.call(a,"pending.status.away",d):g.call(a,"l10n","pending.status.away",d)))},d),data:d}))||0===c)b+=
|
||||
c;b+='</div><div id="connlinks"><a href="javascript:void(0);" id="change-status">';if((c=f["if"].call(a,(c=a&&a.agent,null==c||!1===c?c:c.away),{hash:{},inverse:this.program(7,function(a,c){var b,d;return e((b=f.l10n||a&&a.l10n,d={hash:{},data:c},b?b.call(a,"pending.status.setaway",d):g.call(a,"l10n","pending.status.setaway",d)))},d),fn:this.program(5,function(a,b){var c,d;return e((c=f.l10n||a&&a.l10n,d={hash:{},data:b},c?c.call(a,"pending.status.setonline",d):g.call(a,"l10n","pending.status.setonline",
|
||||
d)))},d),data:d}))||0===c)b+=c;return b+"</a></div>"});m.threads_collection=l(function(b,a,f,c,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g,e;b=f.helperMissing;c=this.escapeExpression;return a=""+('<table class="awaiting" border="0">\n<thead>\n<tr>\n <th class="first">'+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.name",e):b.call(a,"l10n","pending.table.head.name",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,
|
||||
"pending.table.head.actions",e):b.call(a,"l10n","pending.table.head.actions",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.contactid",e):b.call(a,"l10n","pending.table.head.contactid",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.state",e):b.call(a,"l10n","pending.table.head.state",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.operator",e):b.call(a,
|
||||
"l10n","pending.table.head.operator",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.total",e):b.call(a,"l10n","pending.table.head.total",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.waittime",e):b.call(a,"l10n","pending.table.head.waittime",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"pending.table.head.etc",e):b.call(a,"l10n","pending.table.head.etc",e)))+'</th>\n</tr>\n</thead>\n<tbody id="threads-container">\n\n</tbody>\n</table>')});
|
||||
m.visitor=l(function(b,a,f,c,d){function g(a,c){return"-"}this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var e,l,m=f.helperMissing,k=this.escapeExpression;b='<td class="visitor">\n ';if((c=f.unless.call(a,a&&a.invitationInfo,{hash:{},inverse:this.program(3,function(a,c){var b;(b=f.userName)?b=b.call(a,{hash:{},data:c}):(b=a&&a.userName,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);return k(b)},d),fn:this.program(1,function(a,b){var c,d,e;c=""+('<a href="javascript:void(0);" class="invite-link" title="'+
|
||||
k((d=f.l10n||a&&a.l10n,e={hash:{},data:b},d?d.call(a,"pending.table.invite",e):m.call(a,"l10n","pending.table.invite",e)))+'">');(d=f.userName)?d=d.call(a,{hash:{},data:b}):(d=a&&a.userName,d="function"===typeof d?d.call(a,{hash:{},data:b}):d);return c+=k(d)+"</a>"},d),data:d}))||0===c)b+=c;b+='\n</td>\n<td class="visitor">\n <div class="default-visitor-controls inline-block">\n <div class="control track-control inline-block" title="'+k((e=f.l10n||a&&a.l10n,l={hash:{},data:d},e?e.call(a,
|
||||
"pending.table.tracked",l):m.call(a,"l10n","pending.table.tracked",l)))+'"></div>\n </div>\n <div class="visitor-controls inline-block"></div>\n</td>\n<td class="visitor">';if((c=f["if"].call(a,a&&a.userIp,{hash:{},inverse:this.program(7,function(a,b){var c;(c=f.remote)?c=c.call(a,{hash:{},data:b}):(c=a&&a.remote,c="function"===typeof c?c.call(a,{hash:{},data:b}):c);return k(c)},d),fn:this.program(5,function(a,c){var b,d;b='<a href="javascript:void(0);" class="geo-link" title="GeoLocation">';
|
||||
(d=f.remote)?d=d.call(a,{hash:{},data:c}):(d=a&&a.remote,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=k(d)+"</a>"},d),data:d}))||0===c)b+=c;b+='</td>\n<td class="visitor"><span class="timesince" data-timestamp="';(e=f.firstTime)?c=e.call(a,{hash:{},data:d}):(e=a&&a.firstTime,c="function"===typeof e?e.call(a,{hash:{},data:d}):e);b+=k(c)+'"></span></td>\n<td class="visitor"><span class="timesince" data-timestamp="';(e=f.lastTime)?c=e.call(a,{hash:{},data:d}):(e=a&&a.lastTime,c="function"===
|
||||
typeof e?e.call(a,{hash:{},data:d}):e);b+=k(c)+'"></span></td>\n<td class="visitor">';if((c=f["if"].call(a,a&&a.invitationInfo,{hash:{},inverse:this.program(11,g,d),fn:this.program(9,function(a,c){var b;return k((b=(b=a&&a.invitationInfo,null==b||!1===b?b:b.agentName),"function"===typeof b?b.apply(a):b))},d),data:d}))||0===c)b+=c;b+='</td>\n<td class="visitor">';if((c=f["if"].call(a,a&&a.invitationInfo,{hash:{},inverse:this.program(11,g,d),fn:this.program(13,function(a,b){var c,d;return c=""+('<span class="timesince" data-timestamp="'+
|
||||
k((d=(d=a&&a.invitationInfo,null==d||!1===d?d:d.time),"function"===typeof d?d.apply(a):d))+'"></span>')},d),data:d}))||0===c)b+=c;b+='</td>\n<td class="visitor">';(e=f.invitations)?c=e.call(a,{hash:{},data:d}):(e=a&&a.invitations,c="function"===typeof e?e.call(a,{hash:{},data:d}):e);b+=k(c)+" / ";(e=f.chats)?c=e.call(a,{hash:{},data:d}):(e=a&&a.chats,c="function"===typeof e?e.call(a,{hash:{},data:d}):e);b+=k(c)+'</td>\n<td class="visitor">';(e=f.userAgent)?c=e.call(a,{hash:{},data:d}):(e=a&&a.userAgent,
|
||||
c="function"===typeof e?e.call(a,{hash:{},data:d}):e);return b+=k(c)+"</td>"});m.visitors_collection=l(function(b,a,f,c,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,b.helpers);d=d||{};var g,e;b=f.helperMissing;c=this.escapeExpression;return a=""+('<table id="visitorslist" class="awaiting" border="0">\n<thead>\n<tr>\n <th class="first">'+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.name",e):b.call(a,"l10n","visitors.table.head.name",e)))+"</th>\n <th>"+c((g=
|
||||
f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.actions",e):b.call(a,"l10n","visitors.table.head.actions",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.contactid",e):b.call(a,"l10n","visitors.table.head.contactid",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.firsttimeonsite",e):b.call(a,"l10n","visitors.table.head.firsttimeonsite",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,
|
||||
e={hash:{},data:d},g?g.call(a,"visitors.table.head.lasttimeonsite",e):b.call(a,"l10n","visitors.table.head.lasttimeonsite",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.invited.by",e):b.call(a,"l10n","visitors.table.head.invited.by",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.invitationtime",e):b.call(a,"l10n","visitors.table.head.invitationtime",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e=
|
||||
{hash:{},data:d},g?g.call(a,"visitors.table.head.invitations",e):b.call(a,"l10n","visitors.table.head.invitations",e)))+"</th>\n <th>"+c((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"visitors.table.head.etc",e):b.call(a,"l10n","visitors.table.head.etc",e)))+'</th>\n</tr>\n</thead>\n<tbody id="visitors-container">\n</tbody>\n</table>')})})();
|
||||
(function(){var l=Handlebars.template,m=Handlebars.templates=Handlebars.templates||{};m.visitor=l(function(c,a,f,b,d){function g(a,b){return"-"}this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var e,n,p=f.helperMissing,k=this.escapeExpression;c='<td class="visitor">\n ';if((b=f.unless.call(a,a&&a.invitationInfo,{hash:{},inverse:this.program(3,function(a,b){var c;(c=f.userName)?c=c.call(a,{hash:{},data:b}):(c=a&&a.userName,c="function"===typeof c?c.call(a,{hash:{},data:b}):c);
|
||||
return k(c)},d),fn:this.program(1,function(a,b){var c,e,d;c=""+('<a href="javascript:void(0);" class="invite-link" title="'+k((e=f.l10n||a&&a.l10n,d={hash:{},data:b},e?e.call(a,"Invite to chat",d):p.call(a,"l10n","Invite to chat",d)))+'">');(e=f.userName)?e=e.call(a,{hash:{},data:b}):(e=a&&a.userName,e="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c+=k(e)+"</a>"},d),data:d}))||0===b)c+=b;c+='\n</td>\n<td class="visitor">\n <div class="default-visitor-controls inline-block">\n <div class="control track-control inline-block" title="'+
|
||||
k((e=f.l10n||a&&a.l10n,n={hash:{},data:d},e?e.call(a,"Tracked visitor's path",n):p.call(a,"l10n","Tracked visitor's path",n)))+'"></div>\n </div>\n <div class="visitor-controls inline-block"></div>\n</td>\n<td class="visitor">';if((b=f["if"].call(a,a&&a.userIp,{hash:{},inverse:this.program(7,function(a,b){var c;(c=f.remote)?c=c.call(a,{hash:{},data:b}):(c=a&&a.remote,c="function"===typeof c?c.call(a,{hash:{},data:b}):c);return k(c)},d),fn:this.program(5,function(a,b){var c,e;c='<a href="javascript:void(0);" class="geo-link" title="GeoLocation">';
|
||||
(e=f.remote)?e=e.call(a,{hash:{},data:b}):(e=a&&a.remote,e="function"===typeof e?e.call(a,{hash:{},data:b}):e);return c+=k(e)+"</a>"},d),data:d}))||0===b)c+=b;c+='</td>\n<td class="visitor"><span class="timesince" data-timestamp="';(e=f.firstTime)?b=e.call(a,{hash:{},data:d}):(e=a&&a.firstTime,b="function"===typeof e?e.call(a,{hash:{},data:d}):e);c+=k(b)+'"></span></td>\n<td class="visitor"><span class="timesince" data-timestamp="';(e=f.lastTime)?b=e.call(a,{hash:{},data:d}):(e=a&&a.lastTime,b="function"===
|
||||
typeof e?e.call(a,{hash:{},data:d}):e);c+=k(b)+'"></span></td>\n<td class="visitor">';if((b=f["if"].call(a,a&&a.invitationInfo,{hash:{},inverse:this.program(11,g,d),fn:this.program(9,function(a,b){var c;return k((c=(c=a&&a.invitationInfo,null==c||!1===c?c:c.agentName),"function"===typeof c?c.apply(a):c))},d),data:d}))||0===b)c+=b;c+='</td>\n<td class="visitor">';if((b=f["if"].call(a,a&&a.invitationInfo,{hash:{},inverse:this.program(11,g,d),fn:this.program(13,function(a,b){var c,e;return c=""+('<span class="timesince" data-timestamp="'+
|
||||
k((e=(e=a&&a.invitationInfo,null==e||!1===e?e:e.time),"function"===typeof e?e.apply(a):e))+'"></span>')},d),data:d}))||0===b)c+=b;c+='</td>\n<td class="visitor">';(e=f.invitations)?b=e.call(a,{hash:{},data:d}):(e=a&&a.invitations,b="function"===typeof e?e.call(a,{hash:{},data:d}):e);c+=k(b)+" / ";(e=f.chats)?b=e.call(a,{hash:{},data:d}):(e=a&&a.chats,b="function"===typeof e?e.call(a,{hash:{},data:d}):e);c+=k(b)+'</td>\n<td class="visitor">';(e=f.userAgent)?b=e.call(a,{hash:{},data:d}):(e=a&&a.userAgent,
|
||||
b="function"===typeof e?e.call(a,{hash:{},data:d}):e);return c+=k(b)+"</td>"});m.visitors_collection=l(function(c,a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g,e;c=f.helperMissing;b=this.escapeExpression;return a=""+('<table id="visitorslist" class="awaiting" border="0">\n<thead>\n<tr>\n <th class="first">'+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Name",e):c.call(a,"l10n","Name",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?
|
||||
g.call(a,"Actions",e):c.call(a,"l10n","Actions",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Visitor's address",e):c.call(a,"l10n","Visitor's address",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"First seen",e):c.call(a,"l10n","First seen",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Last seen",e):c.call(a,"l10n","Last seen",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Invited by",
|
||||
e):c.call(a,"l10n","Invited by",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Invitation time",e):c.call(a,"l10n","Invitation time",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Invitations / Chats",e):c.call(a,"l10n","Invitations / Chats",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Misc",e):c.call(a,"l10n","Misc",e)))+'</th>\n</tr>\n</thead>\n<tbody id="visitors-container">\n</tbody>\n</table>')});m.agent=
|
||||
l(function(c,a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g=f.helperMissing,e=this.escapeExpression;c='<span class="agent-status-';if((b=f["if"].call(a,a&&a.away,{hash:{},inverse:this.program(3,function(a,b){return"online"},d),fn:this.program(1,function(a,b){return"away"},d),data:d}))||0===b)c+=b;c+=' inline-block" title="';if((b=f["if"].call(a,a&&a.away,{hash:{},inverse:this.program(7,function(a,b){var c,d;return e((c=f.l10n||a&&a.l10n,d={hash:{},data:b},c?c.call(a,
|
||||
"Up to date",d):g.call(a,"l10n","Up to date",d)))},d),fn:this.program(5,function(a,b){var c,d;return e((c=f.l10n||a&&a.l10n,d={hash:{},data:b},c?c.call(a,"Away",d):g.call(a,"l10n","Away",d)))},d),data:d}))||0===b)c+=b;c+='"></span>';(b=f.name)?b=b.call(a,{hash:{},data:d}):(b=a&&a.name,b="function"===typeof b?b.call(a,{hash:{},data:d}):b);c+=e(b);if((b=f.unless.call(a,a&&a.isLast,{hash:{},inverse:this.noop,fn:this.program(9,function(a,b){return","},d),data:d}))||0===b)c+=b;return c});m.no_threads=
|
||||
l(function(c,a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g,e;c=f.helperMissing;b=this.escapeExpression;return a=""+('<td class="no-threads" colspan="8">'+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"The list of visitors waiting is empty",e):c.call(a,"l10n","The list of visitors waiting is empty",e)))+"</td>")});m.no_visitors=l(function(c,a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g,e;c=f.helperMissing;b=this.escapeExpression;
|
||||
return a=""+('<td class="no-visitors" colspan="9">'+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"There are no visitors ready to chat on your site at present time",e):c.call(a,"l10n","There are no visitors ready to chat on your site at present time",e)))+"</td>")});m.queued_thread=l(function(c,a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g=f.helperMissing,e=this.escapeExpression;c='<td class="visitor">\n <div><a href="javascript:void(0);" class="user-name open-dialog" title="';
|
||||
if((b=f["if"].call(a,a&&a.canOpen,{hash:{},inverse:this.program(3,function(a,b){var c,d;return e((c=f.l10n||a&&a.l10n,d={hash:{},data:b},c?c.call(a,"Watch the chat",d):g.call(a,"l10n","Watch the chat",d)))},d),fn:this.program(1,function(a,b){var c,d;return e((c=f.l10n||a&&a.l10n,d={hash:{},data:b},c?c.call(a,"Click to chat with the visitor",d):g.call(a,"l10n","Click to chat with the visitor",d)))},d),data:d}))||0===b)c+=b;c+='">';if((b=f["if"].call(a,a&&a.ban,{hash:{},inverse:this.noop,fn:this.program(5,
|
||||
function(a,b){var c,d,h;return c=""+(e((d=f.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"[spam]",h):g.call(a,"l10n","[spam]",h)))+" ")},d),data:d}))||0===b)c+=b;(b=f.userName)?b=b.call(a,{hash:{},data:d}):(b=a&&a.userName,b="function"===typeof b?b.call(a,{hash:{},data:d}):b);c+=e(b)+"</a></div>\n ";if((b=f["if"].call(a,a&&a.firstMessage,{hash:{},inverse:this.noop,fn:this.program(7,function(a,b){var c,d;c='<div class="first-message"><a href="javascript:void(0);" title="';(d=f.firstMessage)?
|
||||
d=d.call(a,{hash:{},data:b}):(d=a&&a.firstMessage,d="function"===typeof d?d.call(a,{hash:{},data:b}):d);c+=e(d)+'">';(d=f.firstMessagePreview)?d=d.call(a,{hash:{},data:b}):(d=a&&a.firstMessagePreview,d="function"===typeof d?d.call(a,{hash:{},data:b}):d);return c+=e(d)+"</a></div>"},d),data:d}))||0===b)c+=b;c+='\n</td>\n<td class="visitor">\n <div class="default-thread-controls inline-block">\n ';if((b=f["if"].call(a,a&&a.canOpen,{hash:{},inverse:this.noop,fn:this.program(9,function(a,b){var c,
|
||||
d,h;return c=""+('\n <div class="control open-dialog open-control inline-block" title="'+e((d=f.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Click to chat with the visitor",h):g.call(a,"l10n","Click to chat with the visitor",h)))+'"></div>\n ')},d),data:d}))||0===b)c+=b;c+="\n ";if((b=f["if"].call(a,a&&a.canView,{hash:{},inverse:this.noop,fn:this.program(11,function(a,b){var c,d,h;return c=""+('\n <div class="control view-control inline-block" title="'+e((d=f.l10n||
|
||||
a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Watch the chat",h):g.call(a,"l10n","Watch the chat",h)))+'"></div>\n ')},d),data:d}))||0===b)c+=b;c+="\n ";if((b=f["if"].call(a,a&&a.tracked,{hash:{},inverse:this.noop,fn:this.program(13,function(a,b){var c,d,h;return c=""+('\n <div class="control track-control inline-block" title="'+e((d=f.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Tracked visitor's path",h):g.call(a,"l10n","Tracked visitor's path",h)))+'"></div>\n ')},
|
||||
d),data:d}))||0===b)c+=b;c+="\n ";if((b=f["if"].call(a,a&&a.canBan,{hash:{},inverse:this.noop,fn:this.program(15,function(a,b){var c,d,h;return c=""+('\n <div class="control ban-control inline-block" title="'+e((d=f.l10n||a&&a.l10n,h={hash:{},data:b},d?d.call(a,"Ban this visitor",h):g.call(a,"l10n","Ban this visitor",h)))+'"></div>\n ')},d),data:d}))||0===b)c+=b;c+='\n </div>\n <div class="thread-controls inline-block"></div>\n</td>\n<td class="visitor">';if((b=f["if"].call(a,
|
||||
a&&a.userIp,{hash:{},inverse:this.program(19,function(a,b){var c;(c=f.remote)?c=c.call(a,{hash:{},data:b}):(c=a&&a.remote,c="function"===typeof c?c.call(a,{hash:{},data:b}):c);return e(c)},d),fn:this.program(17,function(a,c){var b,d;b='<a href="javascript:void(0);" class="geo-link" title="GeoLocation">';(d=f.remote)?d=d.call(a,{hash:{},data:c}):(d=a&&a.remote,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=e(d)+"</a>"},d),data:d}))||0===b)c+=b;c+='</td>\n<td class="visitor">';(b=f.stateDesc)?
|
||||
b=b.call(a,{hash:{},data:d}):(b=a&&a.stateDesc,b="function"===typeof b?b.call(a,{hash:{},data:d}):b);c+=e(b)+'</td>\n<td class="visitor">';(b=f.agentName)?b=b.call(a,{hash:{},data:d}):(b=a&&a.agentName,b="function"===typeof b?b.call(a,{hash:{},data:d}):b);c+=e(b)+'</td>\n<td class="visitor"><span class="timesince" data-timestamp="';(b=f.totalTime)?b=b.call(a,{hash:{},data:d}):(b=a&&a.totalTime,b="function"===typeof b?b.call(a,{hash:{},data:d}):b);c+=e(b)+'"></span></td>\n<td class="visitor">';if((b=
|
||||
f.unless.call(a,a&&a.chatting,{hash:{},inverse:this.program(23,function(a,c){return"-"},d),fn:this.program(21,function(a,c){var b,d;b='<span class="timesince" data-timestamp="';(d=f.waitingTime)?d=d.call(a,{hash:{},data:c}):(d=a&&a.waitingTime,d="function"===typeof d?d.call(a,{hash:{},data:c}):d);return b+=e(d)+'"></span>'},d),data:d}))||0===b)c+=b;c+='</td>\n<td class="visitor">';if((b=f["if"].call(a,a&&a.ban,{hash:{},inverse:this.program(27,function(a,c){var b;(b=f.userAgent)?b=b.call(a,{hash:{},
|
||||
data:c}):(b=a&&a.userAgent,b="function"===typeof b?b.call(a,{hash:{},data:c}):b);return e(b)},d),fn:this.program(25,function(a,b){var c;return e((c=(c=a&&a.ban,null==c||!1===c?c:c.reason),"function"===typeof c?c.apply(a):c))},d),data:d}))||0===b)c+=b;return c+"</td>"});m.status_panel=l(function(c,a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g=f.helperMissing,e=this.escapeExpression;c='<div id="connstatus">';(b=f.message)?b=b.call(a,{hash:{},data:d}):(b=a&&a.message,
|
||||
b="function"===typeof b?b.call(a,{hash:{},data:d}):b);c+=e(b);if((b=f["if"].call(a,(b=a&&a.agent,null==b||!1===b?b:b.away),{hash:{},inverse:this.program(3,function(a,c){var b,d;return e((b=f.l10n||a&&a.l10n,d={hash:{},data:c},b?b.call(a,"Up to date",d):g.call(a,"l10n","Up to date",d)))},d),fn:this.program(1,function(a,c){var b,d;return e((b=f.l10n||a&&a.l10n,d={hash:{},data:c},b?b.call(a,"Away",d):g.call(a,"l10n","Away",d)))},d),data:d}))||0===b)c+=b;c+='</div><div id="connlinks"><a href="javascript:void(0);" id="change-status">';
|
||||
if((b=f["if"].call(a,(b=a&&a.agent,null==b||!1===b?b:b.away),{hash:{},inverse:this.program(7,function(a,c){var b,d;return e((b=f.l10n||a&&a.l10n,d={hash:{},data:c},b?b.call(a,'Set status as "Away"',d):g.call(a,"l10n",'Set status as "Away"',d)))},d),fn:this.program(5,function(a,c){var b,d;return e((b=f.l10n||a&&a.l10n,d={hash:{},data:c},b?b.call(a,'Set status as "Available"',d):g.call(a,"l10n",'Set status as "Available"',d)))},d),data:d}))||0===b)c+=b;return c+"</a></div>"});m.threads_collection=l(function(c,
|
||||
a,f,b,d){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,c.helpers);d=d||{};var g,e;c=f.helperMissing;b=this.escapeExpression;return a=""+('<table class="awaiting" border="0">\n<thead>\n<tr>\n <th class="first">'+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Name",e):c.call(a,"l10n","Name",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Actions",e):c.call(a,"l10n","Actions",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Visitor's address",
|
||||
e):c.call(a,"l10n","Visitor's address",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"State",e):c.call(a,"l10n","State",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Operator",e):c.call(a,"l10n","Operator",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Total time",e):c.call(a,"l10n","Total time",e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Waiting time",e):c.call(a,"l10n","Waiting time",
|
||||
e)))+"</th>\n <th>"+b((g=f.l10n||a&&a.l10n,e={hash:{},data:d},g?g.call(a,"Misc",e):c.call(a,"l10n","Misc",e)))+'</th>\n</tr>\n</thead>\n<tbody id="threads-container">\n\n</tbody>\n</table>')})})();
|
||||
|
@ -1 +1 @@
|
||||
<span class="agent-status-{{#if away}}away{{else}}online{{/if}} inline-block" title="{{#if away}}{{l10n "pending.status.away"}}{{else}}{{l10n "pending.status.online"}}{{/if}}"></span>{{name}}{{#unless isLast}},{{/unless}}
|
||||
<span class="agent-status-{{#if away}}away{{else}}online{{/if}} inline-block" title="{{#if away}}{{l10n "Away"}}{{else}}{{l10n "Up to date"}}{{/if}}"></span>{{name}}{{#unless isLast}},{{/unless}}
|
@ -1 +1 @@
|
||||
<td class="no-threads" colspan="8">{{l10n "clients.no_clients"}}</td>
|
||||
<td class="no-threads" colspan="8">{{l10n "The list of visitors waiting is empty"}}</td>
|
@ -1 +1 @@
|
||||
<td class="no-visitors" colspan="9">{{l10n "visitors.no_visitors"}}</td>
|
||||
<td class="no-visitors" colspan="9">{{l10n "There are no visitors ready to chat on your site at present time"}}</td>
|
@ -1,20 +1,20 @@
|
||||
<td class="visitor">
|
||||
<div><a href="javascript:void(0);" class="user-name open-dialog" title="{{#if canOpen}}{{l10n "pending.table.speak"}}{{else}}{{l10n "pending.table.view"}}{{/if}}">{{#if ban}}{{l10n "chat.client.spam.prefix"}} {{/if}}{{userName}}</a></div>
|
||||
<div><a href="javascript:void(0);" class="user-name open-dialog" title="{{#if canOpen}}{{l10n "Click to chat with the visitor"}}{{else}}{{l10n "Watch the chat"}}{{/if}}">{{#if ban}}{{l10n "[spam]"}} {{/if}}{{userName}}</a></div>
|
||||
{{#if firstMessage}}<div class="first-message"><a href="javascript:void(0);" title="{{firstMessage}}">{{firstMessagePreview}}</a></div>{{/if}}
|
||||
</td>
|
||||
<td class="visitor">
|
||||
<div class="default-thread-controls inline-block">
|
||||
{{#if canOpen}}
|
||||
<div class="control open-dialog open-control inline-block" title="{{l10n "pending.table.speak"}}"></div>
|
||||
<div class="control open-dialog open-control inline-block" title="{{l10n "Click to chat with the visitor"}}"></div>
|
||||
{{/if}}
|
||||
{{#if canView}}
|
||||
<div class="control view-control inline-block" title="{{l10n "pending.table.view"}}"></div>
|
||||
<div class="control view-control inline-block" title="{{l10n "Watch the chat"}}"></div>
|
||||
{{/if}}
|
||||
{{#if tracked}}
|
||||
<div class="control track-control inline-block" title="{{l10n "pending.table.tracked"}}"></div>
|
||||
<div class="control track-control inline-block" title="{{l10n "Tracked visitor's path"}}"></div>
|
||||
{{/if}}
|
||||
{{#if canBan}}
|
||||
<div class="control ban-control inline-block" title="{{l10n "pending.table.ban"}}"></div>
|
||||
<div class="control ban-control inline-block" title="{{l10n "Ban this visitor"}}"></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="thread-controls inline-block"></div>
|
||||
|
@ -1 +1 @@
|
||||
<div id="connstatus">{{message}}{{#if agent.away}}{{l10n "pending.status.away"}}{{else}}{{l10n "pending.status.online"}}{{/if}}</div><div id="connlinks"><a href="javascript:void(0);" id="change-status">{{#if agent.away}}{{l10n "pending.status.setonline"}}{{else}}{{l10n "pending.status.setaway"}}{{/if}}</a></div>
|
||||
<div id="connstatus">{{message}}{{#if agent.away}}{{l10n "Away"}}{{else}}{{l10n "Up to date"}}{{/if}}</div><div id="connlinks"><a href="javascript:void(0);" id="change-status">{{#if agent.away}}{{l10n "Set status as \"Available\""}}{{else}}{{l10n "Set status as \"Away\""}}{{/if}}</a></div>
|
@ -1,14 +1,14 @@
|
||||
<table class="awaiting" border="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="first">{{l10n "pending.table.head.name"}}</th>
|
||||
<th>{{l10n "pending.table.head.actions"}}</th>
|
||||
<th>{{l10n "pending.table.head.contactid"}}</th>
|
||||
<th>{{l10n "pending.table.head.state"}}</th>
|
||||
<th>{{l10n "pending.table.head.operator"}}</th>
|
||||
<th>{{l10n "pending.table.head.total"}}</th>
|
||||
<th>{{l10n "pending.table.head.waittime"}}</th>
|
||||
<th>{{l10n "pending.table.head.etc"}}</th>
|
||||
<th class="first">{{l10n "Name"}}</th>
|
||||
<th>{{l10n "Actions"}}</th>
|
||||
<th>{{l10n "Visitor's address"}}</th>
|
||||
<th>{{l10n "State"}}</th>
|
||||
<th>{{l10n "Operator"}}</th>
|
||||
<th>{{l10n "Total time"}}</th>
|
||||
<th>{{l10n "Waiting time"}}</th>
|
||||
<th>{{l10n "Misc"}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="threads-container">
|
||||
|
@ -1,9 +1,9 @@
|
||||
<td class="visitor">
|
||||
{{#unless invitationInfo}}<a href="javascript:void(0);" class="invite-link" title="{{l10n "pending.table.invite"}}">{{userName}}</a>{{else}}{{userName}}{{/unless}}
|
||||
{{#unless invitationInfo}}<a href="javascript:void(0);" class="invite-link" title="{{l10n "Invite to chat"}}">{{userName}}</a>{{else}}{{userName}}{{/unless}}
|
||||
</td>
|
||||
<td class="visitor">
|
||||
<div class="default-visitor-controls inline-block">
|
||||
<div class="control track-control inline-block" title="{{l10n "pending.table.tracked"}}"></div>
|
||||
<div class="control track-control inline-block" title="{{l10n "Tracked visitor's path"}}"></div>
|
||||
</div>
|
||||
<div class="visitor-controls inline-block"></div>
|
||||
</td>
|
||||
|
@ -1,15 +1,15 @@
|
||||
<table id="visitorslist" class="awaiting" border="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="first">{{l10n "visitors.table.head.name"}}</th>
|
||||
<th>{{l10n "visitors.table.head.actions"}}</th>
|
||||
<th>{{l10n "visitors.table.head.contactid"}}</th>
|
||||
<th>{{l10n "visitors.table.head.firsttimeonsite"}}</th>
|
||||
<th>{{l10n "visitors.table.head.lasttimeonsite"}}</th>
|
||||
<th>{{l10n "visitors.table.head.invited.by"}}</th>
|
||||
<th>{{l10n "visitors.table.head.invitationtime"}}</th>
|
||||
<th>{{l10n "visitors.table.head.invitations"}}</th>
|
||||
<th>{{l10n "visitors.table.head.etc"}}</th>
|
||||
<th class="first">{{l10n "Name"}}</th>
|
||||
<th>{{l10n "Actions"}}</th>
|
||||
<th>{{l10n "Visitor's address"}}</th>
|
||||
<th>{{l10n "First seen"}}</th>
|
||||
<th>{{l10n "Last seen"}}</th>
|
||||
<th>{{l10n "Invited by"}}</th>
|
||||
<th>{{l10n "Invitation time"}}</th>
|
||||
<th>{{l10n "Invitations / Chats"}}</th>
|
||||
<th>{{l10n "Misc"}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="visitors-container">
|
||||
|
@ -1,7 +1,7 @@
|
||||
{{#if errors}}
|
||||
<div class="errinfo">
|
||||
<img src="{{stylePath}}/images/icon_err.gif" width="40" height="40" border="0" alt="" class="left"/>
|
||||
<b>{{l10n "errors.header"}}</b><br/>
|
||||
<b>{{l10n "Correct the mistakes:"}}</b><br/>
|
||||
<ul>
|
||||
{{#each errors}}
|
||||
<li class="error">{{{this}}}</li>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="shortcut icon" href="{{stylePath}}/images/favicon.ico" type="image/x-icon"/>
|
||||
<title>
|
||||
{{title}} - {{l10n "app.title"}}
|
||||
{{title}} - {{l10n "Mibew Messenger"}}
|
||||
</title>
|
||||
<link href="{{stylePath}}/css/default.css" rel="stylesheet" type="text/css" />
|
||||
<!--[if lte IE 7]><link href="{{stylePath}}/css/default_ie.css" rel="stylesheet" type="text/css" /><![endif] -->
|
||||
@ -22,12 +22,12 @@
|
||||
</div>
|
||||
|
||||
{{#if operator}}
|
||||
<div id="path"><p>{{l10n "menu.operator" operator}}</p></div>
|
||||
<div id="path"><p>{{l10n "You are {0}" operator}}</p></div>
|
||||
{{else}}
|
||||
{{#if show_small_login}}
|
||||
<div id="loginsmallpane">
|
||||
<form name="smallLogin" method="post" action="{{mibewRoot}}/operator/login">
|
||||
{{l10n "page_login.login"}}
|
||||
{{l10n "Login:"}}
|
||||
<input type="text" name="login" size="8" class="formauth"/>
|
||||
<input type="password" name="password" size="8" class="formauth" autocomplete="off"/>
|
||||
<input type="hidden" name="isRemember" value=""/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div id="sidebar">
|
||||
<ul>
|
||||
<li>
|
||||
<h2><b>{{l10n "lang.choose"}}</b></h2>
|
||||
<h2><b>{{l10n "Choose your language"}}</b></h2>
|
||||
<ul class="locales">
|
||||
{{#each localeLinks}}
|
||||
<li {{#ifEqual @key ../currentLocale}} class="active"{{/ifEqual}}>
|
||||
|
@ -10,42 +10,42 @@
|
||||
{{/if}}
|
||||
{{#if showMenu}}
|
||||
<li>
|
||||
<h2>{{l10n "right.main"}}</h2>
|
||||
<h2>{{l10n "Main"}}</h2>
|
||||
<ul class="submenu">
|
||||
<li{{#ifEqual menuid "main"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator">{{l10n "topMenu.main"}}</a></li>
|
||||
<li{{#ifEqual menuid "users"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/users">{{l10n "topMenu.users"}}</a> <span class="small">(<a class="inner" href="{{mibewRoot}}/operator/users?nomenu">{{l10n "topMenu.users.nomenu"}}</a>)</span></li>
|
||||
<li{{#ifEqual menuid "history"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/history">{{l10n "page_analysis.search.title"}}</a></li>
|
||||
<li{{#ifEqual menuid "main"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator">{{l10n "Home"}}</a></li>
|
||||
<li{{#ifEqual menuid "users"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/users">{{l10n "Visitors"}}</a> <span class="small">(<a class="inner" href="{{mibewRoot}}/operator/users?nomenu">{{l10n "without menu"}}</a>)</span></li>
|
||||
<li{{#ifEqual menuid "history"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/history">{{l10n "Chat history"}}</a></li>
|
||||
{{#if showstat}}
|
||||
<li{{#ifEqual menuid "statistics"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/statistics">{{l10n "statistics.title"}}</a></li>
|
||||
<li{{#ifEqual menuid "statistics"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/statistics">{{l10n "Statistics"}}</a></li>
|
||||
{{/if}}
|
||||
{{#if showban}}
|
||||
<li{{#ifEqual menuid "bans"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/ban">{{l10n "menu.blocked"}}</a></li>
|
||||
<li{{#ifEqual menuid "bans"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/ban">{{l10n "Blocked visitors"}}</a></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>{{l10n "right.administration"}}</h2>
|
||||
<h2>{{l10n "Administration"}}</h2>
|
||||
<ul class="submenu">
|
||||
<li{{#ifEqual menuid "canned"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/canned-message">{{l10n "menu.canned"}}</a></li>
|
||||
<li{{#ifEqual menuid "canned"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/canned-message">{{l10n "Canned Messages"}}</a></li>
|
||||
{{#if showadmin}}
|
||||
<li{{#ifEqual menuid "getcode"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/button-code">{{l10n "leftMenu.client_gen_button"}}</a></li>
|
||||
<li{{#ifEqual menuid "operators"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/operator">{{l10n "leftMenu.client_agents"}}</a></li>
|
||||
<li{{#ifEqual menuid "groups"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/group">{{l10n "menu.groups"}}</a></li>
|
||||
<li{{#ifEqual menuid "settings"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/settings">{{l10n "leftMenu.client_settings"}}</a></li>
|
||||
<li{{#ifEqual menuid "styles"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/style/page/preview">{{l10n "menu.styles"}}</a></li>
|
||||
<li{{#ifEqual menuid "translation"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/translation">{{l10n "menu.translate"}}</a></li>
|
||||
<li{{#ifEqual menuid "mail_templates"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/mail-template">{{l10n "menu.mail_templates"}}</a></li>
|
||||
<li{{#ifEqual menuid "updates"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/updates">{{l10n "menu.updates"}}</a></li>
|
||||
<li{{#ifEqual menuid "getcode"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/button-code">{{l10n "Button code"}}</a></li>
|
||||
<li{{#ifEqual menuid "operators"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/operator">{{l10n "Operators"}}</a></li>
|
||||
<li{{#ifEqual menuid "groups"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/group">{{l10n "Groups"}}</a></li>
|
||||
<li{{#ifEqual menuid "settings"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/settings">{{l10n "Settings"}}</a></li>
|
||||
<li{{#ifEqual menuid "styles"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/style/page/preview">{{l10n "Styles"}}</a></li>
|
||||
<li{{#ifEqual menuid "translation"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/translation">{{l10n "Localize"}}</a></li>
|
||||
<li{{#ifEqual menuid "mail_templates"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/mail-template">{{l10n "Mail templates"}}</a></li>
|
||||
<li{{#ifEqual menuid "updates"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/updates">{{l10n "Updates"}}</a></li>
|
||||
{{/if}}
|
||||
{{#if currentopid}}
|
||||
<li{{#ifEqual menuid "profile"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/operator/{{currentopid}}/edit">{{l10n "menu.profile"}}</a></li>
|
||||
<li{{#ifEqual menuid "profile"}} class="active"{{/ifEqual}}><a href="{{mibewRoot}}/operator/operator/{{currentopid}}/edit">{{l10n "Profile"}}</a></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>{{l10n "right.other"}}</h2>
|
||||
<h2>{{l10n "Other"}}</h2>
|
||||
<ul class="submenu">
|
||||
<li><a href="{{mibewRoot}}/operator/logout">{{l10n "topMenu.logoff"}}</a></li>
|
||||
<li><a href="{{mibewRoot}}/operator/logout">{{l10n "Exit"}}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user