mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Merge pull request #6506 from nextcloud/backport/6502/stable-3.12
[stable-3.12] Bugfix. Federated share activity show 'Decline' action button.
This commit is contained in:
commit
1052a4de40
@ -883,7 +883,9 @@ QVariantList ActivityListModel::convertLinksToActionButtons(const Activity &acti
|
||||
|
||||
// Use the isDismissable model role to present custom dismiss button if needed
|
||||
// Also don't show "View chat" for talk activities, default action will open chat anyway
|
||||
if (activityLink._verb == "DELETE" || (activityLink._verb == "WEB" && activity._objectType == "chat")) {
|
||||
const auto isUseCustomDeleteAction = activityLink._verb == "DELETE"
|
||||
&& activity._objectType != QStringLiteral("remote_share");
|
||||
if (isUseCustomDeleteAction || (activityLink._verb == "WEB" && activity._objectType == "chat")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@ -403,6 +403,41 @@ void FakeRemoteActivityStorage::initActivityData()
|
||||
|
||||
_startingId++;
|
||||
}
|
||||
|
||||
for (quint32 i = 0; i < _numItemsToInsert; i++) {
|
||||
QJsonObject activity;
|
||||
activity.insert(QStringLiteral("activity_id"), _startingId);
|
||||
activity.insert(QStringLiteral("object_type"), "remote_share");
|
||||
activity.insert(QStringLiteral("subject"), QStringLiteral("You received document.docx as a remote share from admin@https://example.de"));
|
||||
activity.insert(QStringLiteral("subjectRich"), QStringLiteral("You received {share} as a remote share from {user}"));
|
||||
activity.insert(QStringLiteral("message"), QStringLiteral(""));
|
||||
activity.insert(QStringLiteral("object_name"), QStringLiteral(""));
|
||||
activity.insert(QStringLiteral("datetime"), QDateTime::currentDateTime().toString(Qt::ISODate));
|
||||
activity.insert(QStringLiteral("icon"), QStringLiteral("http://example.de/core/img/actions/share.svg"));
|
||||
|
||||
QJsonArray actionsArray;
|
||||
|
||||
QJsonObject primaryAction;
|
||||
primaryAction.insert(QStringLiteral("label"), QStringLiteral("Accept"));
|
||||
primaryAction.insert(QStringLiteral("link"), QStringLiteral("/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/6"));
|
||||
primaryAction.insert(QStringLiteral("type"), QStringLiteral("POST"));
|
||||
primaryAction.insert(QStringLiteral("primary"), true);
|
||||
actionsArray.push_back(primaryAction);
|
||||
|
||||
QJsonObject secondaryAction;
|
||||
secondaryAction.insert(QStringLiteral("label"), QStringLiteral("Decline"));
|
||||
secondaryAction.insert(QStringLiteral("link"), QString(QStringLiteral("/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/6")));
|
||||
secondaryAction.insert(QStringLiteral("type"), QStringLiteral("DELETE"));
|
||||
secondaryAction.insert(QStringLiteral("primary"), false);
|
||||
actionsArray.push_back(secondaryAction);
|
||||
|
||||
activity.insert(QStringLiteral("actions"), actionsArray);
|
||||
|
||||
_activityData.push_back(activity);
|
||||
|
||||
_startingId++;
|
||||
}
|
||||
|
||||
_startingId--;
|
||||
}
|
||||
|
||||
|
||||
@ -297,6 +297,14 @@ private slots:
|
||||
QVERIFY(actionsLinksContextMenu.isEmpty());
|
||||
}
|
||||
|
||||
// remote shares must have 'Accept' and 'Decline' actions
|
||||
if (objectType == QStringLiteral("remote_share")) {
|
||||
QVERIFY(actionsLinks.size() == 2);
|
||||
QVERIFY(actionsLinks[0].value<OCC::ActivityLink>()._primary);
|
||||
QVERIFY(actionsLinks[0].value<OCC::ActivityLink>()._verb == QStringLiteral("POST"));
|
||||
QVERIFY(actionsLinks[1].value<OCC::ActivityLink>()._verb == QStringLiteral("DELETE"));
|
||||
}
|
||||
|
||||
if ((objectType == QStringLiteral("chat") || objectType == QStringLiteral("call")
|
||||
|| objectType == QStringLiteral("room"))) {
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user