логика выставления текущего состоянии по архивным данным и данным из черновика

parent ef1d50d0
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
overflow-y:auto; overflow-y:auto;
} }
.b-list_folders.active {
display: block;
}
.b-list_folders-item .b-list_folders-item
{ {
position: relative; position: relative;
...@@ -153,17 +157,18 @@ ...@@ -153,17 +157,18 @@
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
cursor: pointer; cursor: pointer;
height: 450px; height: calc(50vh - 30px);
} }
.b-foto_inner-emul .b-foto_inner-fict
{ {
height: 450px; height: calc(50vh - 30px);
} }
.b-foto_inner.single-row .b-foto_inner.single-row
{ {
height: auto; height: auto;
max-height: calc(100vh - 60px);
} }
.b-folder-content.has-selected .b-foto_inner.paired { .b-folder-content.has-selected .b-foto_inner.paired {
......
{"10-foto":{"1":["a1654670926-1.jpg","a1654670926-10.jpg"],"2":["a1654670926-2.jpg","a1654670926-3.jpg"],"3":["a1654670926-4.jpg","a1654670926-5.jpg"]},"2-foto":{"1":["a1654670926-1.jpg","a1654670926-2.jpg"]},"3-foto":{"1":["a1654665594-1.jpg","a1654665594-2.jpg"]},"4-foto":{"1":["a1654663117-1.jpg","a1654663117-2.jpg"]},"5-foto":"","6-foto":{"1":["a1654670995-1.jpg","a1654670995-3.jpg"],"2":["a1654670995-2.jpg","a1654670995-4.jpg"]},"7-foto":"","8-foto":"","9-foto":"","B-KazwCAcxM":{"1":["a1654670926-1.jpg","a1654670926-4.jpg"],"2":["a1654670926-2.jpg","a1654670926-3.jpg"]},"B24WGzEo8v_":"","B9RwSi4oPAh":""}
\ No newline at end of file
$(document).ready(function(){ $(document).ready(function(){
console.log('AAA common.js'); //console.log('AAA common.js');
}); });
\ No newline at end of file
...@@ -2,6 +2,7 @@ $(document).ready(function(){ ...@@ -2,6 +2,7 @@ $(document).ready(function(){
var var
$body = $('body'), $body = $('body'),
$selectFoldersType = $('.b-list_select-folders'),
$listFolders = $('.b-list_folders'), $listFolders = $('.b-list_folders'),
$listFoldersNew = $('.b-list_folders.new'), $listFoldersNew = $('.b-list_folders.new'),
$listFoldersArch = $('.b-list_folders.arch'), $listFoldersArch = $('.b-list_folders.arch'),
...@@ -14,6 +15,9 @@ $(document).ready(function(){ ...@@ -14,6 +15,9 @@ $(document).ready(function(){
colorsActive = $foldersContentWrap.data('colors'), colorsActive = $foldersContentWrap.data('colors'),
pairsCount = $foldersContentWrap.data('pairs_count'), pairsCount = $foldersContentWrap.data('pairs_count'),
storageName = 'im_fotos', storageName = 'im_fotos',
dataLS = null,
folderTypeStorage = null,
folderStorage = null,
dataStorage = null, dataStorage = null,
currentNumToSelect = {}, // Номер пары для очередного выбора currentNumToSelect = {}, // Номер пары для очередного выбора
hasSelectedFoto = {}, // Выбрали одну картинку (есть подсвеченное фото) hasSelectedFoto = {}, // Выбрали одну картинку (есть подсвеченное фото)
...@@ -38,7 +42,6 @@ $(document).ready(function(){ ...@@ -38,7 +42,6 @@ $(document).ready(function(){
function MarkFolderSelected($folder, type) function MarkFolderSelected($folder, type)
{ {
var $foldersList = getFoldersList(type); var $foldersList = getFoldersList(type);
$('.b-list_folders-item', $foldersList).removeClass('active'); $('.b-list_folders-item', $foldersList).removeClass('active');
$folder.addClass('active'); $folder.addClass('active');
} }
...@@ -46,10 +49,10 @@ $(document).ready(function(){ ...@@ -46,10 +49,10 @@ $(document).ready(function(){
function MarkNewFolderViewed($folderName, type) function MarkNewFolderViewed($folderName, type)
{ {
if (type == 'new') { if (type == 'new') {
//console.log('AAA MarkNewFolderViewed');
if (!$folderName.hasClass('viewed')) { if (!$folderName.hasClass('viewed')) {
$folderName.addClass('viewed'); $folderName.addClass('viewed');
$saveButton.removeClass('disabled'); $saveButton.removeClass('disabled');
SaveLsState();
} }
} }
} }
...@@ -57,6 +60,7 @@ $(document).ready(function(){ ...@@ -57,6 +60,7 @@ $(document).ready(function(){
function MarkArchFolderViewed(folderName, $this) function MarkArchFolderViewed(folderName, $this)
{ {
if ($this.parents('.b-preview_inner').hasClass('arch')) { if ($this.parents('.b-preview_inner').hasClass('arch')) {
//console.log('AAA MarkArchFolderViewed');
$('.b-list_folders-item[data-folder="' + folderName + '"]').addClass('viewed'); $('.b-list_folders-item[data-folder="' + folderName + '"]').addClass('viewed');
$saveButton.removeClass('disabled'); $saveButton.removeClass('disabled');
} }
...@@ -85,13 +89,9 @@ $(document).ready(function(){ ...@@ -85,13 +89,9 @@ $(document).ready(function(){
' <div class="b-foto-double col">' + ' <div class="b-foto-double col">' +
' <% } %>' + ' <% } %>' +
' <% }) %> \n' + ' <% }) %> \n' +
' <% if ((files.length % 2) != 0) { %>' + ' <% if ((files.length % 2) != 0) { %>' +
' <div class="b-foto"><div class="b-foto_inner-emul"></div></div>' + ' <div class="b-foto"><div class="b-foto_inner-fict"></div></div>' +
' <% } %>' + ' <% } %>' +
' </div>' + ' </div>' +
'</div>' '</div>'
), ),
...@@ -135,7 +135,7 @@ $(document).ready(function(){ ...@@ -135,7 +135,7 @@ $(document).ready(function(){
function SetPairedFotos(folderName, folderType) function SetPairedFotos(folderName, folderType)
{ {
console.log('AAA SetPairedFotos ', folderName, dataStorage); console.log('AAA SetPairedFotos ', folderName, folderType);
var sourceData = null; var sourceData = null;
...@@ -159,8 +159,8 @@ $(document).ready(function(){ ...@@ -159,8 +159,8 @@ $(document).ready(function(){
if (folderType == 'arch') { if (folderType == 'arch') {
if (archiveData[folderName]) sourceData = archiveData[folderName]; if (archiveData && archiveData[folderName]) sourceData = archiveData[folderName];
if (dataStorage[folderName]) sourceData = dataStorage[folderName]; if (dataStorage && dataStorage[folderName]) sourceData = dataStorage[folderName];
if (sourceData) { if (sourceData) {
var pairs = Object.keys(sourceData); var pairs = Object.keys(sourceData);
...@@ -173,8 +173,6 @@ $(document).ready(function(){ ...@@ -173,8 +173,6 @@ $(document).ready(function(){
}); });
} }
} }
} }
} }
...@@ -326,55 +324,66 @@ $(document).ready(function(){ ...@@ -326,55 +324,66 @@ $(document).ready(function(){
function ShowFoldersNew() function ShowFoldersNew()
{ {
$listFoldersNew.show(); //console.log('AAA ShowFoldersNew');
$listFolders.removeClass('active');
$foldersContentWrapInner.removeClass('active');
$listFoldersNew.addClass('active');
$foldersNewContentWrap.addClass('active'); $foldersNewContentWrap.addClass('active');
} }
function ShowFoldersArch() function ShowFoldersArch()
{ {
$listFoldersArch.show(); //console.log('AAA ShowFoldersArch');
$listFolders.removeClass('active');
$foldersContentWrapInner.removeClass('active');
$listFoldersArch.addClass('active');
$foldersArchContentWrap.addClass('active'); $foldersArchContentWrap.addClass('active');
} }
function SaveLsState() function SaveLsState()
{ {
var data = GetFoldersDataState(); var
data = {
data: GetFoldersDataState(),
folder: $('.b-list_folders.active .b-list_folders-item.active').data('folder'),
type: $('.b-list_folders.active').data('type'),
};
console.log('AAA SaveLsState ', data); console.log('AAA SaveLsState ', data);
localStorage.setItem(storageName, JSON.stringify(data)); localStorage.setItem(storageName, JSON.stringify(data));
} }
function SetStateFromLs(folder) function SetStateFromLs()
{ {
var data = localStorage.getItem(storageName); console.log('AAA SetStateFromLs');
if (data) {
dataStorage = JSON.parse(data); dataLS = JSON.parse(localStorage.getItem(storageName));
console.log('AAA SetStateFromLs ', dataStorage); folderTypeStorage = dataLS.type;
folderStorage = dataLS.folder;
dataStorage = dataLS.data;
if (folderTypeStorage == 'new') ShowFoldersNew();
if (folderTypeStorage == 'arch') ShowFoldersArch();
$selectFoldersType.val(folderTypeStorage);
if (folder == 'new' || folder == 'arch') {
Object.keys(dataStorage).forEach(function(item){ Object.keys(dataStorage).forEach(function(item){
console.log('AAA ', item);
$('.b-list_folders-item[data-folder="' + item + '"]', $listFolders).addClass('viewed'); $('.b-list_folders-item[data-folder="' + item + '"]', $listFolders).addClass('viewed');
if (dataStorage[item]) { if (dataStorage[item]) {
$('.b-list_folders-item[data-folder="' + item + '"] b', $listFolders).text(Object.keys(dataStorage[item]).length); $('.b-list_folders-item[data-folder="' + item + '"] b', $listFolders).text(Object.keys(dataStorage[item]).length);
} }
}); });
} else { $('.b-list_folders-item[data-folder="' + folderStorage + '"]').trigger( "click", {data: 'emul'});
}
}
$saveButton.removeClass('disabled');
} }
function GetFoldersDataState() function GetFoldersDataState()
{ {
// Формируем данные о картинках-парах: // Формируем данные о картинках-парах:
var data = {}; var data = {};
if (dataStorage) {
data = dataStorage;
}
$('.b-list_folders-item').each(function(){ $('.b-list_folders-item').each(function(){
var $this = $(this); var $this = $(this);
...@@ -387,6 +396,11 @@ $(document).ready(function(){ ...@@ -387,6 +396,11 @@ $(document).ready(function(){
$pairedFoto = $('.b-foto_inner.paired', folderContent); $pairedFoto = $('.b-foto_inner.paired', folderContent);
data[folderName] = null; data[folderName] = null;
if (folderContent.length == 0) {
//console.log('AAA Берём данные из LS, если они там имеются ');
if (dataStorage[folderName]) data[folderName] = dataStorage[folderName];
} else {
if ($pairedFoto.length>0) { if ($pairedFoto.length>0) {
$pairedFoto.each(function(){ $pairedFoto.each(function(){
var var
...@@ -401,10 +415,51 @@ $(document).ready(function(){ ...@@ -401,10 +415,51 @@ $(document).ready(function(){
data[folderName] = dataPaired; data[folderName] = dataPaired;
} }
} }
}
}); });
return data; return data;
} }
function GetArchiveData(callback)
{
//console.log('AAA получаем архивные данные');
var
$form = $('#load-folders-list-form'),
action = $form.attr('action'),
method = $form.attr('method');
StartLoading();
$.ajax(action, {
type: method,
success: function(data) {
console.log('AAA success', data);
StopLoading();
archiveData = data['archive'];
// Выставляем кол-во пар в архивных сетах
if (archiveData) {
Object.keys(archiveData).forEach(function(item){
if (archiveData[item]) {
$('.b-list_folders-item[data-folder="' + item + '"] b', $listFoldersArch).text(Object.keys(archiveData[item]).length);
}
});
}
if (callback && $.isFunction(callback)) {
callback();
}
},
error: function(rew, status, err) {
console.log(status, err);
}
});
}
// Обработка нажатия клавиш: // Обработка нажатия клавиш:
$body.keyup(function(e) { $body.keyup(function(e) {
...@@ -543,7 +598,12 @@ $(document).ready(function(){ ...@@ -543,7 +598,12 @@ $(document).ready(function(){
}); });
// Клик на папку для загрузки фотографий: // Клик на папку для загрузки фотографий:
$listFolders.on('click', '.b-list_folders-item', function(){ $listFolders.on('click', '.b-list_folders-item', function(event, param){
var isEmul = false;
if (param && (param['data'] == 'emul')) {
isEmul = true;
}
var var
$this = $(this), $this = $(this),
...@@ -562,11 +622,15 @@ $(document).ready(function(){ ...@@ -562,11 +622,15 @@ $(document).ready(function(){
$foldersContent.hide().removeClass('active'); $foldersContent.hide().removeClass('active');
if ($('.b-folder-content[data-folder="' + folderName + '"]').length>0) { if ($('.b-folder-content[data-folder="' + folderName + '"]').length>0) {
//console.log('AAA отображаем'); //console.log('AAA отображаем ', folderName);
$('.b-folder-content[data-folder="' + folderName + '"]').show().addClass('active'); $('.b-folder-content[data-folder="' + folderName + '"]').show().addClass('active');
MarkFolderSelected($this, folderType); MarkFolderSelected($this, folderType);
//if (folderType == 'new') {
SaveLsState();
//}
} else { } else {
//console.log('AAA подгружаем'); //console.log('AAA подгружаем ', folderName);
StartLoading(); StartLoading();
$.ajax(action, { $.ajax(action, {
type: method, type: method,
...@@ -578,6 +642,10 @@ $(document).ready(function(){ ...@@ -578,6 +642,10 @@ $(document).ready(function(){
SetPairedFotos(folderName, folderType); SetPairedFotos(folderName, folderType);
MarkFolderSelected($this, folderType); MarkFolderSelected($this, folderType);
MarkNewFolderViewed($this, folderType); MarkNewFolderViewed($this, folderType);
//if (!isEmul && folderType == 'new') {
if (!isEmul) {
SaveLsState();
}
}, },
error: function(rew, status, err) { error: function(rew, status, err) {
console.log(status, err); console.log(status, err);
...@@ -589,19 +657,20 @@ $(document).ready(function(){ ...@@ -589,19 +657,20 @@ $(document).ready(function(){
return false; return false;
}); });
// Изменение типа отображаемой папки: // Изменение типа отображаемых папок:
$('.b-list_select-folders').on('change', function(){ $selectFoldersType.on('change', function(){
var type = $(this).val(); console.log('AAA Изменение типа отображаемых папок:');
$listFolders.hide(); var type = $(this).val();
$foldersContentWrapInner.removeClass('active');
if (type == 'new') ShowFoldersNew(); if (type == 'new') ShowFoldersNew();
if (type == 'arch') ShowFoldersArch(); if (type == 'arch') ShowFoldersArch();
SaveLsState();
// Загрузка списка папок: // Загрузка списка папок:
/*
if ($('li', $('.b-list_folders.' + type)).length == 0) { if ($('li', $('.b-list_folders.' + type)).length == 0) {
//console.log('AAA загружаем список папок'); //console.log('AAA загружаем список папок');
var var
...@@ -627,45 +696,17 @@ $(document).ready(function(){ ...@@ -627,45 +696,17 @@ $(document).ready(function(){
console.log(status, err); console.log(status, err);
} }
}); });
} }
*/
}); });
// Клик на "Сохранить" для объявления: // Клик на "Сохранить":
$saveButton.on('click', function(){ $saveButton.on('click', function(){
if (!confirm('Применить действия над изображениями?')) return false; if (!confirm('Применить действия над изображениями?')) return false;
// Формируем данные о картинках-парах: var data = GetFoldersDataState();
var data = {};
$('.b-list_folders-item').each(function(){
var $this = $(this);
if ($this.hasClass('viewed')) {
var
dataPaired = {},
folderName = $this.data('folder'),
folderContent = $('.b-folder-content[data-folder="' + folderName + '"]'),
$pairedFoto = $('.b-foto_inner.paired', folderContent);
data[folderName] = null;
if ($pairedFoto.length>0) {
$pairedFoto.each(function(){
var
$this = $(this),
pairNum = $this.data('num');
if (!dataPaired[pairNum]) {
dataPaired[pairNum] = [];
}
dataPaired[pairNum].push($this.data('foto'));
});
data[folderName] = dataPaired;
}
}
});
var var
$form = $('#save-folders-form'), $form = $('#save-folders-form'),
...@@ -673,7 +714,7 @@ $(document).ready(function(){ ...@@ -673,7 +714,7 @@ $(document).ready(function(){
method = $form.attr('method'); method = $form.attr('method');
console.log('AAA data = ', data); console.log('AAA data = ', data);
return false; //return false;
$.ajax(action, { $.ajax(action, {
type: method, type: method,
...@@ -701,8 +742,14 @@ $(document).ready(function(){ ...@@ -701,8 +742,14 @@ $(document).ready(function(){
}); });
GetArchiveData(function(){
// Отображаем содержимое первой папки new при загрузке страницы: // Отображаем содержимое первой папки new при загрузке страницы:
if (localStorage.getItem(storageName)) {
SetStateFromLs();
} else {
ShowFoldersNew(); ShowFoldersNew();
SetStateFromLs('new'); $('.b-list_folders-item', $listFoldersNew).first().trigger( "click", {data: 'emul'});
}
});
}); });
\ No newline at end of file
...@@ -45,13 +45,24 @@ class Index extends Common ...@@ -45,13 +45,24 @@ class Index extends Common
{ {
chdir('public/fotos'); chdir('public/fotos');
$dir = getcwd(); $dir_new = getcwd();
chdir('../..'); chdir('../..');
$folders = scandir($dir); $folders_new = scandir($dir_new);
foreach ($folders as $key=>$folder_name) { chdir('public/fotos-arch');
$dir_arch = getcwd();
chdir('../..');
$folders_arch = scandir($dir_arch);
foreach ($folders_new as $key=>$folder_name) {
if (strpos($folder_name, '.') > -1) {
unset($folders_new[$key]);
}
}
foreach ($folders_arch as $key=>$folder_name) {
if (strpos($folder_name, '.') > -1) { if (strpos($folder_name, '.') > -1) {
unset($folders[$key]); unset($folders_arch[$key]);
} }
} }
...@@ -70,7 +81,8 @@ class Index extends Common ...@@ -70,7 +81,8 @@ class Index extends Common
'lang' => $request->getAttribute('layoutInfo')->getLang(), 'lang' => $request->getAttribute('layoutInfo')->getLang(),
'colors_active' => $this->container->get('config')['foto_conf']['colors_active'], 'colors_active' => $this->container->get('config')['foto_conf']['colors_active'],
'pairs_count' => $this->container->get('config')['foto_conf']['pairs_count'], 'pairs_count' => $this->container->get('config')['foto_conf']['pairs_count'],
'folders' => $folders, 'folders_new' => $folders_new,
'folders_arch' => $folders_arch,
'dir' => $dir, 'dir' => $dir,
]; ];
......
...@@ -68,7 +68,8 @@ class Main extends Common ...@@ -68,7 +68,8 @@ class Main extends Common
$response = $this->loadFolder($request); $response = $this->loadFolder($request);
break; break;
case self::LOAD_FOLDERS_LIST: case self::LOAD_FOLDERS_LIST:
$response = $this->loadFoldersList($request); //$response = $this->loadFoldersList($request);
$response = $this->getArchiveData($request);
break; break;
default: default:
} }
...@@ -178,7 +179,6 @@ class Main extends Common ...@@ -178,7 +179,6 @@ class Main extends Common
return new JsonResponse($resp); return new JsonResponse($resp);
} }
private function loadFolder(ServerRequestInterface $request) private function loadFolder(ServerRequestInterface $request)
{ {
$data = $request->getParsedBody(); $data = $request->getParsedBody();
...@@ -215,7 +215,6 @@ class Main extends Common ...@@ -215,7 +215,6 @@ class Main extends Common
return $response; return $response;
} }
private function loadFoldersList(ServerRequestInterface $request) private function loadFoldersList(ServerRequestInterface $request)
{ {
$data = $request->getParsedBody(); $data = $request->getParsedBody();
...@@ -258,4 +257,18 @@ class Main extends Common ...@@ -258,4 +257,18 @@ class Main extends Common
return $response; return $response;
} }
private function getArchiveData(ServerRequestInterface $request)
{
chdir('public/');
$file_name = "fotos.dat";
$archive_data = json_decode(file_get_contents($file_name), true);
chdir('..');
$resp = [
'archive' => $archive_data
];
return new JsonResponse($resp);
}
} }
\ No newline at end of file
...@@ -39,7 +39,8 @@ $form_load_link = $this->url('adm.main.loadfolder'); ...@@ -39,7 +39,8 @@ $form_load_link = $this->url('adm.main.loadfolder');
$form_loadlist_link = $this->url('adm.main.loadfolderslist'); $form_loadlist_link = $this->url('adm.main.loadfolderslist');
$colors_active = $this->colors_active; $colors_active = $this->colors_active;
$folders = $this->folders; $folders_new = $this->folders_new;
$folders_arch = $this->folders_arch;
$dir = $this->dir; $dir = $this->dir;
?> ?>
...@@ -54,12 +55,15 @@ $dir = $this->dir; ...@@ -54,12 +55,15 @@ $dir = $this->dir;
</select> </select>
<ul class="b-list_folders new" data-type="new"> <ul class="b-list_folders new" data-type="new">
<?php foreach ($folders as $folder): ?> <?php foreach ($folders_new as $folder): ?>
<li class="b-list_folders-item" data-folder="<?= $folder ?>"><?= $folder ?><b></b></li> <li class="b-list_folders-item" data-folder="<?= $folder ?>"><?= $folder ?><b></b></li>
<?php endforeach; ?> <?php endforeach; ?>
</ul> </ul>
<ul class="b-list_folders arch" data-type="arch"> <ul class="b-list_folders arch" data-type="arch">
<?php foreach ($folders_arch as $folder): ?>
<li class="b-list_folders-item" data-folder="<?= $folder ?>"><?= $folder ?><b></b></li>
<?php endforeach; ?>
</ul> </ul>
<form id="load-folders-list-form" action="<?= $form_loadlist_link ?>" method="POST"></form> <form id="load-folders-list-form" action="<?= $form_loadlist_link ?>" method="POST"></form>
......
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