Skip to content

Commit

Permalink
Open calendar notifications in the browser.
Browse files Browse the repository at this point in the history
Signed-off-by: Camila <hello@camila.codes>
  • Loading branch information
Camila authored and mgallien committed Jul 8, 2022
1 parent 85f5bbd commit bcc85e7
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 14 deletions.
25 changes: 23 additions & 2 deletions src/gui/tray/activitydata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,22 @@ OCC::Activity Activity::fromActivityJson(const QJsonObject &json, const AccountP
{
const auto activityUser = json.value(QStringLiteral("user")).toString();

const auto stringToUrl = [&] (const QString link) {
auto url = QUrl::fromUserInput(link);
//QUrl::fromUserInput
if (url.isValid()) {
if (url.host().isEmpty()) {
url.setScheme(account->url().scheme());
url.setHost(account->url().host());
}
if (url.port() == -1) {
url.setPort(account->url().port());
}
}

return url;
};

Activity activity;
activity._type = Activity::ActivityType;
activity._objectType = json.value(QStringLiteral("object_type")).toString();
Expand All @@ -61,7 +77,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(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();
Expand All @@ -82,10 +98,15 @@ OCC::Activity Activity::fromActivityJson(const QJsonObject &json, const AccountP
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(),
parameterJsonObject.contains(QStringLiteral("link")) ? stringToUrl(parameterJsonObject.value(QStringLiteral("link")).toString()) : QUrl(),
};

if (activity._objectType == "calendar") {
activity._link = activity._subjectRichParameters[i.key()].link;
}
}


auto displayString = activity._subjectRich;
auto subjectRichParameterMatch = subjectRichParameterRe.globalMatch(displayString);

Expand Down
12 changes: 0 additions & 12 deletions src/gui/tray/notificationhandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,6 @@ void ServerNotificationHandler::slotNotificationsReceived(const QJsonDocument &j

a._status = 0;

QUrl link(json.value("link").toString());
if (!link.isEmpty()) {
if (link.host().isEmpty()) {
link.setScheme(ai->account()->url().scheme());
link.setHost(ai->account()->url().host());
}
if (link.port() == -1) {
link.setPort(ai->account()->url().port());
}
}
a._link = link;

// Add another action to dismiss notification on server
// https://github.com/owncloud/notifications/blob/master/docs/ocs-endpoint-v1.md#deleting-a-notification-for-a-user
constexpr auto deleteVerb = "DELETE";
Expand Down

0 comments on commit bcc85e7

Please sign in to comment.