favourite/unfavourite in the sidebar
there's still a bug that doesn't update unfavouriting in real time
This commit is contained in:
parent
916c494833
commit
80320105d8
3 changed files with 63 additions and 1 deletions
|
@ -10,6 +10,8 @@ import stat
|
|||
|
||||
import gevent
|
||||
|
||||
from rich import print
|
||||
|
||||
from Config import config
|
||||
from Site import SiteManager
|
||||
from Crypt import CryptBitcoin
|
||||
|
@ -950,6 +952,35 @@ class UiWebsocket(object):
|
|||
else:
|
||||
self.response(to, {"error": "Unknown site: %s" % address})
|
||||
|
||||
def siteFavUnfav(self, to, address, action, response):
|
||||
dashboard = config.homepage
|
||||
dsite = self.user.sites.get(dashboard, None)
|
||||
if not dsite:
|
||||
raise RuntimeError(f'No dashboard {dashboard} found to add site to favourites')
|
||||
if 'settings' not in dsite:
|
||||
dsite['settings'] = {}
|
||||
dsettings = dsite['settings']
|
||||
if 'favorite_sites' not in dsettings:
|
||||
dsettings['favorite_sites'] = {}
|
||||
favs = dsettings['favorite_sites']
|
||||
action(favs)
|
||||
self.user.setSiteSettings(dashboard, dsettings)
|
||||
self.response(to, response)
|
||||
|
||||
@flag.admin
|
||||
@flag.no_multiuser
|
||||
def actionSiteFavourite(self, to, address):
|
||||
def do_add(favs):
|
||||
favs[address] = True
|
||||
self.siteFavUnfav(to, address, do_add, "Added to favourites")
|
||||
|
||||
@flag.admin
|
||||
@flag.no_multiuser
|
||||
def actionSiteUnfavourite(self, to, address):
|
||||
def do_del(favs):
|
||||
del favs[address]
|
||||
self.siteFavUnfav(to, address, do_del, "Removed from favourites")
|
||||
|
||||
@flag.admin
|
||||
@flag.no_multiuser
|
||||
def actionSiteDelete(self, to, address):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue