improve scripts and styles

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