Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
retypos-webclient
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
eterfund
retypos-webclient
Commits
dad0b155
Commit
dad0b155
authored
Mar 09, 2017
by
Георгий Попов
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete unnessesary files
parent
80dda6d0
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
343 deletions
+0
-343
default.php
default.php
+0
-22
etersoft_typos.js~
etersoft_typos.js~
+0
-321
No files found.
default.php
deleted
100644 → 0
View file @
80dda6d0
<div
id=
"e_typos_div"
>
<div
id=
"e_typos_title"
>
<span>
Сервис опечаток
</span>
<span
title=
"Закрыть окно"
id=
"e_typos_close"
onclick=
"ETY.close();"
><b>
х
</b></span>
</div>
<p
id=
"e_typos_desc"
>
Выделите текст и нажмите кнопку "Отправить"
</p>
<p>
<nobr>
Комментарий:
<input
type=
"text"
id=
"e_typos_comment"
name=
"e_typos_comment"
size=
'19'
maxlength=
"50"
placeholder=
"Должна быть буква..."
/></nobr>
</p>
<p
id=
"e_typos_error"
></p>
<p>
<input
type=
"button"
title=
"Отправить сообщение об опечатке"
value=
"Отправить"
class=
"e_typos_button"
onclick=
"ETY.post_data();"
/>
<input
type=
"button"
title=
"Закрыть окно"
value=
"Закрыть"
class=
"e_typos_button"
onclick=
"ETY.close();"
/>
</p>
</div>
etersoft_typos.js~
deleted
100644 → 0
View file @
80dda6d0
/* Плагин: сервис опечаток от компании Etersoft
* email: info@etersoft.ru
* автор: barbass@etersoft.ru
* дата: 2012-04-18
*/
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);
}
ETYPOS.prototype = {
//время последнего запроса
last_query_time: 0,
//сайт обработки опечаток
server_url: "http://barbass.pubsandbox.eterhost.ru/typos/server.php",
//текст ошибок
error: '',
//язык по умочланияю
default_language: 'ru',
//данные для отправки (сайт страницы, текст с ошибкой, комментарий, язык, броузер)
userdata: {
'url': '',
'text': '',
'comment': '',
'language': this.default_language,
'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) {
this.options = (options) ? options : {};
if (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.userdata['old_browser'] = (this.request.withCredentials == undefined) ? 1 : 0;
},
/*Получаем выделенный текст*/
getSelectText: function() {
return (window.getSelection()) ? String(window.getSelection()) : '';
},
/*Скрытие/показ окна*/
controlPanel: function() {
(document.querySelector(".e_typos_div").style.display == "block") ? this.closeWindow() : this.openWindow();
},
/*Открытие окна*/
openWindow: function() {
var main_div = document.querySelector(".e_typos_div");
//Определяем на какой позиции X, Y всплывет элемент
var top = window.pageYOffset + window.innerHeight/3;
var left = window.pageXOffset + window.innerWidth/3;
main_div.style.top = top + "px";
main_div.style.left = left + "px";
main_div.style.display = "none";
main_div.querySelector(".e_typos_comment").value = "";
main_div.querySelector(".e_typos_message").innerHTML = "";
main_div.style.display = "block";
},
/*Закрытия окна*/
closeWindow: function() {
document.querySelector(".e_typos_div").style.display = "none";
},
/*Проверка данных перед отправкой*/
validateData: function() {
if (typeof(this.userdata) != 'object') {
throw new Error(this.language[this.default_language]['error_userdata']);
return false;
}
if (this.userdata['url'] == '') {
this.error = this.language[this.default_language]['error_url'];
return false;
}
if (!this.userdata['language']) {
this.userdata['language'] = this.default_language;
}
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;
}
if (this.userdata['comment'].length > 30) {
this.error = "Комментарий должен быть длиной до 30 символов (сейчас: "+this.userdata['comment'].length+")";
return false;
}
return true;
},
/*Сбор данных*/
postData: function() {
this.userdata['url'] = window.location.href;
this.userdata['text'] = this.getSelectText();
this.userdata['comment'] = (document.querySelector(".e_typos_div .e_typos_comment")) ? document.querySelector(".e_typos_div .e_typos_comment").value : '';
try {
if (!this.validateData()) {
this.printMessage('error', this.error);
return false;
}
} catch(error) {alert(error);
this.printMessage('error', error.message);
return false;
}
//Если не поддерживаются кроссдоменные запросы
if (this.userdata['old_browser']) {
this.ajaxQueryOldBrowser();
} else {
this.ajaxQuery();
}
},
/*Создание формы с данными*/
formData: function() {
if (!FormData()) {
throw new Error("FormData() не поддерживается");
return false;
}
var form_data = new FormData();
for(var key in this.userdata) {
form_data.append(key, this.userdata[key]);
}
return form_data;
},
/*Отправка данных на старых броузерах*/
ajaxQueryOldBrowser: function() {
var this_object = this;
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();
this.printMessage("success", this.language[this.default_language]['text_success']);
window.setTimeout(function() {this_object.closeWindow();}, 4000);
return true;
},
/*Отправка запроса*/
ajaxQuery: function() {
var this_object = this;
try {
var form_data = this.formData();
} catch (error) {
this.printMessage("error", error.message);
return false;
}
if (!this.checkTime()) {
this.printMessage("error", this.language[this.default_language]['error_time_activity']);
return false;
} else {
this.last_query_time = this.getTime();
this.setStorage("etersoft_typos/"+window.location.hostname+"", this.getTime());
}
this.printMessage("attention", this.language[this.default_language]['text_post_data']);
this.request.open("POST", this.server_url, true);
this.request.onload = function() {
try {
var response = window.JSON.parse(this_object.request.responseText);
if (response['success'] && response['message']) {
if (response['success'] == 'true') {
var success = 'success';
} else {
var success = 'error';
}
this_object.printMessage(success, response['message']);
} else {
this_object.printMessage('attention', this.language[this.default_language]['error_response']);
}
} catch (e) {
this_object.printMessage('error', this.language[this.default_language]['error_response_parse']);
}
};
this.request.onerror = function() {
this_object.printMessage("error", this.language[this.default_language]['error_post_data']);
};
this.request.send(form_data);
},
/*Печатаем сообщение пользователю в окно*/
printMessage: function(status, text) {
document.querySelector(".e_typos_div .e_typos_message").innerHTML = "<span class='"+status+"'>"+text+"</span>";
},
//Вывод текста, выделенного пользователем
printUserText: function(text) {
document.querySelector(".e_typos_div .e_typos_user_text").style.display = "block";
document.querySelector(".e_typos_div .e_typos_user_text").innerHTML = "Ваш текст: "+text;
},
/*Проверяем время, прошедшее с последнего отправления данных*/
checkTime: function() {
var prev_time = (parseInt(this.getStorage("etersoft_typos/"+window.location.hostname))) ? parseInt(this.getStorage("etersoft_typos/"+window.location.hostname)) : parseInt(this.last_query_time);
if (isNaN(prev_time)) {
return true;
}
if ( (this.getTime() - prev_time) < 60000) {
return false;
}
return true;
},
/*Получаем текущее время*/
getTime: function() {
return new Date().getTime();
},
/*Получаем из sessionStorage данные*/
getStorage: function(key) {
if (window['sessionStorage']) {
return (sessionStorage.getItem(key)) ? sessionStorage.getItem(key) : false;
} else {
return false;
}
},
/*Устанавливаем в sessionStorage данные*/
setStorage: function(key, data) {
if (window['sessionStorage']) {
sessionStorage.setItem(key+"", data);
return true;
}
return false;
}
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment