remove sorting alphabetically because of poor performances (title is of type 'text' and cannot be indexed)

This commit is contained in:
Athou
2021-01-30 23:02:43 +01:00
parent b45219a595
commit eec6f7d168
34 changed files with 18 additions and 100 deletions

View File

@@ -41,7 +41,6 @@
"refresh" : "إعادة انعاش", "refresh" : "إعادة انعاش",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "الترتيب حسب التاريخ تصاعدي / تنازلي", "sort_by_asc_desc" : "الترتيب حسب التاريخ تصاعدي / تنازلي",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "العناوين فقط", "titles_only" : "العناوين فقط",
"expanded_view" : "عرض موسع", "expanded_view" : "عرض موسع",
"mark_all_as_read" : "اعتبر الكل مقروء", "mark_all_as_read" : "اعتبر الكل مقروء",

View File

@@ -41,7 +41,6 @@
"refresh" : "Actualitzar", "refresh" : "Actualitzar",
"refresh_all" : "Força l'actualització de tots els canals", "refresh_all" : "Força l'actualització de tots els canals",
"sort_by_asc_desc" : "Ordenar per data asc/desc", "sort_by_asc_desc" : "Ordenar per data asc/desc",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Només títols", "titles_only" : "Només títols",
"expanded_view" : "Vista ampliada", "expanded_view" : "Vista ampliada",
"mark_all_as_read" : "Marcar tots llegits", "mark_all_as_read" : "Marcar tots llegits",

View File

@@ -41,7 +41,6 @@
"refresh " : " Obnovit", "refresh " : " Obnovit",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc " : " Seřadit podle nejnovějšího/nejstaršího", "sort_by_asc_desc " : " Seřadit podle nejnovějšího/nejstaršího",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only " : " Zobrazit jenom titulky", "titles_only " : " Zobrazit jenom titulky",
"expanded_view " : " Rozšířený náhled", "expanded_view " : " Rozšířený náhled",
"mark_all_as_read " : " Označit vše jako přečtené", "mark_all_as_read " : " Označit vše jako přečtené",

View File

@@ -41,7 +41,6 @@
"refresh" : "Adnewyddu", "refresh" : "Adnewyddu",
"refresh_all" : "Gorfodi ail-lwytho pob ffrwd", "refresh_all" : "Gorfodi ail-lwytho pob ffrwd",
"sort_by_asc_desc" : "Trefnu yn ôl dyddiad", "sort_by_asc_desc" : "Trefnu yn ôl dyddiad",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Teitlau yn unig", "titles_only" : "Teitlau yn unig",
"expanded_view" : "Golwg estynedig", "expanded_view" : "Golwg estynedig",
"mark_all_as_read" : "Nodi'r cyfan fel wedi ei ddarllen", "mark_all_as_read" : "Nodi'r cyfan fel wedi ei ddarllen",

View File

@@ -41,7 +41,6 @@
"refresh" : "Opdater", "refresh" : "Opdater",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorter efter dato ny/gammel", "sort_by_asc_desc" : "Sorter efter dato ny/gammel",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Kun titler", "titles_only" : "Kun titler",
"expanded_view" : "Udvidet visning", "expanded_view" : "Udvidet visning",
"mark_all_as_read" : "Marker alle som læst", "mark_all_as_read" : "Marker alle som læst",

View File

@@ -41,7 +41,6 @@
"refresh" : "Aktualisieren", "refresh" : "Aktualisieren",
"refresh_all" : "Erzwinge Aktualisierung aller Feeds", "refresh_all" : "Erzwinge Aktualisierung aller Feeds",
"sort_by_asc_desc" : "Nach Datum sortieren (auf-/absteigend)", "sort_by_asc_desc" : "Nach Datum sortieren (auf-/absteigend)",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Nur Überschriften", "titles_only" : "Nur Überschriften",
"expanded_view" : "Ausgedehnte Ansicht", "expanded_view" : "Ausgedehnte Ansicht",
"mark_all_as_read" : "Alle Artikel als gelesen markieren", "mark_all_as_read" : "Alle Artikel als gelesen markieren",

View File

@@ -41,7 +41,6 @@
"refresh" : "Refresh", "refresh" : "Refresh",
"refresh_all" : "Force refresh all my feeds", "refresh_all" : "Force refresh all my feeds",
"sort_by_asc_desc" : "Sort by date asc/desc", "sort_by_asc_desc" : "Sort by date asc/desc",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Titles only", "titles_only" : "Titles only",
"expanded_view" : "Expanded view", "expanded_view" : "Expanded view",
"mark_all_as_read" : "Mark all as read", "mark_all_as_read" : "Mark all as read",

View File

@@ -43,7 +43,6 @@
"refresh" : "Actualizar", "refresh" : "Actualizar",
"refresh_all" : "Forzar la actualización de todos mis canales.", "refresh_all" : "Forzar la actualización de todos mis canales.",
"sort_by_asc_desc" : "Ordenar por fecha asc/desc.", "sort_by_asc_desc" : "Ordenar por fecha asc/desc.",
"sort_by_abc_zyx" : "Ordenar alfabéticamente",
"titles_only" : "Sólo títulos", "titles_only" : "Sólo títulos",
"expanded_view" : "Vista expandida", "expanded_view" : "Vista expandida",
"mark_all_as_read" : "Marcar todos como leído", "mark_all_as_read" : "Marcar todos como leído",

View File

@@ -41,7 +41,6 @@
"refresh" : "تازه‌سازی", "refresh" : "تازه‌سازی",
"refresh_all" : "مجبورکردن تازه‌سازی همهٔ خوراک‌ها", "refresh_all" : "مجبورکردن تازه‌سازی همهٔ خوراک‌ها",
"sort_by_asc_desc" : "مرتب‌کردن بر اساس تاریخ به‌صورت صعودی/نزولی", "sort_by_asc_desc" : "مرتب‌کردن بر اساس تاریخ به‌صورت صعودی/نزولی",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "فقط عنوان‌ها", "titles_only" : "فقط عنوان‌ها",
"expanded_view" : "نمای گسترش‌یافته", "expanded_view" : "نمای گسترش‌یافته",
"mark_all_as_read" : "علامت‌گذاری تمامی مطالب به‌عنوان خوانده‌شده", "mark_all_as_read" : "علامت‌گذاری تمامی مطالب به‌عنوان خوانده‌شده",

View File

@@ -41,7 +41,6 @@
"refresh" : "Päivitä", "refresh" : "Päivitä",
"refresh_all" : "Pakota kaikkien syötteiden päivitys", "refresh_all" : "Pakota kaikkien syötteiden päivitys",
"sort_by_asc_desc" : "Järjestä päivämäärän mukaan nousevasti/laskevasti", "sort_by_asc_desc" : "Järjestä päivämäärän mukaan nousevasti/laskevasti",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Näytä vain otsikot", "titles_only" : "Näytä vain otsikot",
"expanded_view" : "Laajennettu näkymä", "expanded_view" : "Laajennettu näkymä",
"mark_all_as_read" : "Merkitse kaikki luetuiksi", "mark_all_as_read" : "Merkitse kaikki luetuiksi",

View File

@@ -41,7 +41,6 @@
"refresh" : "Rafraîchir", "refresh" : "Rafraîchir",
"refresh_all" : "Rafraîchir tous les flux", "refresh_all" : "Rafraîchir tous les flux",
"sort_by_asc_desc" : "Trier par date croissante/décroissante", "sort_by_asc_desc" : "Trier par date croissante/décroissante",
"sort_by_abc_zyx" : "Trier par ordre alphabétique",
"titles_only" : "Titres uniquement", "titles_only" : "Titres uniquement",
"expanded_view" : "Vue étendue", "expanded_view" : "Vue étendue",
"mark_all_as_read" : "Tout marquer comme lu", "mark_all_as_read" : "Tout marquer comme lu",

View File

@@ -41,7 +41,6 @@
"refresh" : "Actualizar", "refresh" : "Actualizar",
"refresh_all" : "Forzar a actualización de todas as fontes ", "refresh_all" : "Forzar a actualización de todas as fontes ",
"sort_by_asc_desc" : "Ordenar por data asc/desc", "sort_by_asc_desc" : "Ordenar por data asc/desc",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Só títulos", "titles_only" : "Só títulos",
"expanded_view" : "Vista expandida", "expanded_view" : "Vista expandida",
"mark_all_as_read" : "Marcar todos como lidos", "mark_all_as_read" : "Marcar todos como lidos",

View File

@@ -41,7 +41,6 @@
"refresh" : "واج‌أری", "refresh" : "واج‌أری",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "تاریخˇ سر دچئن", "sort_by_asc_desc" : "تاریخˇ سر دچئن",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "خالی تیتران", "titles_only" : "خالی تیتران",
"expanded_view" : "واشاده نما", "expanded_view" : "واشاده نما",
"mark_all_as_read" : "همه‌ته مطالبه چاکون بخانده", "mark_all_as_read" : "همه‌ته مطالبه چاکون بخانده",

View File

@@ -41,7 +41,6 @@
"refresh" : "Frissítés", "refresh" : "Frissítés",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Rendezés időrend szerint", "sort_by_asc_desc" : "Rendezés időrend szerint",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Csak cím", "titles_only" : "Csak cím",
"expanded_view" : "Részletes nézet", "expanded_view" : "Részletes nézet",
"mark_all_as_read" : "Az összes megjelölése olvasottként", "mark_all_as_read" : "Az összes megjelölése olvasottként",

View File

@@ -41,7 +41,6 @@
"refresh" : "Segarkan", "refresh" : "Segarkan",
"refresh_all" : "Memaksa menyegarkan semua umpan saya", "refresh_all" : "Memaksa menyegarkan semua umpan saya",
"sort_by_asc_desc" : "Urutkan menurut tanggal asc/desc", "sort_by_asc_desc" : "Urutkan menurut tanggal asc/desc",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Hanya Judul", "titles_only" : "Hanya Judul",
"expanded_view" : "Penglihatan diperluas", "expanded_view" : "Penglihatan diperluas",
"mark_all_as_read" : "Tandai semua sebagai telah dibaca", "mark_all_as_read" : "Tandai semua sebagai telah dibaca",

View File

@@ -41,7 +41,6 @@
"refresh" : "Aggiorna", "refresh" : "Aggiorna",
"refresh_all" : "Forza l'aggiornamento di tutti i feed", "refresh_all" : "Forza l'aggiornamento di tutti i feed",
"sort_by_asc_desc" : "Ordina per data crescente/decrescente", "sort_by_asc_desc" : "Ordina per data crescente/decrescente",
"sort_by_abc_zyx" : "Ordina alfabeticamente",
"titles_only" : "Solo i titoli", "titles_only" : "Solo i titoli",
"expanded_view" : "Espandi", "expanded_view" : "Espandi",
"mark_all_as_read" : "Segna tutti come già letti", "mark_all_as_read" : "Segna tutti come già letti",

View File

@@ -41,7 +41,6 @@
"refresh" : "更新", "refresh" : "更新",
"refresh_all" : "全てのフィードを更新", "refresh_all" : "全てのフィードを更新",
"sort_by_asc_desc" : "日時でソート", "sort_by_asc_desc" : "日時でソート",
"sort_by_abc_zyx" : "名前でソート",
"titles_only" : "タイトルのみ", "titles_only" : "タイトルのみ",
"expanded_view" : "拡張ビュー", "expanded_view" : "拡張ビュー",
"mark_all_as_read" : "全て既読にする", "mark_all_as_read" : "全て既読にする",

View File

@@ -41,7 +41,6 @@
"refresh" : "새로고침", "refresh" : "새로고침",
"refresh_all" : "모든 피드를 강제로 새로고침", "refresh_all" : "모든 피드를 강제로 새로고침",
"sort_by_asc_desc" : "날짜별 오름차/내림차순 정렬", "sort_by_asc_desc" : "날짜별 오름차/내림차순 정렬",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "제목만 표시하기", "titles_only" : "제목만 표시하기",
"expanded_view" : "Expanded View", "expanded_view" : "Expanded View",
"mark_all_as_read" : "읽음으로 표시", "mark_all_as_read" : "읽음으로 표시",

View File

@@ -41,7 +41,6 @@
"refresh" : "Refresh", "refresh" : "Refresh",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Aturkan mengikut tarikh (baru/lama)", "sort_by_asc_desc" : "Aturkan mengikut tarikh (baru/lama)",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Tajuk sahaja", "titles_only" : "Tajuk sahaja",
"expanded_view" : "Wide view", "expanded_view" : "Wide view",
"mark_all_as_read" : "Tanda kesemuanya telah dibaca", "mark_all_as_read" : "Tanda kesemuanya telah dibaca",

View File

@@ -41,7 +41,6 @@
"refresh" : "Oppdater", "refresh" : "Oppdater",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorter etter dato ny/gammel", "sort_by_asc_desc" : "Sorter etter dato ny/gammel",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Kun titler", "titles_only" : "Kun titler",
"expanded_view" : "Utvidet visning", "expanded_view" : "Utvidet visning",
"mark_all_as_read" : "Merk alle som lest", "mark_all_as_read" : "Merk alle som lest",

View File

@@ -41,7 +41,6 @@
"refresh" : "Vernieuwen", "refresh" : "Vernieuwen",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorteer op datum opl/afl", "sort_by_asc_desc" : "Sorteer op datum opl/afl",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Alleen titels", "titles_only" : "Alleen titels",
"expanded_view" : "Uitgebreide weergave", "expanded_view" : "Uitgebreide weergave",
"mark_all_as_read" : "Markeer alles als gelezen", "mark_all_as_read" : "Markeer alles als gelezen",

View File

@@ -41,7 +41,6 @@
"refresh" : "Oppdater", "refresh" : "Oppdater",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorter etter dato ny/gamal", "sort_by_asc_desc" : "Sorter etter dato ny/gamal",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Berre titlar", "titles_only" : "Berre titlar",
"expanded_view" : "Utvida visning", "expanded_view" : "Utvida visning",
"mark_all_as_read" : "Merk alle som lesne", "mark_all_as_read" : "Merk alle som lesne",

View File

@@ -41,7 +41,6 @@
"refresh" : "Odswież", "refresh" : "Odswież",
"refresh_all" : "Odśwież teraz wszystkie kanały ", "refresh_all" : "Odśwież teraz wszystkie kanały ",
"sort_by_asc_desc" : "Sortuj od najnowszego/najstarszego", "sort_by_asc_desc" : "Sortuj od najnowszego/najstarszego",
"sort_by_abc_zyx" : "Sortuj alfabetycznie",
"titles_only" : "Widok listy", "titles_only" : "Widok listy",
"expanded_view" : "Widok rozwinięty", "expanded_view" : "Widok rozwinięty",
"mark_all_as_read" : "Oznacz wszystko jako przeczytane", "mark_all_as_read" : "Oznacz wszystko jako przeczytane",

View File

@@ -41,7 +41,6 @@
"refresh" : "Atualizar", "refresh" : "Atualizar",
"refresh_all" : "Forçar atualização de todos os meus feeds", "refresh_all" : "Forçar atualização de todos os meus feeds",
"sort_by_asc_desc" : "Ordenar por data cresc/decres", "sort_by_asc_desc" : "Ordenar por data cresc/decres",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Somente títulos", "titles_only" : "Somente títulos",
"expanded_view" : "Modo Expandido", "expanded_view" : "Modo Expandido",
"mark_all_as_read" : "Marcar tudo como lido", "mark_all_as_read" : "Marcar tudo como lido",

View File

@@ -41,7 +41,6 @@
"refresh" : "Обновить", "refresh" : "Обновить",
"refresh_all" : "Обновить все подписки вручную", "refresh_all" : "Обновить все подписки вручную",
"sort_by_asc_desc" : "Сначала новые/старые", "sort_by_asc_desc" : "Сначала новые/старые",
"sort_by_abc_zyx" : "По алфавиту",
"titles_only" : "Только заголовки", "titles_only" : "Только заголовки",
"expanded_view" : "Развёрнутый вид", "expanded_view" : "Развёрнутый вид",
"mark_all_as_read" : "Отметить всё как прочитанное", "mark_all_as_read" : "Отметить всё как прочитанное",

View File

@@ -41,7 +41,6 @@
"refresh" : "Obnoviť", "refresh" : "Obnoviť",
"refresh_all" : "Vynútené obnovenie všetkých položiek", "refresh_all" : "Vynútené obnovenie všetkých položiek",
"sort_by_asc_desc" : "Zoradiť podľa najnovšieho/najstaršieho", "sort_by_asc_desc" : "Zoradiť podľa najnovšieho/najstaršieho",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Náhľad titulkov", "titles_only" : "Náhľad titulkov",
"expanded_view" : "Rozšírený náhľad", "expanded_view" : "Rozšírený náhľad",
"mark_all_as_read" : "Označiť všetky ako prečítané", "mark_all_as_read" : "Označiť všetky ako prečítané",

View File

@@ -41,7 +41,6 @@
"refresh" : "Uppdatera", "refresh" : "Uppdatera",
"refresh_all" : "Tvinga uppdatering av alla prenumerationer", "refresh_all" : "Tvinga uppdatering av alla prenumerationer",
"sort_by_asc_desc" : "Sortera efter datum stigande/fallande", "sort_by_asc_desc" : "Sortera efter datum stigande/fallande",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Endast titlar", "titles_only" : "Endast titlar",
"expanded_view" : "Expanderad vy", "expanded_view" : "Expanderad vy",
"mark_all_as_read" : "Markera alla som lästa", "mark_all_as_read" : "Markera alla som lästa",

View File

@@ -41,7 +41,6 @@
"refresh" : "Yenile", "refresh" : "Yenile",
"refresh_all" : "Tüm yayınları yenilemek için zorla", "refresh_all" : "Tüm yayınları yenilemek için zorla",
"sort_by_asc_desc" : "Tarihe göre sırala artan/azalan", "sort_by_asc_desc" : "Tarihe göre sırala artan/azalan",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Sadece başlıklar", "titles_only" : "Sadece başlıklar",
"expanded_view" : "Genişletilmiş görünüm", "expanded_view" : "Genişletilmiş görünüm",
"mark_all_as_read" : "Tümünü okundu işaretle", "mark_all_as_read" : "Tümünü okundu işaretle",

View File

@@ -41,7 +41,6 @@
"refresh" : "刷新", "refresh" : "刷新",
"refresh_all" : "刷新所有订阅", "refresh_all" : "刷新所有订阅",
"sort_by_asc_desc" : "按日期升序/降序排序", "sort_by_asc_desc" : "按日期升序/降序排序",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "仅显示标题", "titles_only" : "仅显示标题",
"expanded_view" : "显示内容", "expanded_view" : "显示内容",
"mark_all_as_read" : "标记所有为已读", "mark_all_as_read" : "标记所有为已读",

View File

@@ -529,10 +529,6 @@ module.controller('ToolbarCtrl', [
var settings = $scope.settingsService.settings; var settings = $scope.settingsService.settings;
settings.readingOrder = settings.readingOrder == 'desc' ? 'asc' : 'desc'; settings.readingOrder = settings.readingOrder == 'desc' ? 'asc' : 'desc';
}; };
$scope.toggleAbcOrder = function() {
var settings = $scope.settingsService.settings;
settings.readingOrder = settings.readingOrder == 'abc' ? 'zyx' : 'abc';
};
$scope.toAdmin = function() { $scope.toAdmin = function() {
$location.path('admin'); $location.path('admin');

View File

@@ -71,10 +71,6 @@
ng-class="{'active' : settingsService.settings.readingOrder == 'asc' || settingsService.settings.readingOrder == 'desc'}"> ng-class="{'active' : settingsService.settings.readingOrder == 'asc' || settingsService.settings.readingOrder == 'desc'}">
<i ng-class="{'icon-arrow-up' : settingsService.settings.readingOrder == 'asc', 'icon-arrow-down': settingsService.settings.readingOrder != 'asc'}"></i> <i ng-class="{'icon-arrow-up' : settingsService.settings.readingOrder == 'asc', 'icon-arrow-down': settingsService.settings.readingOrder != 'asc'}"></i>
</a> </a>
<button type="button" class="btn btn-default" ng-click="toggleAbcOrder()" title="{{ 'toolbar.sort_by_abc_zyx' | translate }}"
ng-class="{'active' : settingsService.settings.readingOrder == 'abc' || settingsService.settings.readingOrder == 'zyx'}">
<i ng-class="{'icon-sort-by-alphabet' : settingsService.settings.readingOrder != 'zyx', 'icon-sort-by-alphabet-alt': settingsService.settings.readingOrder == 'zyx'}"></i>
</button>
</div> </div>
<div class="btn-group" id="toolbar-read-view-settings"> <div class="btn-group" id="toolbar-read-view-settings">

View File

@@ -38,14 +38,14 @@ import com.querydsl.jpa.impl.JPAQuery;
@Singleton @Singleton
public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> { public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
private FeedEntryDAO feedEntryDAO; private final FeedEntryDAO feedEntryDAO;
private FeedEntryTagDAO feedEntryTagDAO; private final FeedEntryTagDAO feedEntryTagDAO;
private CommaFeedConfiguration config; private final CommaFeedConfiguration config;
private QFeedEntryStatus status = QFeedEntryStatus.feedEntryStatus; private final QFeedEntryStatus status = QFeedEntryStatus.feedEntryStatus;
private QFeedEntry entry = QFeedEntry.feedEntry; private final QFeedEntry entry = QFeedEntry.feedEntry;
private QFeedEntryContent content = QFeedEntryContent.feedEntryContent; private final QFeedEntryContent content = QFeedEntryContent.feedEntryContent;
private QFeedEntryTag entryTag = QFeedEntryTag.feedEntryTag; private final QFeedEntryTag entryTag = QFeedEntryTag.feedEntryTag;
@Inject @Inject
public FeedEntryStatusDAO(SessionFactory sessionFactory, FeedEntryDAO feedEntryDAO, FeedEntryTagDAO feedEntryTagDAO, public FeedEntryStatusDAO(SessionFactory sessionFactory, FeedEntryDAO feedEntryDAO, FeedEntryTagDAO feedEntryTagDAO,
@@ -68,18 +68,6 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
private static final Comparator<FeedEntryStatus> STATUS_COMPARATOR_ASC = Ordering.from(STATUS_COMPARATOR_DESC).reverse(); private static final Comparator<FeedEntryStatus> STATUS_COMPARATOR_ASC = Ordering.from(STATUS_COMPARATOR_DESC).reverse();
private static final Comparator<FeedEntryStatus> STATUS_COMPARATOR_ABC = new Comparator<FeedEntryStatus>() {
@Override
public int compare(FeedEntryStatus o1, FeedEntryStatus o2) {
CompareToBuilder builder = new CompareToBuilder();
builder.append(o1.getEntry().getContent().getTitle(), o2.getEntry().getContent().getTitle());
builder.append(o1.getId(), o2.getId());
return builder.toComparison();
}
};
private static final Comparator<FeedEntryStatus> STATUS_COMPARATOR_ZYX = Ordering.from(STATUS_COMPARATOR_ABC).reverse();
public FeedEntryStatus getStatus(User user, FeedSubscription sub, FeedEntry entry) { public FeedEntryStatus getStatus(User user, FeedSubscription sub, FeedEntry entry) {
List<FeedEntryStatus> statuses = query().selectFrom(status).where(status.entry.eq(entry), status.subscription.eq(sub)).fetch(); List<FeedEntryStatus> statuses = query().selectFrom(status).where(status.entry.eq(entry), status.subscription.eq(sub)).fetch();
FeedEntryStatus status = Iterables.getFirst(statuses, null); FeedEntryStatus status = Iterables.getFirst(statuses, null);
@@ -113,12 +101,8 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
if (order == ReadingOrder.asc) { if (order == ReadingOrder.asc) {
query.orderBy(status.entryUpdated.asc(), status.id.asc()); query.orderBy(status.entryUpdated.asc(), status.id.asc());
} else if (order == ReadingOrder.desc) { } else {
query.orderBy(status.entryUpdated.desc(), status.id.desc()); query.orderBy(status.entryUpdated.desc(), status.id.desc());
} else if (order == ReadingOrder.abc) {
query.orderBy(status.entry.content.title.asc(), status.id.desc());
} else { // order == ReadingOrder.xyz
query.orderBy(status.entry.content.title.desc(), status.id.desc());
} }
query.offset(offset).limit(limit); query.offset(offset).limit(limit);
@@ -178,36 +162,27 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
if (last != null) { if (last != null) {
if (order == ReadingOrder.desc) { if (order == ReadingOrder.desc) {
query.where(entry.updated.gt(last.getEntryUpdated())); query.where(entry.updated.gt(last.getEntryUpdated()));
} else if (order == ReadingOrder.asc) { } else {
query.where(entry.updated.lt(last.getEntryUpdated())); query.where(entry.updated.lt(last.getEntryUpdated()));
} else if (order == ReadingOrder.abc) {
query.join(entry.content, content);
query.where(content.title.lt(last.getEntry().getContent().getTitle()));
} else { // order == ReadingOrder.zyx
query.join(entry.content, content);
query.where(content.title.gt(last.getEntry().getContent().getTitle()));
} }
} else if (order != null && (order == ReadingOrder.abc || order == ReadingOrder.zyx)) {
query.join(entry.content, content);
} }
if (order != null) { if (order != null) {
if (order == ReadingOrder.asc) { if (order == ReadingOrder.asc) {
query.orderBy(entry.updated.asc(), entry.id.asc()); query.orderBy(entry.updated.asc(), entry.id.asc());
} else if (order == ReadingOrder.desc) { } else {
query.orderBy(entry.updated.desc(), entry.id.desc()); query.orderBy(entry.updated.desc(), entry.id.desc());
} else if (order == ReadingOrder.abc) {
query.orderBy(content.title.asc(), entry.id.asc());
} else { // order == ReadingOrder.zyx
query.orderBy(content.title.desc(), entry.id.desc());
} }
} }
if (offset > -1) { if (offset > -1) {
query.offset(offset); query.offset(offset);
} }
if (limit > -1) { if (limit > -1) {
query.limit(limit); query.limit(limit);
} }
setTimeout(query, config.getApplicationSettings().getQueryTimeout()); setTimeout(query, config.getApplicationSettings().getQueryTimeout());
return query; return query;
} }
@@ -217,18 +192,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
boolean onlyIds, String tag) { boolean onlyIds, String tag) {
int capacity = offset + limit; int capacity = offset + limit;
Comparator<FeedEntryStatus> comparator; Comparator<FeedEntryStatus> comparator = order == ReadingOrder.desc ? STATUS_COMPARATOR_DESC : STATUS_COMPARATOR_ASC;
if (order == ReadingOrder.desc) {
comparator = STATUS_COMPARATOR_DESC;
} else if (order == ReadingOrder.abc) {
comparator = STATUS_COMPARATOR_ABC;
} else if (order == ReadingOrder.zyx) {
comparator = STATUS_COMPARATOR_ZYX;
} else {
comparator = STATUS_COMPARATOR_ASC;
}
FixedSizeSortedSet<FeedEntryStatus> set = new FixedSizeSortedSet<FeedEntryStatus>(capacity, comparator); FixedSizeSortedSet<FeedEntryStatus> set = new FixedSizeSortedSet<>(capacity, comparator);
for (FeedSubscription sub : subs) { for (FeedSubscription sub : subs) {
FeedEntryStatus last = (order != null && set.isFull()) ? set.last() : null; FeedEntryStatus last = (order != null && set.isFull()) ? set.last() : null;
JPAQuery<FeedEntry> query = buildQuery(user, sub, unreadOnly, keywords, newerThan, -1, capacity, order, last, tag); JPAQuery<FeedEntry> query = buildQuery(user, sub, unreadOnly, keywords, newerThan, -1, capacity, order, last, tag);

View File

@@ -27,7 +27,7 @@ public class UserSettings extends AbstractModel {
} }
public enum ReadingOrder { public enum ReadingOrder {
asc, desc, abc, zyx asc, desc
} }
public enum ViewMode { public enum ViewMode {

View File

@@ -32,7 +32,7 @@ import com.google.common.collect.Iterables;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@SuppressWarnings("serial") @SuppressWarnings("serial")
@RequiredArgsConstructor(onConstructor = @__({ @Inject }) ) @RequiredArgsConstructor(onConstructor = @__({ @Inject }))
@Singleton @Singleton
public class NextUnreadServlet extends HttpServlet { public class NextUnreadServlet extends HttpServlet {
@@ -61,18 +61,7 @@ public class NextUnreadServlet extends HttpServlet {
return; return;
} }
final ReadingOrder order = (StringUtils.equals(orderParam, "asc") ? final ReadingOrder order = StringUtils.equals(orderParam, "asc") ? ReadingOrder.asc : ReadingOrder.desc;
ReadingOrder.asc :
(
StringUtils.equals(orderParam, "desc") ?
ReadingOrder.desc :
(
StringUtils.equals(orderParam, "abc") ?
ReadingOrder.abc :
(ReadingOrder.zyx)
)
)
);
FeedEntryStatus status = UnitOfWork.call(sessionFactory, () -> { FeedEntryStatus status = UnitOfWork.call(sessionFactory, () -> {
FeedEntryStatus s = null; FeedEntryStatus s = null;