mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
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)
|
@Column(nullable = false)
|
||||||
private ReadingOrder readingOrder;
|
private ReadingOrder readingOrder;
|
||||||
|
|
||||||
|
private boolean showRead;
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(length = Integer.MAX_VALUE)
|
@Column(length = Integer.MAX_VALUE)
|
||||||
private String customCss;
|
private String customCss;
|
||||||
@@ -70,4 +72,12 @@ public class UserSettings extends AbstractModel {
|
|||||||
this.readingOrder = readingOrder;
|
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 readingMode;
|
||||||
private String readingOrder;
|
private String readingOrder;
|
||||||
|
private boolean showRead;
|
||||||
private String customCss;
|
private String customCss;
|
||||||
|
|
||||||
public String getReadingMode() {
|
public String getReadingMode() {
|
||||||
@@ -33,4 +34,12 @@ public class Settings implements Serializable {
|
|||||||
this.readingOrder = readingOrder;
|
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) {
|
if (settings != null) {
|
||||||
s.setReadingMode(settings.getReadingMode().name());
|
s.setReadingMode(settings.getReadingMode().name());
|
||||||
s.setReadingOrder(settings.getReadingOrder().name());
|
s.setReadingOrder(settings.getReadingOrder().name());
|
||||||
|
s.setShowRead(settings.isShowRead());
|
||||||
s.setCustomCss(settings.getCustomCss());
|
s.setCustomCss(settings.getCustomCss());
|
||||||
} else {
|
} else {
|
||||||
s.setReadingMode(ReadingMode.unread.name());
|
s.setReadingMode(ReadingMode.unread.name());
|
||||||
s.setReadingOrder(ReadingOrder.desc.name());
|
s.setReadingOrder(ReadingOrder.desc.name());
|
||||||
|
s.setShowRead(true);
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
@@ -43,6 +45,7 @@ public class SettingsREST extends AbstractREST {
|
|||||||
}
|
}
|
||||||
s.setReadingMode(ReadingMode.valueOf(settings.getReadingMode()));
|
s.setReadingMode(ReadingMode.valueOf(settings.getReadingMode()));
|
||||||
s.setReadingOrder(ReadingOrder.valueOf(settings.getReadingOrder()));
|
s.setReadingOrder(ReadingOrder.valueOf(settings.getReadingOrder()));
|
||||||
|
s.setShowRead(settings.isShowRead());
|
||||||
s.setCustomCss(settings.getCustomCss());
|
s.setCustomCss(settings.getCustomCss());
|
||||||
userSettingsDAO.saveOrUpdate(s);
|
userSettingsDAO.saveOrUpdate(s);
|
||||||
return Response.ok(Status.OK).build();
|
return Response.ok(Status.OK).build();
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<ul ng-show="node.expanded" class="indent">
|
<ul ng-show="node.expanded" class="indent">
|
||||||
<recursive>
|
<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})"
|
node="child" feed-click="feedClick({id:id})"
|
||||||
category-click="categoryClick({id:id})" selected-type="selectedType"
|
category-click="categoryClick({id:id})" selected-type="selectedType"
|
||||||
selected-id="selectedId"
|
selected-id="selectedId"
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
</category>
|
</category>
|
||||||
</recursive>
|
</recursive>
|
||||||
<li ng-repeat="feed in node.feeds" ng-mouseenter="hovered=feed"
|
<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}">
|
ng-class="{error: feed.message && feed.errorCount > 10}">
|
||||||
<div class="dropdown pull-right">
|
<div class="dropdown pull-right">
|
||||||
<a dropdown-toggle class="pull-right">
|
<a dropdown-toggle class="pull-right">
|
||||||
|
|||||||
@@ -86,7 +86,8 @@ module.directive('category', function($compile) {
|
|||||||
restrict : 'E',
|
restrict : 'E',
|
||||||
replace : true,
|
replace : true,
|
||||||
templateUrl : 'directives/category.html',
|
templateUrl : 'directives/category.html',
|
||||||
controller : function($scope, $dialog, SubscriptionService) {
|
controller : function($scope, $dialog, SubscriptionService, SettingsService) {
|
||||||
|
$scope.settingsService=SettingsService;
|
||||||
$scope.unsubscribe = function(subscription) {
|
$scope.unsubscribe = function(subscription) {
|
||||||
var title = 'Unsubscribe';
|
var title = 'Unsubscribe';
|
||||||
var msg = 'Unsubscribe from ' + subscription.name + ' ?';
|
var msg = 'Unsubscribe from ' + subscription.name + ' ?';
|
||||||
|
|||||||
@@ -6,17 +6,31 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="span2">
|
<div class="span2">
|
||||||
<ul class="nav nav-pills nav-stacked">
|
<ul class="nav nav-pills nav-stacked">
|
||||||
<li class="active"><a href="#general" data-toggle="pill">General</a></li>
|
<li class="active">
|
||||||
<li><a href="#custom-css" data-toggle="pill" ng-click="refreshCodemirror=!refreshCodemirror">Custom CSS</a></li>
|
<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>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="span10">
|
<div class="span10">
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="general" style="height: 500px">
|
<div class="tab-pane active" id="general">
|
||||||
Placeholder for general settings
|
<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>
|
||||||
<div class="tab-pane" id="custom-css">
|
<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>
|
</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user