Saved filters #655

Merged
konrad merged 29 commits from feature/saved-filters into master 2020-09-26 21:02:18 +00:00
3 changed files with 27 additions and 2 deletions
Showing only changes of commit 89258476eb - Show all commits

View File

@ -185,6 +185,19 @@ func (l *List) ReadOne() (err error) {
return nil
}
// Check for saved filters
if getSavedFilterIDFromListID(l.ID) > 0 {
sf, err := getSavedFilterSimpleByID(getSavedFilterIDFromListID(l.ID))
if err != nil {
return err
}
l.Title = sf.Title
l.Description = sf.Description
l.Created = sf.Created
l.Updated = sf.Updated
l.OwnerID = sf.OwnerID
}
// Get list owner
l.Owner, err = user.GetUserByID(l.OwnerID)
if err != nil {

View File

@ -81,6 +81,12 @@ func (l *List) CanRead(a web.Auth) (bool, int, error) {
return true, int(RightRead), nil
}
// Saved Filter Lists need a special case
if getSavedFilterIDFromListID(l.ID) > 0 {
sf := &SavedFilter{ID: getSavedFilterIDFromListID(l.ID)}
return sf.CanRead(a)
}
// Check if the user is either owner or can read
if err := l.GetSimpleByID(); err != nil {
return false, 0, err

View File

@ -57,9 +57,15 @@ func (s *SavedFilter) getTaskCollection() *TaskCollection {
return s.Filters
}
func getSavedFilterIDFromListID(listID int64) int64 {
// Returns the saved filter ID from a list ID. Will not check if the filter actually exists.
// If the returned ID is zero, means that it is probably invalid.
func getSavedFilterIDFromListID(listID int64) (filterID int64) {
// We get the id of the saved filter by multiplying the ListID with -1 and subtracting one
return listID*-1 - 1
filterID = listID*-1 - 1
if filterID > 0 {
filterID = 0
}
return
}
func (s *SavedFilter) Create(auth web.Auth) error {