related to #1790 optimized back end and front end a bit, but front has to be improved

This commit is contained in:
Matthieu Leproux
2022-11-15 16:03:25 +01:00
parent bd05d9e4ab
commit 468394af66
3 changed files with 64 additions and 140 deletions
+48 -43
View File
@@ -183,6 +183,8 @@ foreach ($allAlbum as $album)
$the_place['cat'] = $album; $the_place['cat'] = $album;
} }
$is_forbidden = array_fill_keys(@explode(',', $user['forbidden_categories']), 1);
//Make an ordered tree //Make an ordered tree
function cmpCat($a, $b) function cmpCat($a, $b)
{ {
@@ -195,50 +197,10 @@ function cmpCat($a, $b)
function assocToOrderedTree($assocT) function assocToOrderedTree($assocT)
{ {
global $nb_photos_in, $nb_sub_photos;
$orderedTree = array(); $orderedTree = array();
$query = '
SELECT
category_id,
COUNT(*) AS nb_photos
FROM '.IMAGE_CATEGORY_TABLE.'
GROUP BY category_id
;';
$nb_photos_in = query2array($query, 'category_id', 'nb_photos');
$query = '
SELECT
id,
uppercats
FROM '.CATEGORIES_TABLE.'
;';
$all_categories = query2array($query, 'id', 'uppercats');
$subcats_of = array();
foreach ($all_categories as $id => $uppercats)
{
foreach (array_slice(explode(',', $uppercats), 0, -1) as $uppercat_id)
{
@$subcats_of[$uppercat_id][] = $id;
}
}
$nb_sub_photos = array();
foreach ($subcats_of as $cat_id => $subcat_ids)
{
$nb_photos = 0;
foreach ($subcat_ids as $id)
{
if (isset($nb_photos_in[$id]))
{
$nb_photos+= $nb_photos_in[$id];
}
}
$nb_sub_photos[$cat_id] = $nb_photos;
}
foreach($assocT as $cat) foreach($assocT as $cat)
{ {
$orderedCat = array(); $orderedCat = array();
@@ -248,7 +210,7 @@ SELECT
$orderedCat['id'] = $cat['cat']['id']; $orderedCat['id'] = $cat['cat']['id'];
$orderedCat['nb_images'] = isset($nb_photos_in[$cat['cat']['id']]) ? $nb_photos_in[$cat['cat']['id']] : 0; $orderedCat['nb_images'] = isset($nb_photos_in[$cat['cat']['id']]) ? $nb_photos_in[$cat['cat']['id']] : 0;
$orderedCat['last_updates'] = $cat['cat']['lastmodified']; $orderedCat['last_updates'] = $cat['cat']['lastmodified'];
$orderedCat['has_not_access'] = !cat_admin_access($cat['cat']['id']); $orderedCat['has_not_access'] = isset($is_forbidden[$cat['cat']['id']]);
$orderedCat['nb_sub_photos'] = isset($nb_sub_photos[$cat['cat']['id']]) ? $nb_sub_photos[$cat['cat']['id']] : 0; $orderedCat['nb_sub_photos'] = isset($nb_sub_photos[$cat['cat']['id']]) ? $nb_sub_photos[$cat['cat']['id']] : 0;
if (isset($cat['children'])) if (isset($cat['children']))
{ {
@@ -262,6 +224,49 @@ SELECT
return $orderedTree; return $orderedTree;
} }
$query = '
SELECT
category_id,
COUNT(*) AS nb_photos
FROM '.IMAGE_CATEGORY_TABLE.'
GROUP BY category_id
;';
$nb_photos_in = query2array($query, 'category_id', 'nb_photos');
$query = '
SELECT
id,
uppercats
FROM '.CATEGORIES_TABLE.'
;';
$all_categories = query2array($query, 'id', 'uppercats');
$subcats_of = array();
foreach ($all_categories as $id => $uppercats)
{
foreach (array_slice(explode(',', $uppercats), 0, -1) as $uppercat_id)
{
@$subcats_of[$uppercat_id][] = $id;
}
}
$nb_sub_photos = array();
foreach ($subcats_of as $cat_id => $subcat_ids)
{
$nb_photos = 0;
foreach ($subcat_ids as $id)
{
if (isset($nb_photos_in[$id]))
{
$nb_photos+= $nb_photos_in[$id];
}
}
$nb_sub_photos[$cat_id] = $nb_photos;
}
$template->assign( $template->assign(
array( array(
'album_data' => assocToOrderedTree($associatedTree), 'album_data' => assocToOrderedTree($associatedTree),
+1 -66
View File
@@ -33,18 +33,6 @@ $(document).ready(() => {
+'</div>'; +'</div>';
action_order = '<a data-id="'+node.id+'" class="move-cat-order icon-sort-name-up tiptip" title="'+ str_sort_order +'"></a>'; action_order = '<a data-id="'+node.id+'" class="move-cat-order icon-sort-name-up tiptip" title="'+ str_sort_order +'"></a>';
action_small =
"<div class='icon-ellipsis-vert move-cat-action-small toggle-cat-option'>"
+"<span id='catOptionsSmall' class='dropdown cat-option'>"
+"<a class='icon-plus-circled move-cat-add-small dropdown-option' data-aid='"+node.id+"'>"+ str_add_album +"</a>"
+"<a class='icon-pencil dropdown-option' href='admin.php?page=album-"+node.id+"'>"+ str_edit_album +"</a>"
+"<a class='icon-upload dropdown-option' href='admin.php?page=photos_add&album="+node.id+"'>"+ str_add_photo +"</a>"
+"<a class='icon-eye dropdown-option' href='index.php?/category/"+node.id+"'>"+ str_visit_gallery +"</a>"
+"<a class='icon-sort-name-up dropdown-option' data-id='"+node.id+"'>"+ str_sort_order +"</a>"
+"<a class='icon-trash move-cat-delete-small dropdown-option' data-id='"+node.id+"'>"+ str_delete_album +"</a>"
+"</span>"
+"</div>";
cont = li.find('.jqtree-element'); cont = li.find('.jqtree-element');
cont.addClass('move-cat-container'); cont.addClass('move-cat-container');
cont.attr('id', 'cat-'+node.id) cont.attr('id', 'cat-'+node.id)
@@ -53,7 +41,6 @@ $(document).ready(() => {
cont.append(actions); cont.append(actions);
cont.find('.move-cat-action .move-cat-see').after(action_order); cont.find('.move-cat-action .move-cat-see').after(action_order);
cont.find('.move-cat-action').before(action_small);
cont.find(".toggle-cat-option").on("click", function () { cont.find(".toggle-cat-option").on("click", function () {
$(".cat-option").hide(); $(".cat-option").hide();
$(this).find(".cat-option").toggle(); $(this).find(".cat-option").toggle();
@@ -71,7 +58,6 @@ $(document).ready(() => {
.replace(/%id%/g, node.id))); .replace(/%id%/g, node.id)));
} else { } else {
cont.find('.move-cat-order').addClass("notClickable"); cont.find('.move-cat-order').addClass("notClickable");
cont.find('#catOptionsSmall .icon-sort-name-up').hide();
cont.append($(toggler_cont cont.append($(toggler_cont
.replace(/%content%/g, toggler_close) .replace(/%content%/g, toggler_close)
@@ -131,25 +117,9 @@ $(document).ready(() => {
if (node.has_not_access) { if (node.has_not_access) {
cont.find(".move-cat-see").addClass("notClickable"); cont.find(".move-cat-see").addClass("notClickable");
cont.find('#catOptionsSmall .icon-eye').hide();
} }
} }
/* Hide album options and on click on the screen */
$(document).mouseup(function (e) {
e.stopPropagation();
let option_is_clicked = false
$("#catOptionsSmall a").each(function () {
if (!($(this).has(e.target).length === 0)) {
option_is_clicked = true;
}
})
if (!option_is_clicked) {
$(".jqtree-element").find("#catOptionsSmall").hide();
}
});
var url_split = window.location.href.split("cat_move"); var url_split = window.location.href.split("cat_move");
var catToOpen = url_split[url_split.length-1].split("-")[1]; var catToOpen = url_split[url_split.length-1].split("-")[1];
@@ -313,10 +283,6 @@ $(document).ready(() => {
openAddAlbumPopIn($(this).data("aid")); openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid")); $(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
}) })
$(".move-cat-add-small").on("click", function () {
openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
})
$(".CloseAddAlbum").on("click", function () { $(".CloseAddAlbum").on("click", function () {
closeAddAlbumPopIn(); closeAddAlbumPopIn();
}); });
@@ -392,16 +358,9 @@ $(document).ready(() => {
openAddAlbumPopIn($(this).data("aid")); openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid")); $(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
}); });
$(".move-cat-add-small").unbind("click").on("click", function () {
openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
});
$(".move-cat-delete").on("click", function () { $(".move-cat-delete").on("click", function () {
triggerDeleteAlbum($(this).data("id")); triggerDeleteAlbum($(this).data("id"));
}); });
$(".move-cat-delete-small").on("click", function () {
triggerDeleteAlbum($(this).data("id"));
});
$(".move-cat-title-container").unbind("click").on("click", function () { $(".move-cat-title-container").unbind("click").on("click", function () {
openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title")); openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title"));
$(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id')); $(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id'));
@@ -437,9 +396,6 @@ $(document).ready(() => {
$(".move-cat-delete").on("click", function () { $(".move-cat-delete").on("click", function () {
triggerDeleteAlbum($(this).data("id")); triggerDeleteAlbum($(this).data("id"));
}); });
$(".move-cat-delete-small").on("click", function () {
triggerDeleteAlbum($(this).data("id"));
});
/*---------------- /*----------------
Checkboxes Checkboxes
@@ -577,16 +533,9 @@ function openDeleteAlbumPopIn(cat_to_delete) {
openAddAlbumPopIn($(this).data("aid")); openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid")); $(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
}); });
$(".move-cat-add-small").on("click", function () {
openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
});
$(".move-cat-delete").on("click", function () { $(".move-cat-delete").on("click", function () {
triggerDeleteAlbum($(this).data("id")); triggerDeleteAlbum($(this).data("id"));
}); });
$(".move-cat-delete-small").on("click", function () {
triggerDeleteAlbum($(this).data("id"));
});
$(".move-cat-title-container").unbind("click").on("click", function () { $(".move-cat-title-container").unbind("click").on("click", function () {
openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title")); openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title"));
$(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id')); $(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id'));
@@ -741,16 +690,9 @@ function applyMove(event) {
openAddAlbumPopIn($(this).data("aid")); openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid")); $(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
}); });
$(".move-cat-add-small").unbind("click").on("click", function () {
openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
});
$(".move-cat-delete").on("click", function () { $(".move-cat-delete").on("click", function () {
triggerDeleteAlbum($(this).data("id")); triggerDeleteAlbum($(this).data("id"));
}); });
$(".move-cat-delete-small").on("click", function () {
triggerDeleteAlbum($(this).data("id"));
});
$(".move-cat-title-container").on("click", function () { $(".move-cat-title-container").on("click", function () {
openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title")); openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title"));
$(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id')); $(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id'));
@@ -768,16 +710,9 @@ function applyMove(event) {
openAddAlbumPopIn($(this).data("aid")); openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid")); $(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
}); });
$(".move-cat-add-small").unbind("click").on("click", function () {
openAddAlbumPopIn($(this).data("aid"));
$(".AddAlbumSubmit").data("a-parent", $(this).data("aid"));
});
$(".move-cat-delete").on("click", function () { $(".move-cat-delete").on("click", function () {
triggerDeleteAlbum($(this).data("id")); triggerDeleteAlbum($(this).data("id"));
}); });
$(".move-cat-delete-small").on("click", function () {
triggerDeleteAlbum($(this).data("id"));
});
$(".move-cat-title-container").on("click", function () { $(".move-cat-title-container").on("click", function () {
openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title")); openRenameAlbumPopIn($(this).find(".move-cat-title").attr("title"));
$(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id')); $(".RenameAlbumSubmit").data("cat_id", $(this).attr('data-id'));
@@ -855,7 +790,7 @@ function changeRank(node, rank) {
}) })
} }
function makePrivateHierarchy (node) { function makePrivateHierarchy(node) {
node.status = 'private'; node.status = 'private';
node.children.forEach(node => { node.children.forEach(node => {
makePrivateHierarchy(node); makePrivateHierarchy(node);
+15 -31
View File
@@ -523,28 +523,10 @@ input[name="position"] {
.dragging .move-cat-container .move-cat-toogler, .dragging .move-cat-container .move-cat-toogler,
.dragging .move-cat-container .move-cat-action-cont a, .dragging .move-cat-container .move-cat-action-cont a,
.dragging .move-cat-container .move-cat-title-container, .dragging .move-cat-container .move-cat-title-container{
.dragging .move-cat-action-small {
pointer-events: all; pointer-events: all;
} }
.move-cat-action-small {
display: none;
position: relative;
right: 10px;
font-weight: bold;
cursor: pointer;
transform: scale(1.2);
padding: 20px 10px;
}
#catOptionsSmall .dropdown-option {
font-size: 10px;
font-weight: bold;
}
#catOptionsSmall .dropdown-option::before{
margin: 0 6px 0 -2px;
}
.last-update { .last-update {
display: none; display: none;
@@ -575,23 +557,25 @@ input[name="position"] {
display: none; display: none;
} }
.move-cat-action { ul.jqtree-tree ul.jqtree_common {
display: none; margin-left: 20px !important;
} }
.move-cat-action-small {
display: flex;
}
.move-cat-title-container {
max-width: 80%;
}
}
@media (max-width: 850px) {
.move-cat-title-container { .move-cat-title-container {
max-width: 60%; max-width: 60%;
} }
} }
@media (max-width: 1100px) {
.move-cat-title-container {
max-width: 50%;
}
}
@media (max-width: 850px) {
.move-cat-title-container {
max-width: 40%;
}
}
</style> </style>