Skip to content
This repository has been archived by the owner on Apr 11, 2022. It is now read-only.

Commit

Permalink
0.0.3
Browse files Browse the repository at this point in the history
Изменена html структура некоторых элементов
Изменена структура некоторых js функций
Добавлено множество one-deal функций
Добавлены оповещения о совершённых действиях
Добавлено оповещение в случае, если ваше расширение всё-таки обновилось (рофлы гугла по предоставлению расширения через 12 часов, когда у остальных скачалось через пол часа - вкусно)
Добавлены настройки:
- Добавлена возможность редактировать отображение нужных вам вкладок со смайлами (эта возможность никак не будет конфликтовать с появлением новых и удалением старых вкладок разработчиками dota2ru. По крайней мере я так думаю)
Исправлена ошибка с неправильным отображением настроек на мобильных устройствах
Исправлена ошибка с неправильными размерами смайлов: теперь все смайлы имеют размер 28х28
Со второй попытки исправлена ошибка с обновлением списка смайлов после сохранения в настройках, но если окно со смайлами в сообщении было открыто, его стоит закрыть и снова открыть, чтобы изменения вступили в силу
Изменены некоторые текстовые строки
Немного увеличил производительность, уменьшив интервал некоторых обработчиков
И прочие малозначимые изменения, с которыми вы можете ознакомиться сами!
  • Loading branch information
aleqsunder committed Apr 27, 2019
1 parent 856ac78 commit 562095e
Show file tree
Hide file tree
Showing 5 changed files with 327 additions and 100 deletions.
126 changes: 108 additions & 18 deletions assets/integr.js
@@ -1,6 +1,10 @@
var asetting = document.querySelector('setting'),
smileList = document.querySelector('setting smile-list'),
chess = 'a-dota2smiles', storageCache = _getStorage();
var afullpage = document.querySelector('fullpage'),
smileList = document.querySelector('fullpage smile-list'),
asspages = document.querySelectorAll('asett pages input'),
chess = 'a-dota2smiles', storageCache = _getStorage(),
storagePages = JSON.parse(localStorage.getItem('pages')),
alert = document.querySelector('fullpage alert'),
version = '0.0.3';

// Обновление списка до текущей версии
function reload ()
Expand All @@ -10,17 +14,60 @@ function reload ()

Object.keys(storageCache).forEach
( function (name) { add(name, storageCache[name]) });

asspages.forEach
( function (a) {
a.checked = storagePages[a.value];
});
}

reload();

if (localStorage.getItem('version') != version)
{
localStorage.setItem('version', version);
openAlert({
wait: true,

text: `Добро пожаловать в новую версию `+ version +`!<br>
<br>
Для ознакомления нажмите <a href='https://dota2.ru/forum/threads/legalno-sozdajom-svoi-smajly-dlja-foruma.1275974/'>здесь</a><br>
Уведомление высвечивается лишь раз после каждого обновления, чтобы уведомить вас о том, что ваше расширение успешно обновлено<br>
<br>
Приятного использования!`
});
}

// Переносить ради такого фунцкцию из extension не вижу смысла, плюс нужно её переделать
setInterval
( function () {
var content = tinymce.get('forumPost').contentDocument;

if (content)
{
content.querySelector('head style').innerHTML += 'img[data-smile] { width: 30px; height: 30px; }';

var allCont = content.querySelectorAll('img[data-smile]:not(.resized)');

if (allCont.length > 0)
{
allCont.forEach(function (a) {
a.width = '30';
a.height = '30';

a.classList.add('resized');
})
}
}
}, 500);

function add (name, value)
{
name = (name)? name : document.querySelector('setting finder input[name="name"]').value;
value = (value)? value : document.querySelector('setting finder input[name="src"]').value;
name = (name)? name : document.querySelector('fullpage finder input[name="name"]').value;
value = (value)? value : document.querySelector('fullpage finder input[name="src"]').value;

document.querySelector('setting finder input[name="name"]').value = '';
document.querySelector('setting finder input[name="src"]').value = '';
document.querySelector('fullpage finder input[name="name"]').value = '';
document.querySelector('fullpage finder input[name="src"]').value = '';

smileList.appendChild( createDOM(`
<list data-smile='`+ name +`'>
Expand Down Expand Up @@ -51,20 +98,25 @@ function save ()
});

storageCache = _getStorage();
reload();

openAlert({text: 'Ваши смайлы сохранены!'});
}

function saveTo ()
{
save();
document.querySelector('setting saveTo textarea').value = JSON.stringify( _getStorage() );
document.querySelector('fullpage saveTo textarea').value = JSON.stringify( _getStorage() );

openAlert({text: 'Скопируйте Ваши смайлы, чтобы поделиться!'});
}

function loadFrom ()
{
// Будет обидно, если изменения не сохранятся, верно?)
save();

var area = document.querySelector('setting loadfrom textarea'),
var area = document.querySelector('fullpage loadfrom textarea'),
your = (typeof storageCache == 'string')? JSON.parse(storageCache) : storageCache,
load = (typeof area.value == 'string')? JSON.parse(area.value) : area.value,
oth = Object.assign(load, your);
Expand All @@ -75,21 +127,59 @@ function loadFrom ()
// Ну и сразу получаем готовенькое
storageCache = _getStorage();
reload();

openAlert({text: 'Смайлы загружены!'});
}

function openASetting ()
{ asetting.classList.add('open') }

function closeASetting ()
{ asetting.classList.remove('open') }
function savePages ()
{
var pages = document.querySelectorAll('asett pages input'),
array = {};

pages.forEach
( function (a, i) {
array[a.value] = a.checked;
});

console.log(array);

localStorage.setItem('pages', JSON.stringify(array));

openAlert({text: 'Отображение изменено по вашему усмотрению!'});
}

function adoor(elem)
{
asetting.querySelector('backfon.'+ elem).classList.toggle('open');
var flag = asetting.querySelector(elem).classList.toggle('open');
function adoor (elem)
{
if (!afullpage.querySelector('.open'))
afullpage.classList.toggle('open');

afullpage.querySelector('backfon.'+ elem).classList.toggle('open');
var flag = afullpage.querySelector(elem).classList.toggle('open');

if (elem == 'saveto' && flag)
saveTo();

if (!afullpage.querySelector('.open'))
afullpage.classList.toggle('open');
}

function openAlert ({text, wait})
{
alert.querySelector('middle').innerHTML = text;

adoor('alert');

if (wait)
{
document.querySelector('fullpage backfon.alert').setAttribute('onclick', `adoor('alert'); this.onclick = 'return false;'`);
}
else
{
setTimeout
(function () {
adoor('alert');
}, 2000);
}
}

function createDOM (html)
Expand Down
52 changes: 44 additions & 8 deletions assets/sett.tmp
@@ -1,7 +1,7 @@
<setting>
<backfon class='smiles' onclick='closeASetting()'></backfon>
<fullpage>
<backfon class='smiles' onclick="adoor('smiles')"></backfon>
<smiles>
<top>Настройки</top>
<top>Редактор смайлов <close class='fa fa-times' onclick="adoor('smiles')"></close></top>
<middle>
<finder>
<input type='text' name='name' placeholder='Имя'>
Expand All @@ -15,15 +15,20 @@
</middle>

<bottom>
<fing onclick="adoor('loadfrom')">Загрузить от</fing>
<fing onclick="adoor('saveto')">Сохранить для</fing>
<fing onclick="adoor('asett')">Настройки</fing>

<center>
<fing onclick="adoor('loadfrom')">Загрузить</fing>
<fing onclick="adoor('saveto')">Поделиться</fing>
</center>

<fing onclick="save()">Сохранить</fing>
</bottom>
</smiles>

<backfon class='loadfrom' onclick="adoor('loadfrom')"></backfon>
<loadfrom>
<top>Загрузка сторонних смайлов</top>
<top>Загрузка сторонних смайлов <close class='fa fa-times' onclick="adoor('loadfrom')"></close></top>
<middle>
Вставьте то, чем с вами поделились, и нажмите Загрузить
<textarea></textarea>
Expand All @@ -36,10 +41,41 @@

<backfon class='saveto' onclick="adoor('saveto')"></backfon>
<saveto>
<top>Сохранение смайлов</top>
<top>Сохранение смайлов <close class='fa fa-times' onclick="adoor('saveto')"></close></top>
<middle>
Скопируйте и поделитесь с пользователем!
<textarea></textarea>
</middle>
</saveto>
</setting>

<backfon class='asett' onclick="adoor('asett')"></backfon>
<asett>
<top>Настройки <close class='fa fa-times' onclick="adoor('asett')"></close></top>
<middle>
<top>Видимые разделы</top>
<pages>
<page class='check'><input type="checkbox" name="-1" value="-1"> Популярное</page>
<page class='check'><input type="checkbox" name="-1" value="1"> Стандартные</page>
<page class='check'><input type="checkbox" name="-1" value="5"> Твич</page>
<page class='check'><input type="checkbox" name="-1" value="6"> Разное</page>
<page class='check'><input type="checkbox" name="-1" value="7"> Dota 2 анимированные</page>
<page class='check'><input type="checkbox" name="-1" value="9"> Dota 2 герои</page>
<page class='check'><input type="checkbox" name="-1" value="11"> Аниме</page>
<page class='check'><input type="checkbox" name="-1" value="14"> Пепа</page>
<page class='check'><input type="checkbox" name="-1" value="16"> Dota 2 предметы</page>
<page class='check'><input type="checkbox" name="-1" value="17"> LoL</page>
<page class='check'><input type="checkbox" name="-1" value="18"> Твич-герои</page>
</pages>
</middle>

<bottom>
<fing onclick="savePages()">Сохранить</fing>
</bottom>
</asett>

<backfon class='alert'></backfon>
<alert>
<top>Уведомление</top>
<middle></middle>
</alert>
</fullpage>

0 comments on commit 562095e

Please sign in to comment.