viewbale apps issue fix

This commit is contained in:
kriks7iitk 2024-07-16 19:41:22 +05:30
parent f708adc7ba
commit 14b7ba4120
3 changed files with 28 additions and 14 deletions

View file

@ -48,14 +48,16 @@ const AppList = (props) => {
</div>
</div>
)}
{!props.isLoading && props.currentFolder.count === 0 && (
{!props.isLoading && props.apps?.length === 0 && (
<div className="text-center d-block">
<EmptyFoldersIllustration className="mb-4" data-cy="empty-folder-image" />
<span
className={`d-block text-center text-body ${props.darkMode && 'text-white-50'}`}
data-cy="empty-folder-text"
>
{t('homePage.thisFolderIsEmpty', 'This folder is empty')}
{props.currentFolder?.count == 0
? t('homePage.thisFolderIsEmpty', 'This folder is empty')
: t('homePage.nonAccessibleFolderApps', 'No apps are accessible of this folder')}
</span>
</div>
)}

View file

@ -30,7 +30,7 @@ export function viewableAppsQueryUsingPermissions(
select?: Array<string>
): SelectQueryBuilder<AppBase> {
const viewableApps = userAppPermissions.hideAll
? [...userAppPermissions.editableAppsId]
? [null, ...userAppPermissions.editableAppsId]
: [
null,
...Array.from(
@ -40,6 +40,7 @@ export function viewableAppsQueryUsingPermissions(
])
),
];
const viewableAppsQb = manager
.createQueryBuilder(AppBase, 'viewable_apps')
.innerJoin('viewable_apps.user', 'user')
@ -55,14 +56,16 @@ export function viewableAppsQueryUsingPermissions(
if (select) {
viewableAppsQb.select(select.map((col) => `viewable_apps.${col}`));
}
const viewAll = userAppPermissions.isAllEditable || userAppPermissions.isAllViewable;
if (!viewAll || userAppPermissions.hideAll) {
const { isAllEditable, isAllViewable, hideAll } = userAppPermissions;
if (isAllEditable) return viewableAppsQb;
if ((isAllViewable && hideAll) || (!isAllViewable && !hideAll) || (!isAllViewable && hideAll)) {
viewableAppsQb.where('viewable_apps.id IN (:...viewableApps)', {
viewableApps,
});
return viewableAppsQb;
}
const hiddenApps = userAppPermissions.hiddenAppsId.filter((id) => !userAppPermissions.editableAppsId.includes(id));
if (!userAppPermissions.hideAll && viewAll && hiddenApps.length > 0) {
if (!userAppPermissions.hideAll && isAllViewable && hiddenApps.length > 0) {
viewableAppsQb.where('viewable_apps.id NOT IN (:...hiddenApps)', {
hiddenApps,
});

View file

@ -98,20 +98,29 @@ export class FoldersService {
totalCount: 0,
};
}
const viewableAppsTotal = Array.from(
new Set([
...userAppPermissions.editableAppsId,
...userAppPermissions.viewableAppsId.filter((id) => !userAppPermissions.hiddenAppsId.includes(id)),
])
);
const { isAllEditable, isAllViewable, hideAll } = userAppPermissions;
const viewableAppsTotal = isAllEditable
? [null, ...folderAppIds]
: hideAll
? [null, ...userAppPermissions.editableAppsId]
: isAllViewable
? [null, ...folderAppIds].filter((id) => !userAppPermissions.hiddenAppsId.includes(id))
: [
null,
...Array.from(
new Set([
...userAppPermissions.editableAppsId,
...userAppPermissions.viewableAppsId.filter((id) => !userAppPermissions.hiddenAppsId.includes(id)),
])
),
];
const viewableAppIds = viewableAppsTotal.filter((id) => folderAppIds.includes(id));
const viewableAppIds = [null, ...viewableAppsTotal.filter((id) => folderAppIds.includes(id))];
const viewableAppsInFolder = createQueryBuilder(AppBase, 'apps')
.innerJoin('apps.user', 'user')
.addSelect(['user.firstName', 'user.lastName']);
// if (!(userAppPermissions.isAllEditable || userAppPermissions.isAllViewable)) {
viewableAppsInFolder.where('apps.id IN (:...viewableAppIds)', {
viewableAppIds: viewableAppIds,
});