forked from Archives/Athou_commafeed
user setting for showing or hiding 'empty' categories and feeds
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 + ' ?';
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user