mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Open calendar notifications in the browser.
Signed-off-by: Camila <hello@camila.codes>
This commit is contained in:
parent
9cb1609896
commit
b525de8a97
@ -17,6 +17,26 @@
|
||||
#include "activitydata.h"
|
||||
#include "folderman.h"
|
||||
|
||||
namespace {
|
||||
QUrl stringToUrl(const QUrl &accountUrl, const QString &link) {
|
||||
auto url = QUrl::fromUserInput(link);
|
||||
|
||||
if (!url.isValid()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
if (url.host().isEmpty()) {
|
||||
url.setScheme(accountUrl.scheme());
|
||||
url.setHost(accountUrl.host());
|
||||
}
|
||||
|
||||
if (url.port() == -1) {
|
||||
url.setPort(accountUrl.port());
|
||||
}
|
||||
|
||||
return url;
|
||||
};
|
||||
}
|
||||
|
||||
namespace OCC {
|
||||
|
||||
@ -71,7 +91,7 @@ OCC::Activity Activity::fromActivityJson(const QJsonObject &json, const AccountP
|
||||
activity._subject = json.value(QStringLiteral("subject")).toString();
|
||||
activity._message = json.value(QStringLiteral("message")).toString();
|
||||
activity._file = json.value(QStringLiteral("object_name")).toString();
|
||||
activity._link = QUrl(json.value(QStringLiteral("link")).toString());
|
||||
activity._link = stringToUrl(account->url(), json.value(QStringLiteral("link")).toString());
|
||||
activity._dateTime = QDateTime::fromString(json.value(QStringLiteral("datetime")).toString(), Qt::ISODate);
|
||||
activity._icon = json.value(QStringLiteral("icon")).toString();
|
||||
activity._isCurrentUserFileActivity = activity._objectType == QStringLiteral("files") && activityUser == account->davUser();
|
||||
@ -88,13 +108,18 @@ OCC::Activity Activity::fromActivityJson(const QJsonObject &json, const AccountP
|
||||
for (auto i = parameters.begin(); i != parameters.end(); ++i) {
|
||||
const auto parameterJsonObject = i.value().toObject();
|
||||
|
||||
const auto richParamLink = stringToUrl(account->url(), parameterJsonObject.value(QStringLiteral("link")).toString());
|
||||
activity._subjectRichParameters[i.key()] = Activity::RichSubjectParameter {
|
||||
parameterJsonObject.value(QStringLiteral("type")).toString(),
|
||||
parameterJsonObject.value(QStringLiteral("id")).toString(),
|
||||
parameterJsonObject.value(QStringLiteral("name")).toString(),
|
||||
parameterJsonObject.contains(QStringLiteral("path")) ? parameterJsonObject.value(QStringLiteral("path")).toString() : QString(),
|
||||
parameterJsonObject.contains(QStringLiteral("link")) ? QUrl(parameterJsonObject.value(QStringLiteral("link")).toString()) : QUrl(),
|
||||
richParamLink,
|
||||
};
|
||||
|
||||
if (activity._objectType == QStringLiteral("calendar") && activity._link.isEmpty()) {
|
||||
activity._link = richParamLink;
|
||||
}
|
||||
}
|
||||
|
||||
auto displayString = activity._subjectRich;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user