user setting for showing or hiding 'empty' categories and feeds

This commit is contained in:
Athou
2013-04-12 09:57:18 +02:00
parent 38c58fcf64
commit 65552294cc
7 changed files with 48 additions and 11 deletions

View File

@@ -34,6 +34,8 @@ public class UserSettings extends AbstractModel {
@Column(nullable = false)
private ReadingOrder readingOrder;
private boolean showRead;
@Lob
@Column(length = Integer.MAX_VALUE)
private String customCss;
@@ -70,4 +72,12 @@ public class UserSettings extends AbstractModel {
this.readingOrder = readingOrder;
}
public boolean isShowRead() {
return showRead;
}
public void setShowRead(boolean showRead) {
this.showRead = showRead;
}
}

View File

@@ -7,6 +7,7 @@ public class Settings implements Serializable {
private String readingMode;
private String readingOrder;
private boolean showRead;
private String customCss;
public String getReadingMode() {
@@ -33,4 +34,12 @@ public class Settings implements Serializable {
this.readingOrder = readingOrder;
}
public boolean isShowRead() {
return showRead;
}
public void setShowRead(boolean showRead) {
this.showRead = showRead;
}
}

View File

@@ -23,10 +23,12 @@ public class SettingsREST extends AbstractREST {
if (settings != null) {
s.setReadingMode(settings.getReadingMode().name());
s.setReadingOrder(settings.getReadingOrder().name());
s.setShowRead(settings.isShowRead());
s.setCustomCss(settings.getCustomCss());
} else {
s.setReadingMode(ReadingMode.unread.name());
s.setReadingOrder(ReadingOrder.desc.name());
s.setShowRead(true);
}
return s;
}
@@ -43,6 +45,7 @@ public class SettingsREST extends AbstractREST {
}
s.setReadingMode(ReadingMode.valueOf(settings.getReadingMode()));
s.setReadingOrder(ReadingOrder.valueOf(settings.getReadingOrder()));
s.setShowRead(settings.isShowRead());
s.setCustomCss(settings.getCustomCss());
userSettingsDAO.saveOrUpdate(s);
return Response.ok(Status.OK).build();

View File

@@ -1,8 +1,8 @@
<li>
<div ng-mouseenter="hovered=node" ng-mouseleave="hovered=null" class="pointer">
<div ng-mouseenter="hovered=node" ng-mouseleave="hovered=null" class="pointer">
<div class="dropdown pull-right">
<a dropdown-toggle class="pull-right">
<i ng-show="hovered==node && node.id != 'all'" class="icon icon-chevron-down"></i>
<i ng-show="hovered==node && node.id != 'all'" class="icon icon-chevron-down"></i>
</a>
<ul class="dropdown-menu">
<li>
@@ -22,7 +22,7 @@
</div>
<ul ng-show="node.expanded" class="indent">
<recursive>
<category ng-repeat="child in node.children"
<category ng-repeat="child in node.children" ng-show="settingsService.settings.showRead == true || unreadCount({category:node}) > 0"
node="child" feed-click="feedClick({id:id})"
category-click="categoryClick({id:id})" selected-type="selectedType"
selected-id="selectedId"
@@ -32,7 +32,7 @@
</category>
</recursive>
<li ng-repeat="feed in node.feeds" ng-mouseenter="hovered=feed"
ng-mouseleave="hovered=null"
ng-mouseleave="hovered=null" ng-show="settingsService.settings.showRead == true || feed.unread > 0"
ng-class="{error: feed.message && feed.errorCount > 10}">
<div class="dropdown pull-right">
<a dropdown-toggle class="pull-right">

View File

@@ -90,7 +90,7 @@ module.controller('CategoryTreeCtrl', function($scope, $timeout, $stateParams,
$scope.selectedType = $stateParams._type;
$scope.selectedId = $stateParams._id;
$scope.$on('$stateChangeSuccess', function() {
$scope.selectedType = $stateParams._type;
$scope.selectedId = $stateParams._id;

View File

@@ -86,7 +86,8 @@ module.directive('category', function($compile) {
restrict : 'E',
replace : true,
templateUrl : 'directives/category.html',
controller : function($scope, $dialog, SubscriptionService) {
controller : function($scope, $dialog, SubscriptionService, SettingsService) {
$scope.settingsService=SettingsService;
$scope.unsubscribe = function(subscription) {
var title = 'Unsubscribe';
var msg = 'Unsubscribe from ' + subscription.name + ' ?';

View File

@@ -6,17 +6,31 @@
<div class="row">
<div class="span2">
<ul class="nav nav-pills nav-stacked">
<li class="active"><a href="#general" data-toggle="pill">General</a></li>
<li><a href="#custom-css" data-toggle="pill" ng-click="refreshCodemirror=!refreshCodemirror">Custom CSS</a></li>
<li class="active">
<a href="#general" data-toggle="pill">General</a>
</li>
<li>
<a href="#custom-css" data-toggle="pill"
ng-click="refreshCodemirror=!refreshCodemirror">Custom CSS</a>
</li>
</ul>
</div>
<div class="span10">
<div class="tab-content">
<div class="tab-pane active" id="general" style="height: 500px">
Placeholder for general settings
<div class="tab-pane active" id="general">
<div class="form-horizontal">
<div class="control-group">
<label class="checkbox">
<input type="checkbox" name="showRead"
ng-model="settings.showRead" />
Show feeds and categories with no unread entries
</label>
</div>
</div>
</div>
<div class="tab-pane" id="custom-css">
<textarea ui-codemirror="codeMirrorConfig" ng-model="settings.customCss" ui-refresh="refreshCodemirror">
<textarea ui-codemirror="codeMirrorConfig"
ng-model="settings.customCss" ui-refresh="refreshCodemirror">
</textarea>
</div>
</div>