Добавил id фида в структуру данных для хранения состояния развернутых категорий в ls

parent 61abfc1e
......@@ -6,7 +6,7 @@ $(document).ready(function () {
var
$tableCats = $('.table.feeds-cats'),
isChanged = 0,
storageName = 'feedCatsState',
feedCatsStorageName = 'feedCatsOpenState',
catsStateValue;
// Покидание страницы:
......@@ -16,116 +16,76 @@ $(document).ready(function () {
}
};
// Разворачиваем каждую ветку до того уровня где есть own-проценты:
/*
ShowOwnPercents();
function ShowOwnPercents()
// Разворачиваем категории фидов по стостоянию в localStorage:
function ShowFeedsTablesStateByCats(feedsCatsState)
{
var
$groupTable = $('.cat-title-main .group', $tableCats),
$tr = $('tbody tr', $tableCats);
function OpenParentCat(id)
{
var
$parentTr = $('tbody tr[data-id="' + id + '"]', $tableCats),
$parentGroup = $('tbody tr[data-id="' + id + '"] .group', $tableCats),
parentId = $parentTr.attr('data-parent');
var $tr, $groupTr, $inheritedTr, $tableFeedCats, catsState;
if ($parentTr.length) {
$parentTr.addClass('open');
$parentGroup.addClass('open');
OpenParentCat(parentId);
}
}
$.each($tr, function() {
var
$trItem = $(this),
$percent = $('td.percent', $trItem);
if ($percent.hasClass('own')) {
var
parentId = $trItem.attr('data-parent'),
$siblingsTr = $('tbody tr[data-parent="' + parentId + '"]', $tableCats);
// Разворачиваем соседей и предка:
$siblingsTr.addClass('open');
OpenParentCat(parentId);
Object.keys(feedsCatsState).forEach(function(feedId){
$tableFeedCats = $tableCats.filter('[data-feed-id="' + feedId + '"]');
catsState = feedsCatsState[feedId];
catsState.forEach(function(id){
// Разворачиваем основную таблицу:
$tableCats.addClass('open');
$groupTable.addClass('open');
}
$tr = $('tbody tr[data-id="' + id + '"]', $tableFeedCats);
$groupTr = $('.group', $tr);
$inheritedTr = $('tbody tr[data-parent="' + id + '"]', $tableFeedCats);
});
}
*/
// Отображаем таблицу, свернутую до основных категорий:
/*
function ShowFirstLevel()
{
var $mainTrs = $('tr.feed-cat[data-parent="0"]', $tableCats);
$tableCats.addClass('open');
$mainTrs.addClass('open');
}
*/
// Разворачиваем категории по стостоянию в localStorage:
function ShowTableStateByCats(catsState)
{
var $tr, $groupTr, $inheritedTr;
catsState.forEach(function(id){
$tr = $('tbody tr[data-id="' + id + '"]', $tableCats);
$groupTr = $('.group', $tr);
$inheritedTr = $('tbody tr[data-parent="' + id + '"]', $tableCats);
$tr.addClass('open');
$groupTr.addClass('open');
$inheritedTr.addClass('open');
});
$tr.addClass('open');
$groupTr.addClass('open');
$inheritedTr.addClass('open');
});
}
// Разворачиваем категории таблицы при старте:
function ShowStartTableState()
// Разворачиваем категории таблиц фидов при старте:
function ShowStartFeedsTablesState()
{
//ShowFirstLevel();
catsStateValue = JSON.parse(localStorage.getItem(storageName));
catsStateValue = JSON.parse(localStorage.getItem(feedCatsStorageName));
if (catsStateValue) {
ShowTableStateByCats(catsStateValue);
ShowFeedsTablesStateByCats(catsStateValue);
}
}
// Сохраняем раскрытые категории по в localStorage:
function SetCatsStorage()
// Сохраняем раскрытые категории фида в localStorage:
function SetFeedCatsStorage(feedId)
{
catsStateValue = [];
var
//$trNotMain = $('tbody tr:not([data-parent="0"])', $tableCats);
$tr = $('tbody tr', $tableCats);
$tableFeedCats = $tableCats.filter('[data-feed-id="' + feedId + '"]'),
$tr = $('tbody tr', $tableFeedCats),
currentState = JSON.parse(localStorage.getItem(feedCatsStorageName)),
feedCatsStateValue = [];
if (!currentState) {
currentState = {};
}
$.each($tr, function() {
var
$trItem = $(this),
$groupItem = $('.group', $trItem);
if ($groupItem.hasClass('open')) {
catsStateValue.push($trItem.attr('data-id'));
feedCatsStateValue.push($trItem.attr('data-id'));
}
});
if (catsStateValue.length) {
localStorage.setItem(storageName,JSON.stringify(catsStateValue));
if (feedCatsStateValue.length) {
currentState[feedId] = feedCatsStateValue;
} else {
localStorage.removeItem(storageName);
if (currentState[feedId]) {
delete currentState[feedId];
}
}
// Проверяем localStorage на наличие полей:
if (Object.keys(currentState).length) {
localStorage.setItem(feedCatsStorageName,JSON.stringify(currentState));
} else {
localStorage.removeItem(feedCatsStorageName);
}
}
// Свернуть-развернуть список категорий фида:
......@@ -138,6 +98,7 @@ $(document).ready(function () {
$allTrs = $('tr.feed-cat', $wrap),
$groupAllTrs = $('.group', $allTrs),
$mainTrs = $('tr.feed-cat[data-parent="0"]', $wrap),
feedId = $this.parents('.table.feeds-cats').data('feed-id'),
isOpen;
$group.toggleClass('open');
......@@ -152,7 +113,7 @@ $(document).ready(function () {
$mainTrs.addClass('open');
}
SetCatsStorage();
SetFeedCatsStorage(feedId);
});
// Свернуть-развернуть категории в списке:
......@@ -164,6 +125,7 @@ $(document).ready(function () {
$wrap = $this.parents('.feed-cat').eq(0),
id = $wrap.data('id'),
$subcats,
feedId = $this.parents('.table.feeds-cats').data('feed-id'),
isOpen;
$group.toggleClass('open');
......@@ -184,7 +146,7 @@ $(document).ready(function () {
$subcats.removeClass('open');
}
SetCatsStorage();
SetFeedCatsStorage(feedId);
});
// Изменение значения процента для категории:
......@@ -407,6 +369,6 @@ $(document).ready(function () {
});
// Разворачиваем категории таблицы при старте:
ShowStartTableState();
ShowStartFeedsTablesState();
});
\ 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