improve scripts and styles

parent c4bc37e2
...@@ -28,6 +28,8 @@ ETYPOS.prototype = { ...@@ -28,6 +28,8 @@ ETYPOS.prototype = {
selection: '', selection: '',
needConstructPanel: true,
element: null, element: null,
/* Переменные для перетаскивания */ /* Переменные для перетаскивания */
...@@ -64,10 +66,13 @@ ETYPOS.prototype = { ...@@ -64,10 +66,13 @@ ETYPOS.prototype = {
'text_success': 'Спасибо за ваше внимание!', 'text_success': 'Спасибо за ваше внимание!',
} }
}, },
// Создает контейнер и добавляет его в конец body // Создает контейнер и добавляет его в конец body
_createControlPanel: function () { _createControlPanel: function () {
if ( !this.needConstructPanel ) {
return;
}
/* Main div */ /* Main div */
var div = document.createElement("div"); var div = document.createElement("div");
div.className = "e_typos_div"; div.className = "e_typos_div";
...@@ -90,10 +95,11 @@ ETYPOS.prototype = { ...@@ -90,10 +95,11 @@ ETYPOS.prototype = {
var comment = document.createElement("input"); var comment = document.createElement("input");
comment.className = "e_typos_comment"; comment.className = "e_typos_comment";
comment.type = "text"; comment.type = "text";
comment.size = 19; comment.size = 30;
comment.maxlength = 50; comment.maxlength = 50;
comment.placeholder = "Обязательно для заполнения"; comment.placeholder = "Обязательно для заполнения";
comment.autofocus = true;
var nobr = document.createElement("nobr"); var nobr = document.createElement("nobr");
var nobrText = document.createTextNode("Исправленный вариант: "); var nobrText = document.createTextNode("Исправленный вариант: ");
nobr.appendChild(nobrText); nobr.appendChild(nobrText);
...@@ -134,6 +140,8 @@ ETYPOS.prototype = { ...@@ -134,6 +140,8 @@ ETYPOS.prototype = {
document.body.appendChild(div); document.body.appendChild(div);
this.element = document.querySelector(".e_typos_div"); this.element = document.querySelector(".e_typos_div");
this.needConstructPanel = false;
}, },
// Нужны для onmousemove // Нужны для onmousemove
...@@ -161,10 +169,28 @@ ETYPOS.prototype = { ...@@ -161,10 +169,28 @@ ETYPOS.prototype = {
alert("Сервис опечаток.\nДля отчета об ошибке выделите текст!"); alert("Сервис опечаток.\nДля отчета об ошибке выделите текст!");
return; return;
} }
document.querySelector('.e_typos_text').innerHTML = self.selection.trim(); if ( self.needConstructPanel ) {
self.controlPanel();
self.controlPanel(); }
self.openWindow();
var comment = document.querySelector('.e_typos_comment');
var text = document.querySelector('.e_typos_text');
var selection = self.selection.trim();
text.innerHTML = selection;
self.userdata['text'] = selection;
if ( !self.validateTextData() ) {
self.printMessage('error', self.error);
} else {
comment.value = selection;
}
comment.focus();
return false;
} }
}; };
...@@ -272,6 +298,20 @@ ETYPOS.prototype = { ...@@ -272,6 +298,20 @@ ETYPOS.prototype = {
this.isVisible = false; this.isVisible = false;
}, },
validateTextData: function() {
if (!this.userdata['text']) {
this.error = this.language[this.default_language]['error_text'];
return false;
}
if (this.userdata['text'].length < 5 || this.userdata['text'].length > 30) {
this.error = "Выделенный текст должен быть длиной от 5 до 30 символов (сейчас: " + this.userdata['text'].length + ")";
return false;
}
return true;
},
/*Проверка данных перед отправкой*/ /*Проверка данных перед отправкой*/
validateData: function () { validateData: function () {
if (typeof (this.userdata) !== 'object') { if (typeof (this.userdata) !== 'object') {
...@@ -287,12 +327,11 @@ ETYPOS.prototype = { ...@@ -287,12 +327,11 @@ ETYPOS.prototype = {
if (!this.userdata['language']) { if (!this.userdata['language']) {
this.userdata['language'] = this.default_language; this.userdata['language'] = this.default_language;
} }
if (!this.userdata['text']) { if ( !this.validateTextData() ) {
this.error = this.language[this.default_language]['error_text'];
return false; return false;
} }
if (!this.userdata['comment']) { if (!this.userdata['comment']) {
this.error = this.language[this.default_language]['error_comment']; this.error = this.language[this.default_language]['error_comment'];
return false; return false;
...@@ -300,11 +339,6 @@ ETYPOS.prototype = { ...@@ -300,11 +339,6 @@ ETYPOS.prototype = {
this.error = this.language[this.default_language]['error_comment_useless']; this.error = this.language[this.default_language]['error_comment_useless'];
return false; return false;
} }
if (this.userdata['text'].length < 5 || this.userdata['text'].length > 30) {
this.error = "Выделенный текст должен быть длиной от 5 до 30 символов (сейчас: " + this.userdata['text'].length + ")";
return false;
}
if (this.userdata['comment'].length > 30) { if (this.userdata['comment'].length > 30) {
this.error = "Комментарий должен быть длиной до 30 символов (сейчас: " + this.userdata['comment'].length + ")"; this.error = "Комментарий должен быть длиной до 30 символов (сейчас: " + this.userdata['comment'].length + ")";
...@@ -317,7 +351,6 @@ ETYPOS.prototype = { ...@@ -317,7 +351,6 @@ ETYPOS.prototype = {
/*Сбор данных*/ /*Сбор данных*/
postData: function () { postData: function () {
this.userdata['url'] = window.location.href; this.userdata['url'] = window.location.href;
this.userdata['text'] = this.selection.trim();
this.userdata['comment'] = (document.querySelector(".e_typos_div .e_typos_comment")) ? document.querySelector(".e_typos_div .e_typos_comment").value : ''; this.userdata['comment'] = (document.querySelector(".e_typos_div .e_typos_comment")) ? document.querySelector(".e_typos_div .e_typos_comment").value : '';
this.userdata['comment'] = this.userdata['comment'].trim(); this.userdata['comment'] = this.userdata['comment'].trim();
......
...@@ -92,4 +92,10 @@ ...@@ -92,4 +92,10 @@
.e_typos_text { .e_typos_text {
color: red; color: red;
font-size: 110%; font-size: 110%;
}
.e_typos_comment {
display: block;
margin: 0 auto;
margin-top: 10px;
} }
\ No newline at end of file
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