allow ordering (fix #30)

This commit is contained in:
Athou
2013-04-10 10:28:48 +02:00
parent 1683a1ce50
commit ae4cd0b5e1
8 changed files with 107 additions and 50 deletions

View File

@@ -6,6 +6,7 @@ import java.io.Serializable;
public class Settings implements Serializable {
private String readingMode;
private String readingOrder;
private String customCss;
public String getReadingMode() {
@@ -24,4 +25,12 @@ public class Settings implements Serializable {
this.customCss = customCss;
}
public String getReadingOrder() {
return readingOrder;
}
public void setReadingOrder(String readingOrder) {
this.readingOrder = readingOrder;
}
}

View File

@@ -17,6 +17,7 @@ import com.commafeed.backend.StartupBean;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.frontend.SecurityCheck;
import com.commafeed.frontend.model.UserModel;
import com.google.common.base.Preconditions;
@@ -135,7 +136,7 @@ public class AdminUsersREST extends AbstractREST {
.entity("You cannot delete the admin user.").build();
}
feedEntryStatusService.delete(feedEntryStatusService.getStatuses(user,
false));
false, ReadingOrder.desc));
feedSubscriptionService.delete(feedSubscriptionService.findAll(user));
feedCategoryService.delete(feedCategoryService.findAll(user));
userSettingsService.delete(userSettingsService.findByUser(user));

View File

@@ -18,6 +18,7 @@ import com.commafeed.backend.model.FeedCategory;
import com.commafeed.backend.model.FeedEntry;
import com.commafeed.backend.model.FeedEntryStatus;
import com.commafeed.backend.model.FeedSubscription;
import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.frontend.model.Entries;
import com.commafeed.frontend.model.Entry;
import com.google.common.base.Preconditions;
@@ -42,7 +43,8 @@ public class EntriesREST extends AbstractREST {
@QueryParam("id") String id,
@QueryParam("readType") ReadType readType,
@DefaultValue("0") @QueryParam("offset") int offset,
@DefaultValue("-1") @QueryParam("limit") int limit) {
@DefaultValue("-1") @QueryParam("limit") int limit,
@QueryParam("order") @DefaultValue("desc") ReadingOrder order) {
Preconditions.checkNotNull(type);
Preconditions.checkNotNull(id);
@@ -61,7 +63,7 @@ public class EntriesREST extends AbstractREST {
List<FeedEntryStatus> unreadEntries = feedEntryStatusService
.getStatuses(subscription.getFeed(), getUser(),
unreadOnly, offset, limit);
unreadOnly, offset, limit, order);
for (FeedEntryStatus status : unreadEntries) {
entries.getEntries().add(buildEntry(status));
}
@@ -72,7 +74,8 @@ public class EntriesREST extends AbstractREST {
if (ALL.equals(id)) {
entries.setName("All");
List<FeedEntryStatus> unreadEntries = feedEntryStatusService
.getStatuses(getUser(), unreadOnly, offset, limit);
.getStatuses(getUser(), unreadOnly, offset, limit,
order);
for (FeedEntryStatus status : unreadEntries) {
entries.getEntries().add(buildEntry(status));
}
@@ -85,7 +88,7 @@ public class EntriesREST extends AbstractREST {
.findAllChildrenCategories(getUser(), feedCategory);
List<FeedEntryStatus> unreadEntries = feedEntryStatusService
.getStatuses(childrenCategories, getUser(),
unreadOnly, offset, limit);
unreadOnly, offset, limit, order);
for (FeedEntryStatus status : unreadEntries) {
entries.getEntries().add(buildEntry(status));
}

View File

@@ -8,6 +8,7 @@ import javax.ws.rs.core.Response.Status;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.model.UserSettings.ReadingMode;
import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.frontend.model.Settings;
import com.google.common.base.Preconditions;
@@ -21,9 +22,11 @@ public class SettingsREST extends AbstractREST {
UserSettings settings = userSettingsService.findByUser(getUser());
if (settings != null) {
s.setReadingMode(settings.getReadingMode().name());
s.setReadingOrder(settings.getReadingOrder().name());
s.setCustomCss(settings.getCustomCss());
} else {
s.setReadingMode(ReadingMode.unread.name());
s.setReadingOrder(ReadingOrder.desc.name());
}
return s;
}
@@ -32,13 +35,14 @@ public class SettingsREST extends AbstractREST {
@POST
public Response save(Settings settings) {
Preconditions.checkNotNull(settings);
UserSettings s = userSettingsService.findByUser(getUser());
if (s == null) {
s = new UserSettings();
s.setUser(getUser());
}
s.setReadingMode(ReadingMode.valueOf(settings.getReadingMode()));
s.setReadingOrder(ReadingOrder.valueOf(settings.getReadingOrder()));
s.setCustomCss(settings.getCustomCss());
userSettingsService.saveOrUpdate(s);
return Response.ok(Status.OK).build();