Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2021-01-31 15:44:59 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2021-01-31 16:19:16 +0300
commitb758780368949c96bd46fbefd6f670fa9be07ed9 (patch)
treedfb4827d194d47ad6237a24de88055a89dd61d11
parenta01cfebe2fcd4985b1bf97376f5f739f8b1eb34d (diff)
#800 add cards of non-shared boards to result list
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java12
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java7
2 files changed, 19 insertions, 0 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
index 5aa996603..82a9e5caa 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
@@ -1294,6 +1294,7 @@ public class DataBaseAdapter {
}
}
+ handleWidgetTypeExtras(filterWidget, cardsResult);
filterRelationsForCard(cardsResult);
@@ -1318,6 +1319,17 @@ public class DataBaseAdapter {
return result;
}
+ private void handleWidgetTypeExtras(FilterWidget filterWidget, List<FullCard> cardsResult) {
+ if (filterWidget.getWidgetType() == EWidgetType.UPCOMING_WIDGET) {
+ // https://github.com/stefan-niedermann/nextcloud-deck/issues/800 all cards within non-shared boards need to be included
+ List<Long> accountIds = null;
+ if (filterWidget.getAccounts() != null && !filterWidget.getAccounts().isEmpty()) {
+ accountIds = filterWidget.getAccounts().stream().map(a -> a.getAccountId()).collect(Collectors.toList());
+ }
+ cardsResult.addAll(db.getCardDao().getFullCardsForNonSharedBoardsDirectly(accountIds));
+ }
+ }
+
public List<FilterWidget> getFilterWidgetsByType(EWidgetType type) {
List<Integer> ids = db.getFilterWidgetDao().getFilterWidgetIdsByType(type.getId());
List<FilterWidget> widgets = new ArrayList<>(ids.size());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
index 82bdf1b8d..7af025c3d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
@@ -85,4 +85,11 @@ public interface CardDao extends GenericDao<Card> {
@Query("SELECT c.stackId FROM card c WHERE localId = :localCardId")
Long getLocalStackIdByLocalCardId(Long localCardId);
+
+ @Transaction
+ @Query("SELECT * FROM card c WHERE " +
+ "exists(select 1 from Stack s join Board b on s.boardId = b.localId where s.localId = c.stackId and not exists(select 1 from AccessControl ac where ac.boardId = b.localId)) " +
+ "and ((:accountIds) is null or accountId in (:accountIds)) " +
+ "and (status<>1 or id is null or lastModified <> lastModifiedLocal)")
+ List<FullCard> getFullCardsForNonSharedBoardsDirectly(List<Long> accountIds);
} \ No newline at end of file