forked from Archives/Athou_commafeed
Merge branch 'Hubcapp-master'
This commit is contained in:
@@ -41,6 +41,7 @@
|
||||
"refresh" : "إعادة انعاش",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "الترتيب حسب التاريخ تصاعدي / تنازلي",
|
||||
"sort_by_abc_zyx" : "Sort alphabetically",
|
||||
"titles_only" : "العناوين فقط",
|
||||
"expanded_view" : "عرض موسع",
|
||||
"mark_all_as_read" : "اعتبر الكل مقروء",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Actualitzar",
|
||||
"refresh_all" : "Força l'actualització de tots els canals",
|
||||
"sort_by_asc_desc" : "Ordenar per data asc/desc",
|
||||
"sort_by_abc_zyx" : "Sort alphabetically",
|
||||
"titles_only" : "Només títols",
|
||||
"expanded_view" : "Vista ampliada",
|
||||
"mark_all_as_read" : "Marcar tots llegits",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh " : " Obnovit",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc " : " Seřadit podle nejnovějšího/nejstaršího",
|
||||
"sort_by_abc_zyx" : "Sort alphabetically",
|
||||
"titles_only " : " Zobrazit jenom titulky",
|
||||
"expanded_view " : " Rozšířený náhled",
|
||||
"mark_all_as_read " : " Označit vše jako přečtené",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Adnewyddu",
|
||||
"refresh_all" : "Gorfodi ail-lwytho pob ffrwd",
|
||||
"sort_by_asc_desc" : "Trefnu yn ôl dyddiad",
|
||||
"sort_by_abc_zyx" : "Sort alphabetically",
|
||||
"titles_only" : "Teitlau yn unig",
|
||||
"expanded_view" : "Golwg estynedig",
|
||||
"mark_all_as_read" : "Nodi'r cyfan fel wedi ei ddarllen",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Opdater",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorter efter dato ny/gammel",
|
||||
"sort_by_abc_zyx" : "Sort alphabetically",
|
||||
"titles_only" : "Kun titler",
|
||||
"expanded_view" : "Udvidet visning",
|
||||
"mark_all_as_read" : "Marker alle som læst",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Aktualisieren",
|
||||
"refresh_all" : "Erzwinge Aktualisierung aller Feeds",
|
||||
"sort_by_asc_desc" : "Nach Datum sortieren (auf-/absteigend)",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Nur Überschriften",
|
||||
"expanded_view" : "Ausgedehnte Ansicht",
|
||||
"mark_all_as_read" : "Alle Artikel als gelesen markieren",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Refresh",
|
||||
"refresh_all" : "Force refresh all my feeds",
|
||||
"sort_by_asc_desc" : "Sort by date asc/desc",
|
||||
"sort_by_abc_zyx" : "Sort alphabetically",
|
||||
"titles_only" : "Titles only",
|
||||
"expanded_view" : "Expanded view",
|
||||
"mark_all_as_read" : "Mark all as read",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"refresh" : "Atualizar",
|
||||
"refresh_all" : "Forzar la actualización de todos mis canales.",
|
||||
"sort_by_asc_desc" : "Ordenar por fecha asc/desc.",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Sólo títulos",
|
||||
"expanded_view" : "Vista expandida",
|
||||
"mark_all_as_read" : "Marcar todos como leído",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "تازهسازی",
|
||||
"refresh_all" : "مجبورکردن تازهسازی همهٔ خوراکها",
|
||||
"sort_by_asc_desc" : "مرتبکردن بر اساس تاریخ بهصورت صعودی/نزولی",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "فقط عنوانها",
|
||||
"expanded_view" : "نمای گسترشیافته",
|
||||
"mark_all_as_read" : "علامتگذاری تمامی مطالب بهعنوان خواندهشده",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Päivitä",
|
||||
"refresh_all" : "Pakota kaikkien syötteiden päivitys",
|
||||
"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",
|
||||
"expanded_view" : "Laajennettu näkymä",
|
||||
"mark_all_as_read" : "Merkitse kaikki luetuiksi",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Rafraîchir",
|
||||
"refresh_all" : "Rafraîchir tous les flux",
|
||||
"sort_by_asc_desc" : "Trier par date croissante/décroissante",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Titres uniquement",
|
||||
"expanded_view" : "Vue étendue",
|
||||
"mark_all_as_read" : "Tout marquer comme lu",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Actualizar",
|
||||
"refresh_all" : "Forzar a actualización de todas as fontes ",
|
||||
"sort_by_asc_desc" : "Ordenar por data asc/desc",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Só títulos",
|
||||
"expanded_view" : "Vista expandida",
|
||||
"mark_all_as_read" : "Marcar todos como lidos",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "واجأری",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "تاریخˇ سر دچئن",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "خالی تیتران",
|
||||
"expanded_view" : "واشاده نما",
|
||||
"mark_all_as_read" : "همهته مطالبه چاکون بخانده",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Frissítés",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Rendezés időrend szerint",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Csak cím",
|
||||
"expanded_view" : "Részletes nézet",
|
||||
"mark_all_as_read" : "Az összes megjelölése olvasottként",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Segarkan",
|
||||
"refresh_all" : "Memaksa menyegarkan semua umpan saya",
|
||||
"sort_by_asc_desc" : "Urutkan menurut tanggal asc/desc",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Hanya Judul",
|
||||
"expanded_view" : "Penglihatan diperluas",
|
||||
"mark_all_as_read" : "Tandai semua sebagai telah dibaca",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Aggiorna",
|
||||
"refresh_all" : "Forza l'aggiornamento di tutti i feed",
|
||||
"sort_by_asc_desc" : "Ordina per data crescente/decrescente",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Solo i titoli",
|
||||
"expanded_view" : "Espandi",
|
||||
"mark_all_as_read" : "Segna tutti come già letti",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "更新",
|
||||
"refresh_all" : "全てのフィードを更新",
|
||||
"sort_by_asc_desc" : "昇順/降順にソート",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "タイトルのみ",
|
||||
"expanded_view" : "拡張ビュー",
|
||||
"mark_all_as_read" : "全て既読にする",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "새로고침",
|
||||
"refresh_all" : "모든 피드를 강제로 새로고침",
|
||||
"sort_by_asc_desc" : "날짜별 오름차/내림차순 정렬",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "제목만 표시하기",
|
||||
"expanded_view" : "Expanded View",
|
||||
"mark_all_as_read" : "읽음으로 표시",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Refresh",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Aturkan mengikut tarikh (baru/lama)",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Tajuk sahaja",
|
||||
"expanded_view" : "Wide view",
|
||||
"mark_all_as_read" : "Tanda kesemuanya telah dibaca",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Oppdater",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorter etter dato ny/gammel",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Kun titler",
|
||||
"expanded_view" : "Utvidet visning",
|
||||
"mark_all_as_read" : "Merk alle som lest",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Vernieuwen",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorteer op datum opl/afl",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Alleen titels",
|
||||
"expanded_view" : "Uitgebreide weergave",
|
||||
"mark_all_as_read" : "Markeer alles als gelezen",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Oppdater",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorter etter dato ny/gamal",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Berre titlar",
|
||||
"expanded_view" : "Utvida visning",
|
||||
"mark_all_as_read" : "Merk alle som lesne",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Odswież",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sortuj od najnowszego/najstarszego",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Widok listy",
|
||||
"expanded_view" : "Widok rozwinięty",
|
||||
"mark_all_as_read" : "Oznacz wszystko jako przeczytane",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Atualizar",
|
||||
"refresh_all" : "Forçar atualização de todos os meus feeds",
|
||||
"sort_by_asc_desc" : "Ordenar por data cresc/decres",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Somente títulos",
|
||||
"expanded_view" : "Modo Expandido",
|
||||
"mark_all_as_read" : "Marcar tudo como lido",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Обновить",
|
||||
"refresh_all" : "Обновить все подписки вручную",
|
||||
"sort_by_asc_desc" : "Сначала новые/старые",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Только заголовки",
|
||||
"expanded_view" : "Развёрнутый вид",
|
||||
"mark_all_as_read" : "Отметить всё как прочитанное",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Obnoviť",
|
||||
"refresh_all" : "Vynútené obnovenie všetkých položiek",
|
||||
"sort_by_asc_desc" : "Zoradiť podľa najnovšieho/najstaršieho",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Náhľad titulkov",
|
||||
"expanded_view" : "Rozšírený náhľad",
|
||||
"mark_all_as_read" : "Označiť všetky ako prečítané",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Uppdatera",
|
||||
"refresh_all" : "Tvinga uppdatering av alla prenumerationer",
|
||||
"sort_by_asc_desc" : "Sortera efter datum stigande/fallande",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Endast titlar",
|
||||
"expanded_view" : "Expanderad vy",
|
||||
"mark_all_as_read" : "Markera alla som lästa",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "Yenile",
|
||||
"refresh_all" : "Tüm yayınları yenilemek için zorla",
|
||||
"sort_by_asc_desc" : "Tarihe göre sırala artan/azalan",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "Sadece başlıklar",
|
||||
"expanded_view" : "Genişletilmiş görünüm",
|
||||
"mark_all_as_read" : "Tümünü okundu işaretle",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"refresh" : "刷新",
|
||||
"refresh_all" : "刷新所有订阅",
|
||||
"sort_by_asc_desc" : "按日期升序/降序排序",
|
||||
"sort_by_abc_zyx" : "Sort Alphabetically",
|
||||
"titles_only" : "仅显示标题",
|
||||
"expanded_view" : "显示内容",
|
||||
"mark_all_as_read" : "标记所有为已读",
|
||||
|
||||
@@ -531,7 +531,11 @@ module.controller('ToolbarCtrl', [
|
||||
|
||||
$scope.toggleOrder = function() {
|
||||
var settings = $scope.settingsService.settings;
|
||||
settings.readingOrder = settings.readingOrder == 'asc' ? 'desc' : 'asc';
|
||||
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() {
|
||||
|
||||
@@ -67,10 +67,14 @@
|
||||
</div>
|
||||
|
||||
<div class="btn-group" id="toolbar-read-order">
|
||||
<a type="button" class="btn btn-default" ng-click="toggleOrder()" title="{{ 'toolbar.sort_by_asc_desc' | translate }}">
|
||||
<a type="button" class="btn btn-default" ng-click="toggleOrder()" title="{{ 'toolbar.sort_by_asc_desc' | translate }}"
|
||||
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 == 'desc'}"></i>
|
||||
ng-class="{'icon-arrow-up' : settingsService.settings.readingOrder == 'asc', 'icon-arrow-down': settingsService.settings.readingOrder != 'asc'}"></i>
|
||||
</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'}">{{ ((settingsService.settings.readingOrder == 'abc' || settingsService.settings.readingOrder == 'zyx') ? settingsService.settings.readingOrder.toUpperCase() : "ABC") }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="btn-group" id="toolbar-read-view-settings">
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.commafeed.backend.FixedSizeSortedSet;
|
||||
import com.commafeed.backend.feed.FeedEntryKeyword;
|
||||
import com.commafeed.backend.feed.FeedEntryKeyword.Mode;
|
||||
import com.commafeed.backend.model.FeedEntry;
|
||||
import com.commafeed.backend.model.FeedEntryContent;
|
||||
import com.commafeed.backend.model.FeedEntryStatus;
|
||||
import com.commafeed.backend.model.FeedEntryTag;
|
||||
import com.commafeed.backend.model.FeedSubscription;
|
||||
@@ -66,6 +67,19 @@ 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_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) {
|
||||
List<FeedEntryStatus> statuses = query().selectFrom(status).where(status.entry.eq(entry), status.subscription.eq(sub)).fetch();
|
||||
@@ -100,8 +114,12 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
|
||||
|
||||
if (order == ReadingOrder.asc) {
|
||||
query.orderBy(status.entryUpdated.asc(), status.id.asc());
|
||||
} else {
|
||||
} else if (order == ReadingOrder.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);
|
||||
@@ -119,7 +137,7 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
|
||||
}
|
||||
|
||||
private HibernateQuery<FeedEntry> buildQuery(User user, FeedSubscription sub, boolean unreadOnly, List<FeedEntryKeyword> keywords,
|
||||
Date newerThan, int offset, int limit, ReadingOrder order, Date last, String tag) {
|
||||
Date newerThan, int offset, int limit, ReadingOrder order, FeedEntryStatus last, String tag) {
|
||||
|
||||
HibernateQuery<FeedEntry> query = query().selectFrom(entry).where(entry.feed.eq(sub.getFeed()));
|
||||
|
||||
@@ -163,17 +181,29 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
|
||||
|
||||
if (last != null) {
|
||||
if (order == ReadingOrder.desc) {
|
||||
query.where(entry.updated.gt(last));
|
||||
} else {
|
||||
query.where(entry.updated.lt(last));
|
||||
query.where(entry.updated.gt(last.getEntryUpdated()));
|
||||
} else if (order == ReadingOrder.asc) {
|
||||
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 == ReadingOrder.asc) {
|
||||
query.orderBy(entry.updated.asc(), entry.id.asc());
|
||||
} else {
|
||||
} else if (order == ReadingOrder.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) {
|
||||
@@ -193,20 +223,36 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
|
||||
List<FeedEntryKeyword> keywords, Date newerThan, int offset, int limit, ReadingOrder order, boolean includeContent,
|
||||
boolean onlyIds, String tag) {
|
||||
int capacity = offset + limit;
|
||||
Comparator<FeedEntryStatus> comparator = order == ReadingOrder.desc ? STATUS_COMPARATOR_DESC : STATUS_COMPARATOR_ASC;
|
||||
|
||||
Comparator<FeedEntryStatus> comparator;
|
||||
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);
|
||||
for (FeedSubscription sub : subs) {
|
||||
Date last = (order != null && set.isFull()) ? set.last().getEntryUpdated() : null;
|
||||
FeedEntryStatus last = (order != null && set.isFull()) ? set.last() : null;
|
||||
HibernateQuery<FeedEntry> query = buildQuery(user, sub, unreadOnly, keywords, newerThan, -1, capacity, order, last, tag);
|
||||
List<Tuple> tuples = query.select(entry.id, entry.updated, status.id).fetch();
|
||||
List<Tuple> tuples = query.select(entry.id, entry.updated, status.id, entry.content.title).fetch();
|
||||
|
||||
for (Tuple tuple : tuples) {
|
||||
Long id = tuple.get(entry.id);
|
||||
Date updated = tuple.get(entry.updated);
|
||||
Long statusId = tuple.get(status.id);
|
||||
|
||||
FeedEntryContent content = new FeedEntryContent();
|
||||
content.setTitle(tuple.get(entry.content.title));
|
||||
|
||||
FeedEntry entry = new FeedEntry();
|
||||
entry.setId(id);
|
||||
entry.setUpdated(updated);
|
||||
entry.setContent(content);
|
||||
|
||||
FeedEntryStatus status = new FeedEntryStatus();
|
||||
status.setId(statusId);
|
||||
|
||||
@@ -27,7 +27,7 @@ public class UserSettings extends AbstractModel {
|
||||
}
|
||||
|
||||
public enum ReadingOrder {
|
||||
asc, desc
|
||||
asc, desc, abc, zyx
|
||||
}
|
||||
|
||||
public enum ViewMode {
|
||||
|
||||
@@ -103,7 +103,7 @@ public class CategoryREST {
|
||||
@ApiParam(value = "only entries newer than this") @QueryParam("newerThan") Long newerThan,
|
||||
@ApiParam(value = "offset for paging") @DefaultValue("0") @QueryParam("offset") int offset,
|
||||
@ApiParam(value = "limit for paging, default 20, maximum 1000") @DefaultValue("20") @QueryParam("limit") int limit,
|
||||
@ApiParam(value = "date ordering", allowableValues = "asc,desc") @QueryParam("order") @DefaultValue("desc") ReadingOrder order,
|
||||
@ApiParam(value = "ordering", allowableValues = "asc,desc,abc,zyx") @QueryParam("order") @DefaultValue("desc") ReadingOrder order,
|
||||
@ApiParam(
|
||||
value = "search for keywords in either the title or the content of the entries, separated by spaces, 3 characters minimum") @QueryParam("keywords") String keywords,
|
||||
@ApiParam(value = "return only entry ids") @DefaultValue("false") @QueryParam("onlyIds") boolean onlyIds,
|
||||
|
||||
@@ -141,7 +141,7 @@ public class FeedREST {
|
||||
@ApiParam(value = "only entries newer than this") @QueryParam("newerThan") Long newerThan,
|
||||
@ApiParam(value = "offset for paging") @DefaultValue("0") @QueryParam("offset") int offset,
|
||||
@ApiParam(value = "limit for paging, default 20, maximum 1000") @DefaultValue("20") @QueryParam("limit") int limit,
|
||||
@ApiParam(value = "date ordering", allowableValues = "asc,desc") @QueryParam("order") @DefaultValue("desc") ReadingOrder order,
|
||||
@ApiParam(value = "ordering", allowableValues = "asc,desc,abc,zyx") @QueryParam("order") @DefaultValue("desc") ReadingOrder order,
|
||||
@ApiParam(
|
||||
value = "search for keywords in either the title or the content of the entries, separated by spaces, 3 characters minimum") @QueryParam("keywords") String keywords,
|
||||
@ApiParam(value = "return only entry ids") @DefaultValue("false") @QueryParam("onlyIds") boolean onlyIds) {
|
||||
|
||||
@@ -61,7 +61,18 @@ public class NextUnreadServlet extends HttpServlet {
|
||||
return;
|
||||
}
|
||||
|
||||
final ReadingOrder order = StringUtils.equals(orderParam, "asc") ? ReadingOrder.asc : ReadingOrder.desc;
|
||||
final ReadingOrder order = (StringUtils.equals(orderParam, "asc") ?
|
||||
ReadingOrder.asc :
|
||||
(
|
||||
StringUtils.equals(orderParam, "desc") ?
|
||||
ReadingOrder.desc :
|
||||
(
|
||||
StringUtils.equals(orderParam, "abc") ?
|
||||
ReadingOrder.abc :
|
||||
(ReadingOrder.zyx)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
FeedEntryStatus status = UnitOfWork.call(sessionFactory, () -> {
|
||||
FeedEntryStatus s = null;
|
||||
|
||||
Reference in New Issue
Block a user