favourite/unfavourite in the sidebar

there's still a bug that doesn't update unfavouriting in real time
This commit is contained in:
caryoscelus 2022-08-06 00:45:27 +00:00
parent 916c494833
commit 80320105d8
3 changed files with 63 additions and 1 deletions

View file

@ -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):