Commit 8066b045 authored by Vitaly Lipatov's avatar Vitaly Lipatov

last changes

parent 131224ce
...@@ -5,31 +5,100 @@ ...@@ -5,31 +5,100 @@
*/ */
function ETYPOS(options) { function ETYPOS(options) {
/*//время последнего запроса
this.last_query_time = 0;
//сайт обработки опечаток
this.server_url = "http://barbass.pubsandbox.eterhost.ru/typos/server.php";
//текст ошибок
this.error = '';
//язык по умочланияю
this.default_language = 'ru';
//данные для отправки (сайт страницы, текст с ошибкой, комментарий, язык, броузер)
this.userdata = {
'url': '',
'text': '',
'comment': '',
'language': this.default_language,
'old_browser': 0,
};
this.language = [];
this.language['ru'] = {
'error_url': 'Не определен URL сайта',
'error_text': 'Текст не выделен',
'error_text_length': 'Длина текста должна быть от %s до %s символов (сейчас: %s)',
'error_comment': 'Длина комментария должна быть до 30 символов (сейчас: %s)',
'error_time_activity': 'Вы слишком часто отправляете данные',
'error_response': 'Ошибка при получении ответа',
'error_parse_reposnse': 'Ошибка при обработке ответа',
'error_post_data': 'Ошибка отправки данных. Повторите позже',
'error_userdata': 'userdata is not Object',
'text_post_data': 'Идет отправка данных...',
'text_success': 'Спасибо за ваше внимание!',
};*/
this.init(options); this.init(options);
} }
ETYPOS.prototype = { ETYPOS.prototype = {
//время последнего запроса //время последнего запроса
last_query_time: 0, last_query_time: 0,
//сайт обработки опечаток //сайт обработки опечаток
server_url: "http://barbass.pubsandbox.eterhost.ru/typos/server.php", server_url: "http://barbass.pubsandbox.eterhost.ru/typos/server.php",
//текст ошибок //текст ошибок
error: '', error: '',
//язык по умочланияю
default_language: 'ru',
//данные для отправки (сайт страницы, текст с ошибкой, комментарий, язык, броузер) //данные для отправки (сайт страницы, текст с ошибкой, комментарий, язык, броузер)
userdata: { userdata: {
'url': '', 'url': '',
'text': '', 'text': '',
'comment': '', 'comment': '',
'language': 'ru', 'language': this.default_language,
'old_browser': 0, 'old_browser': 0,
}, },
language: {
'ru': {
'error_url': 'Не определен URL сайта',
'error_text': 'Текст не выделен',
'error_text_length': 'Длина текста должна быть от %s до %s символов (сейчас: %s)',
'error_comment': 'Длина комментария должна быть до 30 символов (сейчас: %s)',
'error_time_activity': 'Вы слишком часто отправляете данные',
'error_response': 'Ошибка при получении ответа',
'error_parse_reposnse': 'Ошибка при обработке ответа',
'error_post_data': 'Ошибка отправки данных. Повторите позже',
'error_userdata': 'userdata is not Object',
'text_post_data': 'Идет отправка данных...',
'text_success': 'Спасибо за ваше внимание!',
}
},
init: function(options) { init: function(options) {
this.options = (options) ? options : {}; this.options = (options) ? options : {};
if (this.options['server_url']) { if (this.options['server_url']) {
this.server_url = this.options['server_url']; this.server_url = this.options['server_url'];
} }
if (this.options['language']) {
if (this.language[this.options['language']]) {
this.default_language = this.options['language'];
this.userdata['language'] = this.default_language;
}
}
this.request = new (window.XDomainRequest || window.XMLHttpRequest); this.request = new (window.XDomainRequest || window.XMLHttpRequest);
this.userdata['old_browser'] = (this.request.withCredentials == undefined) ? 1 : 0; this.userdata['old_browser'] = (this.request.withCredentials == undefined) ? 1 : 0;
...@@ -70,28 +139,22 @@ ETYPOS.prototype = { ...@@ -70,28 +139,22 @@ ETYPOS.prototype = {
/*Проверка данных перед отправкой*/ /*Проверка данных перед отправкой*/
validateData: function() { validateData: function() {
if (!this.userdata) {
throw new Error("Not found userdata-object!");
return false;
}
if (typeof(this.userdata) != 'object') { if (typeof(this.userdata) != 'object') {
throw new Error("userdata is not object!"); throw new Error(this.language[this.default_language]['error_userdata']);
return false; return false;
} }
if (this.userdata['url'] == '') { if (this.userdata['url'] == '') {
this.error = "Не определен URL сайта"; this.error = this.language[this.default_language]['error_url'];
return false; return false;
} }
if (!this.userdata['language']) { if (!this.userdata['language']) {
this.userdata['language'] = 'ru'; this.userdata['language'] = this.default_language;
return false;
} }
if (!this.userdata['text']) { if (!this.userdata['text']) {
this.error = "Текст не выделен"; this.error = this.language[this.default_language]['error_text'];
return false; return false;
} }
...@@ -100,7 +163,7 @@ ETYPOS.prototype = { ...@@ -100,7 +163,7 @@ ETYPOS.prototype = {
return false; return false;
} }
if (this.userdata['comment'].length > 50) { if (this.userdata['comment'].length > 30) {
this.error = "Комментарий должен быть длиной до 30 символов (сейчас: "+this.userdata['comment'].length+")"; this.error = "Комментарий должен быть длиной до 30 символов (сейчас: "+this.userdata['comment'].length+")";
return false; return false;
} }
...@@ -152,7 +215,7 @@ ETYPOS.prototype = { ...@@ -152,7 +215,7 @@ ETYPOS.prototype = {
window.open(this.server_url+'?old_browser='+encodeURIComponent(this.userdata['old_browser'])+'&url='+encodeURI(this.userdata['url'])+'&comment='+encodeURIComponent(this.userdata['comment'])+'&text='+encodeURIComponent(this.userdata['text']+'&language='+encodeURIComponent(this.userdata['language'])), '_blank'); window.open(this.server_url+'?old_browser='+encodeURIComponent(this.userdata['old_browser'])+'&url='+encodeURI(this.userdata['url'])+'&comment='+encodeURIComponent(this.userdata['comment'])+'&text='+encodeURIComponent(this.userdata['text']+'&language='+encodeURIComponent(this.userdata['language'])), '_blank');
window.parent.focus(); window.parent.focus();
this.printMessage("success", "Спасибо за ваше внимание"); this.printMessage("success", this.language[this.default_language]['text_success']);
window.setTimeout(function() {this_object.closeWindow();}, 4000); window.setTimeout(function() {this_object.closeWindow();}, 4000);
return true; return true;
...@@ -170,14 +233,14 @@ ETYPOS.prototype = { ...@@ -170,14 +233,14 @@ ETYPOS.prototype = {
} }
if (!this.checkTime()) { if (!this.checkTime()) {
this.printMessage("error", "Не отправляйте данные часто!"); this.printMessage("error", this.language[this.default_language]['error_time_activity']);
return false; return false;
} else { } else {
this.last_query_time = this.getTime(); this.last_query_time = this.getTime();
this.setStorage("etersoft_typos/"+window.location.hostname+"", this.getTime()); this.setStorage("etersoft_typos/"+window.location.hostname+"", this.getTime());
} }
this.printMessage("attention", "Идет отправка данных..."); this.printMessage("attention", this.language[this.default_language]['text_post_data']);
this.request.open("POST", this.server_url, true); this.request.open("POST", this.server_url, true);
...@@ -195,14 +258,14 @@ ETYPOS.prototype = { ...@@ -195,14 +258,14 @@ ETYPOS.prototype = {
} }
this_object.printMessage(success, response['message']); this_object.printMessage(success, response['message']);
} else { } else {
this_object.printMessage('attention', "Ошибка при получении ответа"); this_object.printMessage('attention', this.language[this.default_language]['error_response']);
} }
} catch (e) { } catch (e) {
this_object.printMessage('error', "Ошибка при обработке ответа"); this_object.printMessage('error', this.language[this.default_language]['error_response_parse']);
} }
}; };
this.request.onerror = function() { this.request.onerror = function() {
this_object.printMessage("error", "Ошибка отправки данных. Повторите позже"); this_object.printMessage("error", this.language[this.default_language]['error_post_data']);
}; };
this.request.send(form_data); this.request.send(form_data);
}, },
......
ETYPOS.prototype.language['ru'] = {
'error_url': 'Не определен URL сайта',
'error_text': 'Текст не выделен',
'error_text_length': 'Длина текста должна быть от %s до %s символов (сейчас: %s)',
'error_comment': 'Длина комментария должна быть до 30 символов (сейчас: %s)',
'error_time_activity': 'Вы слишком часто отправляете данные',
'error_response': 'Ошибка при получении ответа',
'error_response_parse': 'Ошибка при обработке ответа',
'error_post_data': 'Ошибка отправки данных. Повторите позже',
'error_userdata': 'userdata is not Object',
'text_post_data': 'Идет отправка данных...',
'text_success': 'Спасибо за ваше внимание!',
};
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>Сервис опечаток</title> <title>Сервис опечаток</title>
<script src="etersoft_typos.js"></script> <script src="etersoft_typos.js"></script>
<script src="etersoft_typos_language-ru.js"></script>
<link type="text/css" href="stylesheet.css" rel="stylesheet" /> <link type="text/css" href="stylesheet.css" rel="stylesheet" />
</head> </head>
<body> <body>
......
...@@ -122,7 +122,7 @@ function validate() { ...@@ -122,7 +122,7 @@ function validate() {
} }
if (strlen(getRequest('comment', '')) > 30) { if (strlen(getRequest('comment', '')) > 30) {
$_language['ru']['error_comment'] = sprintf($_language[$code_language]["error_text"], 30, strlen(getRequest('text', ''))); $error = sprintf($_language[$code_language]["error_text"], strlen(getRequest('text', '')));
return false; return false;
} }
return true; return true;
......
...@@ -9,7 +9,7 @@ $_language['ru']['error_header'] = "Отсутствуют ip или загол ...@@ -9,7 +9,7 @@ $_language['ru']['error_header'] = "Отсутствуют ip или загол
$_language['ru']['error_url'] = "Отсутствует url сайта"; $_language['ru']['error_url'] = "Отсутствует url сайта";
$_language['ru']['error_valid_url'] = "Не верный формат url-а сайта"; $_language['ru']['error_valid_url'] = "Не верный формат url-а сайта";
$_language['ru']['error_text'] = "Длина текста должна быть от %s до %s символов (сейчас: %s)"; $_language['ru']['error_text'] = "Длина текста должна быть от %s до %s символов (сейчас: %s)";
$_language['ru']['error_comment'] = "Длина комментария должна быть до %s символов (сейчас: %s) "; $_language['ru']['error_comment'] = "Длина комментария должна быть до 30 символов (сейчас: %s)";
$_language['ru']['error_support_site'] = "Сайт не поддерживается"; $_language['ru']['error_support_site'] = "Сайт не поддерживается";
//Success //Success
...@@ -22,7 +22,7 @@ $_language['ru']['mail_error'] = "Ошибка при отправлении п ...@@ -22,7 +22,7 @@ $_language['ru']['mail_error'] = "Ошибка при отправлении п
$_language['ru']['mail_site'] = "Сайт:"; $_language['ru']['mail_site'] = "Сайт:";
$_language['ru']['mail_url'] = "Ссылка:"; $_language['ru']['mail_url'] = "Ссылка:";
$_language['ru']['mail_click_url'] = "нажмите:"; $_language['ru']['mail_click_url'] = "нажмите";
$_language['ru']['mail_comment'] = "Комментарий:"; $_language['ru']['mail_comment'] = "Комментарий:";
$_language['ru']['mail_text'] = "Текст с опечаткой:"; $_language['ru']['mail_text'] = "Текст с опечаткой:";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment