Merge branch 'dev' into bugfix/user-delete

This commit is contained in:
Zedifus 2023-11-01 01:04:22 +00:00
commit ee067af0f4
4 changed files with 28 additions and 8 deletions

View File

@ -4,6 +4,7 @@
TBD
### Bug fixes
- Fix logic issue with `get_files` API permissions check ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/654))
- Fix notifications not showing up/being reset #298 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/660))
### Tweaks
- Auto refresh Crafty Announcements on 30m interval ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/653))
- Improve Crafty toggle buttons and Webhooks page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/656))

View File

@ -578,16 +578,19 @@ class Helpers:
return version_data
def get_announcements(self):
data = []
try:
data = []
response = requests.get("https://craftycontrol.com/notify", timeout=2)
data = json.loads(response.content)
except Exception as e:
logger.error(f"Failed to fetch notifications with error: {e}")
if self.update_available:
data.append(self.update_available)
return data
except Exception as e:
logger.error(f"Failed to fetch notifications with error: {e}")
if self.update_available:
data = [self.update_available]
else:
return False
def get_version_string(self):
version_data = self.get_version()

View File

@ -29,6 +29,14 @@ class ApiAnnounceIndexHandler(BaseApiHandler):
) = auth_data
data = self.helper.get_announcements()
if not data:
return self.finish_json(
424,
{
"status": "error",
"data": "Failed to get announcements",
},
)
cleared = str(
self.controller.users.get_user_by_id(auth_data[4]["user_id"])[
"cleared_notifs"
@ -84,6 +92,14 @@ class ApiAnnounceIndexHandler(BaseApiHandler):
},
)
announcements = self.helper.get_announcements()
if not announcements:
return self.finish_json(
424,
{
"status": "error",
"data": "Failed to get current announcements",
},
)
res = [d.get("id", None) for d in announcements]
cleared_notifs = str(
self.controller.users.get_user_by_id(auth_data[4]["user_id"])[

View File

@ -93,7 +93,7 @@
return true;
}
function updateAnnouncements(data) {
console.log(data)
console.log(data);
let text = "";
for (let value of data) {
text += `<li class="card-header header-sm justify-content-between align-items-center" id="${value.id}"><p style="float: right;"><i data-id="${value.id}"class="clear-button fa-regular fa-x"></i></p><a style="color: var(--purple);" href=${value.link} target="_blank"><h6>${value.title}</h6><small><p>${value.date}</p></small><p>${value.desc}</p></li></a>`
@ -138,12 +138,12 @@
console.log(responseData);
setTimeout(function() {
getAnnouncements();
}, 1800);
}, 1800000); //Wait 30 minutes in miliseconds
console.log("Registered annoucement fetch event in 30 minutes.")
if (responseData.status === "ok") {
updateAnnouncements(responseData.data)
} else {
updateAnnouncements("<li><p>Trouble Getting Annoucements</p></li>")
updateAnnouncements([])
}
}
async function send_clear(uuid) {