diff --git a/commafeed-client/src/app/types.ts b/commafeed-client/src/app/types.ts index 3af51975..1a6ee28b 100644 --- a/commafeed-client/src/app/types.ts +++ b/commafeed-client/src/app/types.ts @@ -38,6 +38,7 @@ export interface ApplicationSettings { export interface Category { id: string parentId?: string + parentName?: string name: string children: Category[] feeds: Subscription[] diff --git a/commafeed-client/src/components/content/add/CategorySelect.tsx b/commafeed-client/src/components/content/add/CategorySelect.tsx index 39dcbdd6..58510037 100644 --- a/commafeed-client/src/components/content/add/CategorySelect.tsx +++ b/commafeed-client/src/components/content/add/CategorySelect.tsx @@ -4,16 +4,20 @@ import { Constants } from "app/constants" import { useAppSelector } from "app/store" import { flattenCategoryTree } from "app/utils" -type CategorySelectProps = Partial & { withAll?: boolean } +type CategorySelectProps = Partial & { + withAll?: boolean + withoutCategoryIds?: string[] +} export function CategorySelect(props: CategorySelectProps) { const rootCategory = useAppSelector(state => state.tree.rootCategory) const categories = rootCategory && flattenCategoryTree(rootCategory) const selectData: SelectItem[] | undefined = categories ?.filter(c => c.id !== Constants.categories.all.id) + .filter(c => !props.withoutCategoryIds || !props.withoutCategoryIds.includes(c.id)) .sort((c1, c2) => c1.name.localeCompare(c2.name)) .map(c => ({ - label: c.name, + label: c.parentName ? t`${c.name} (in ${c.parentName})` : c.name, value: c.id, })) if (props.withAll) { diff --git a/commafeed-client/src/locales/ar/messages.po b/commafeed-client/src/locales/ar/messages.po index 50833f6e..c839343e 100644 --- a/commafeed-client/src/locales/ar/messages.po +++ b/commafeed-client/src/locales/ar/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "الملف مطلوب" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/ca/messages.po b/commafeed-client/src/locales/ca/messages.po index 051f6df0..98054eaf 100644 --- a/commafeed-client/src/locales/ca/messages.po +++ b/commafeed-client/src/locales/ca/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "el fitxer és necessari" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/cs/messages.po b/commafeed-client/src/locales/cs/messages.po index 11a0b091..651e09c4 100644 --- a/commafeed-client/src/locales/cs/messages.po +++ b/commafeed-client/src/locales/cs/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/cy/messages.po b/commafeed-client/src/locales/cy/messages.po index 11b804f2..5f29782c 100644 --- a/commafeed-client/src/locales/cy/messages.po +++ b/commafeed-client/src/locales/cy/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "mae angen y ffeil" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/da/messages.po b/commafeed-client/src/locales/da/messages.po index fa68317e..cfc89610 100644 --- a/commafeed-client/src/locales/da/messages.po +++ b/commafeed-client/src/locales/da/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fil er påkrævet" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/de/messages.po b/commafeed-client/src/locales/de/messages.po index edd9f47e..c4cb0aa5 100644 --- a/commafeed-client/src/locales/de/messages.po +++ b/commafeed-client/src/locales/de/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "Datei ist erforderlich" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/en/messages.po b/commafeed-client/src/locales/en/messages.po index 10fe1f68..8a54d425 100644 --- a/commafeed-client/src/locales/en/messages.po +++ b/commafeed-client/src/locales/en/messages.po @@ -795,3 +795,7 @@ msgstr "Your feeds have been queued for refresh." #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "file is required" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "{0} (in {1})" diff --git a/commafeed-client/src/locales/es/messages.po b/commafeed-client/src/locales/es/messages.po index bb6c3669..adbb4a62 100644 --- a/commafeed-client/src/locales/es/messages.po +++ b/commafeed-client/src/locales/es/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "archivo requerido" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/fa/messages.po b/commafeed-client/src/locales/fa/messages.po index bd62d0c6..5d9fe3b7 100644 --- a/commafeed-client/src/locales/fa/messages.po +++ b/commafeed-client/src/locales/fa/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "فایل مورد نیاز است" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/fi/messages.po b/commafeed-client/src/locales/fi/messages.po index 3f31b7cd..f882ccc5 100644 --- a/commafeed-client/src/locales/fi/messages.po +++ b/commafeed-client/src/locales/fi/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "tiedosto vaaditaan" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/fr/messages.po b/commafeed-client/src/locales/fr/messages.po index d8721ea6..ec1b7acb 100644 --- a/commafeed-client/src/locales/fr/messages.po +++ b/commafeed-client/src/locales/fr/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fichier requis" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/gl/messages.po b/commafeed-client/src/locales/gl/messages.po index 625dcc78..460562f7 100644 --- a/commafeed-client/src/locales/gl/messages.po +++ b/commafeed-client/src/locales/gl/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "é necesario o ficheiro" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/hu/messages.po b/commafeed-client/src/locales/hu/messages.po index 6f3d6cbb..0c560d50 100644 --- a/commafeed-client/src/locales/hu/messages.po +++ b/commafeed-client/src/locales/hu/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fájl szükséges" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/id/messages.po b/commafeed-client/src/locales/id/messages.po index e263f901..1b9a9ef0 100644 --- a/commafeed-client/src/locales/id/messages.po +++ b/commafeed-client/src/locales/id/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "file diperlukan" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/it/messages.po b/commafeed-client/src/locales/it/messages.po index c1b199eb..3cf017dc 100644 --- a/commafeed-client/src/locales/it/messages.po +++ b/commafeed-client/src/locales/it/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "è richiesto il file" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/ja/messages.po b/commafeed-client/src/locales/ja/messages.po index bf69f027..d6b51118 100644 --- a/commafeed-client/src/locales/ja/messages.po +++ b/commafeed-client/src/locales/ja/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "ファイルが必要です" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/ko/messages.po b/commafeed-client/src/locales/ko/messages.po index c30bac7b..e8a73984 100644 --- a/commafeed-client/src/locales/ko/messages.po +++ b/commafeed-client/src/locales/ko/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "파일이 필요합니다" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/ms/messages.po b/commafeed-client/src/locales/ms/messages.po index 24c7412c..9e59473c 100644 --- a/commafeed-client/src/locales/ms/messages.po +++ b/commafeed-client/src/locales/ms/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fail diperlukan" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/nb/messages.po b/commafeed-client/src/locales/nb/messages.po index 2d5f453a..cad77152 100644 --- a/commafeed-client/src/locales/nb/messages.po +++ b/commafeed-client/src/locales/nb/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fil kreves" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/nl/messages.po b/commafeed-client/src/locales/nl/messages.po index 1ef1b7f4..68b4b279 100644 --- a/commafeed-client/src/locales/nl/messages.po +++ b/commafeed-client/src/locales/nl/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "bestand is vereist" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/nn/messages.po b/commafeed-client/src/locales/nn/messages.po index 9eff55d8..62d67407 100644 --- a/commafeed-client/src/locales/nn/messages.po +++ b/commafeed-client/src/locales/nn/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fil kreves" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/pl/messages.po b/commafeed-client/src/locales/pl/messages.po index 04ac8ee3..8b0e114b 100644 --- a/commafeed-client/src/locales/pl/messages.po +++ b/commafeed-client/src/locales/pl/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "plik jest wymagany" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/pt/messages.po b/commafeed-client/src/locales/pt/messages.po index 13314678..31605372 100644 --- a/commafeed-client/src/locales/pt/messages.po +++ b/commafeed-client/src/locales/pt/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "o arquivo é obrigatório" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/ru/messages.po b/commafeed-client/src/locales/ru/messages.po index f401025e..46d19a57 100644 --- a/commafeed-client/src/locales/ru/messages.po +++ b/commafeed-client/src/locales/ru/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "требуется файл" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/sk/messages.po b/commafeed-client/src/locales/sk/messages.po index 9a4d9cad..43e3dddb 100644 --- a/commafeed-client/src/locales/sk/messages.po +++ b/commafeed-client/src/locales/sk/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/sv/messages.po b/commafeed-client/src/locales/sv/messages.po index f968f8bb..b8c95cad 100644 --- a/commafeed-client/src/locales/sv/messages.po +++ b/commafeed-client/src/locales/sv/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "fil krävs" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/tr/messages.po b/commafeed-client/src/locales/tr/messages.po index 07a9727a..40d9daa0 100644 --- a/commafeed-client/src/locales/tr/messages.po +++ b/commafeed-client/src/locales/tr/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "dosya gerekli" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/locales/zh/messages.po b/commafeed-client/src/locales/zh/messages.po index 7866606b..be09c54d 100644 --- a/commafeed-client/src/locales/zh/messages.po +++ b/commafeed-client/src/locales/zh/messages.po @@ -795,3 +795,7 @@ msgstr "" #: src/components/content/add/ImportOpml.tsx msgid "file is required" msgstr "文件是必需的" + +#: src/components/content/add/CategorySelect.tsx +msgid "{0} (in {1})" +msgstr "" diff --git a/commafeed-client/src/pages/app/CategoryDetailsPage.tsx b/commafeed-client/src/pages/app/CategoryDetailsPage.tsx index 86904f8a..6bcfad0b 100644 --- a/commafeed-client/src/pages/app/CategoryDetailsPage.tsx +++ b/commafeed-client/src/pages/app/CategoryDetailsPage.tsx @@ -109,7 +109,12 @@ export function CategoryDetailsPage() { {editable && ( <> - + )} diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/model/Category.java b/commafeed-server/src/main/java/com/commafeed/frontend/model/Category.java index e3115f22..1003d7bc 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/model/Category.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/model/Category.java @@ -19,6 +19,9 @@ public class Category implements Serializable { @ApiModelProperty(value = "parent category id") private String parentId; + @ApiModelProperty(value = "parent category name") + private String parentName; + @ApiModelProperty(value = "category id", required = true) private String name; diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java index be041ac1..4e771536 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java @@ -454,17 +454,13 @@ public class CategoryREST { child.setPosition(c.getPosition()); if (c.getParent() != null && c.getParent().getId() != null) { child.setParentId(String.valueOf(c.getParent().getId())); + child.setParentName(c.getParent().getName()); } child.setExpanded(!c.isCollapsed()); category.getChildren().add(child); } } - Collections.sort(category.getChildren(), new Comparator() { - @Override - public int compare(Category o1, Category o2) { - return ObjectUtils.compare(o1.getPosition(), o2.getPosition()); - } - }); + Collections.sort(category.getChildren(), (o1, o2) -> ObjectUtils.compare(o1.getPosition(), o2.getPosition())); for (FeedSubscription subscription : subscriptions) { if (id == null && subscription.getCategory() == null @@ -474,12 +470,8 @@ public class CategoryREST { category.getFeeds().add(sub); } } - Collections.sort(category.getFeeds(), new Comparator() { - @Override - public int compare(Subscription o1, Subscription o2) { - return ObjectUtils.compare(o1.getPosition(), o2.getPosition()); - } - }); + Collections.sort(category.getFeeds(), (o1, o2) -> ObjectUtils.compare(o1.getPosition(), o2.getPosition())); + return category; }