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

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