Commit 20ac46e3 authored by George Popoff's avatar George Popoff

add typos correction in browser

parent d6d3d0d3
...@@ -31,6 +31,9 @@ ETYPOS.prototype = { ...@@ -31,6 +31,9 @@ ETYPOS.prototype = {
needConstructPanel: true, needConstructPanel: true,
element: null, element: null,
// Idar
pageId: 0,
/* Переменные для перетаскивания */ /* Переменные для перетаскивания */
isDragged: false, isDragged: false,
...@@ -248,7 +251,11 @@ ETYPOS.prototype = { ...@@ -248,7 +251,11 @@ ETYPOS.prototype = {
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;
this.pageId = this._getQueryVariable("idar");
// Исправляем ошибки, которые исправил пользователь
this.fixTypos();
}, },
clearSelectedText: function () { clearSelectedText: function () {
...@@ -432,6 +439,11 @@ ETYPOS.prototype = { ...@@ -432,6 +439,11 @@ ETYPOS.prototype = {
if (response['success'] && response['message']) { if (response['success'] && response['message']) {
if (response['success'] == 'true') { if (response['success'] == 'true') {
var success = 'success'; var success = 'success';
// Устанавливаем исправленный вариант в localStorage
this_object.storeTypo(form_data.get("text"), form_data.get("comment"));
this_object.fixTypos();
} else { } else {
var success = 'error'; var success = 'error';
} }
...@@ -496,6 +508,68 @@ ETYPOS.prototype = { ...@@ -496,6 +508,68 @@ ETYPOS.prototype = {
return true; return true;
} }
return false; return false;
},
storeTypo: function(typo, correct) {
var corrected;
if ( !(corrected = localStorage.getItem("typos.corrected")) ) {
corrected = {};
} else {
corrected = JSON.parse(corrected);
}
// Исправления для текущей новости
var pageFixes = corrected[this.pageId];
if ( !pageFixes ) {
corrected[this.pageId] = [];
}
corrected[this.pageId].push({text: typo, correct: correct});
localStorage.setItem("typos.corrected", JSON.stringify(corrected));
},
fixTypos: function() {
var corrected;
if ( !(corrected = localStorage.getItem("typos.corrected")) ) {
return;
}
corrected = JSON.parse(corrected);
// Смотрим исправления на этой странице
var pageFixes = corrected[this.pageId];
if ( !pageFixes ) {
return;
}
// Вторая таблица - контент
var content = document.getElementsByClassName("post")[0];
var pageText = content.innerHTML;
pageFixes.forEach(function(typo) {
var text = typo.text;
var correct = typo.correct;
pageText = pageText.replace(text, "<span class='corrected-text'>" + correct + "</span>");
});
content.innerHTML = pageText;
// if ( !this.needConstructPanel ) {
// this._handleEvents();
// }
},
// Получает параметр из строки запроса
_getQueryVariable: function (variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] === variable) {
return pair[1];
}
}
return 0;
} }
}; };
...@@ -98,4 +98,8 @@ ...@@ -98,4 +98,8 @@
display: block; display: block;
margin: 0 auto; margin: 0 auto;
margin-top: 10px; margin-top: 10px;
}
.corrected-text {
background-color: rgba(0, 250, 0, 0.25);
} }
\ 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