mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 05:50:35 +00:00
🐛 Fix bad message changing team to another organization (#12354)
This commit is contained in:
parent
556d604e67
commit
296ad9704f
@ -257,6 +257,8 @@
|
||||
(watch [_ state _]
|
||||
(let [current-team-id (:current-team-id state)
|
||||
organization (:organization team)
|
||||
team-name (or (:name team)
|
||||
(dm/get-in state [:teams (:id team) :name]))
|
||||
current-team? (= (:id team) current-team-id)]
|
||||
(when (and (contains? cf/flags :admin-console)
|
||||
current-team?)
|
||||
@ -266,14 +268,14 @@
|
||||
;; (tr "dashboard.team-belong-organization")
|
||||
;; (tr "dashboard.team-no-longer-belong-organization")
|
||||
;; notification is a server-provided key, dynamic by design
|
||||
;; args: team name, organization name
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(rx/of (ntf/show {:content (tr notification (:name organization))
|
||||
(rx/of (ntf/show {:content (tr notification team-name (:name organization))
|
||||
:type :toast
|
||||
:level :info
|
||||
:timeout nil})))
|
||||
(when (:id organization)
|
||||
(check-team-sso current-team-id))))))
|
||||
ptk/UpdateEvent
|
||||
(check-team-sso current-team-id)))))) ptk/UpdateEvent
|
||||
(update [_ state]
|
||||
(if (contains? cf/flags :admin-console)
|
||||
(let [team-id (:id team)
|
||||
|
||||
@ -10,14 +10,57 @@
|
||||
[app.config :as cf]
|
||||
[app.main.data.common :as dcm]
|
||||
[app.main.data.dashboard :as dd]
|
||||
[app.main.data.notifications :as ntf]
|
||||
[app.main.data.websocket :as dws]
|
||||
[app.main.repo :as rp]
|
||||
[app.main.router :as rt]
|
||||
[app.util.i18n :as i18n]
|
||||
[beicon.v2.core :as rx]
|
||||
[cljs.test :as t :include-macros true]
|
||||
[frontend-tests.helpers.async :as async]
|
||||
[frontend-tests.helpers.mock :as mock]
|
||||
[potok.v2.core :as ptk]))
|
||||
(defn- tr-args-for-team-org-toast
|
||||
"Runs handle-change-team-organization and returns recorded i18n/tr calls."
|
||||
[notification organization]
|
||||
(let [team-id (uuid/next)
|
||||
current-url (str "https://penpot.example.com/#/dashboard/recent?team-id=" team-id)
|
||||
state {:current-team-id team-id
|
||||
:teams {team-id {:id team-id :name "Team-Apple"}}}
|
||||
event (dcm/handle-change-team-organization
|
||||
{:team {:id team-id :organization organization}
|
||||
:notification notification})
|
||||
tr-calls (atom [])]
|
||||
(-> (mock/with-mocks*
|
||||
{cf/flags (conj cf/flags :admin-console)
|
||||
;; plain variadic fn: mock/stub does not cover IFn variadic dispatch
|
||||
i18n/tr (fn [key & args]
|
||||
(swap! tr-calls conj [key (vec args)])
|
||||
(str key ":" (pr-str args)))
|
||||
rp/cmd! (mock/stub
|
||||
(fn [cmd params]
|
||||
(if (= [:check-nitrate-sso
|
||||
{:team-id team-id :url current-url}]
|
||||
[cmd params])
|
||||
(rx/of {:authorized true})
|
||||
(rx/throw (ex-info "unexpected RPC" {:cmd cmd :params params})))))
|
||||
rt/get-current-href (mock/stub (constantly current-url))}
|
||||
(await (async/observe (ptk/watch event state nil)
|
||||
:on-next (fn [ev]
|
||||
(t/is (= ::ntf/show (ptk/type ev)))))))
|
||||
(.then (fn [_] @tr-calls))))) (t/deftest ^:async team-org-change-toast-names-team-when-joining-org
|
||||
(let [tr-calls (await (tr-args-for-team-org-toast
|
||||
"dashboard.team-belong-organization"
|
||||
{:id (uuid/next) :name "OrgB"}))]
|
||||
(t/is (= [["dashboard.team-belong-organization" ["Team-Apple" "OrgB"]]]
|
||||
tr-calls))))
|
||||
|
||||
(t/deftest ^:async team-org-change-toast-names-team-when-leaving-org
|
||||
(let [tr-calls (await (tr-args-for-team-org-toast
|
||||
"dashboard.team-no-longer-belong-organization"
|
||||
{:name "OrgA"}))]
|
||||
(t/is (= [["dashboard.team-no-longer-belong-organization" ["Team-Apple" "OrgA"]]]
|
||||
tr-calls))))
|
||||
|
||||
(t/deftest moving-current-team-into-sso-organization-redirects
|
||||
(t/async done
|
||||
@ -51,7 +94,6 @@
|
||||
(fn []
|
||||
(done')))))
|
||||
done))))
|
||||
|
||||
(t/deftest organization-sso-activation-redirects-current-team
|
||||
(t/async done
|
||||
(let [team-id (uuid/next)
|
||||
|
||||
@ -1238,7 +1238,7 @@ msgstr "S'ha mogut el projecte"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Aquest equip ara forma part de l'organització %s"
|
||||
msgstr "%s ara forma part de %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1251,7 +1251,7 @@ msgstr "Membres de l'equip"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Aquest equip ja no forma part de l'organització %s"
|
||||
msgstr "%s ja no forma part de %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1250,7 +1250,7 @@ msgstr "Your project has been moved successfully"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "This team is now part of the organization %s"
|
||||
msgstr "%s now belongs to %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1263,7 +1263,7 @@ msgstr "Team members"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "This team is no longer part of the organization %s"
|
||||
msgstr "%s is no longer part of %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1264,7 +1264,7 @@ msgstr "Tu proyecto ha sido movido con éxito"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Este equipo ahora es parte de la organización %s"
|
||||
msgstr "%s ahora pertenece a %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1277,7 +1277,7 @@ msgstr "Integrantes del equipo"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Este equipo ya no es parte de la organización %s"
|
||||
msgstr "%s ya no forma parte de %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1220,7 +1220,7 @@ msgstr "پروژه شما با موفقیت منتقل شد"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "این تیم اکنون به %s تعلق دارد"
|
||||
msgstr "%s اکنون به %s تعلق دارد"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1233,7 +1233,7 @@ msgstr "اعضای تیم"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "این تیم دیگر به سازمان %s تعلق ندارد"
|
||||
msgstr "%s دیگر به %s تعلق ندارد"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1248,7 +1248,7 @@ msgstr "Votre projet a bien été déplacé"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Cette équipe appartient désormais à %s"
|
||||
msgstr "%s appartient désormais à %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1261,7 +1261,7 @@ msgstr "Membres de l’équipe"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Cette équipe n'appartient plus à l'organisation %s"
|
||||
msgstr "%s n'appartient plus à %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1122,7 +1122,7 @@ msgstr "Le projet a été déplacé avec succès"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Cette équipe appartient maintenant à l'organisation %s"
|
||||
msgstr "%s appartient maintenant à %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1135,7 +1135,7 @@ msgstr "Membres de l'équipe"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Cette équipe n'appartient plus à l'organisation %s"
|
||||
msgstr "%s n'appartient plus à %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1093,7 +1093,7 @@ msgstr "המיזם שלך הועבר בהצלחה"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "הצוות הזה שייך מעתה ל־%s"
|
||||
msgstr "%s שייך מעתה ל־%s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1106,7 +1106,7 @@ msgstr "חברי הצוות"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "הצוות הזה לא שייך יותר לארגון %s"
|
||||
msgstr "%s לא שייך יותר ל־%s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1103,7 +1103,7 @@ msgstr "Il tuo progetto è stato spostato con successo"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Questo team ora appartiene a %s"
|
||||
msgstr "%s ora appartiene a %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1116,7 +1116,7 @@ msgstr "Membri del team"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Questo team non appartiene più all'organizzazione %s"
|
||||
msgstr "%s non appartiene più a %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1202,7 +1202,7 @@ msgstr "プロジェクトを移動しました"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "このチームは組織「%s」に所属しました"
|
||||
msgstr "%s は組織「%s」に所属しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1215,7 +1215,7 @@ msgstr "チームのメンバー"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "このチームは組織「%s」に所属しなくなりました"
|
||||
msgstr "%s は組織「%s」に所属しなくなりました"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1230,7 +1230,7 @@ msgstr "Je project is succesvol verplaatst"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Dit team behoort nu tot %s"
|
||||
msgstr "%s behoort nu tot %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1243,7 +1243,7 @@ msgstr "Teamleden"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Dit team behoort niet langer tot de organisatie %s"
|
||||
msgstr "%s behoort niet langer tot %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1221,7 +1221,7 @@ msgstr "Ditt projekt har flyttats"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Detta team tillhör nu %s"
|
||||
msgstr "%s tillhör nu %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1234,7 +1234,7 @@ msgstr "Teammedlemmar"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Detta team tillhör inte längre organisation %s"
|
||||
msgstr "%s tillhör inte längre %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1226,7 +1226,7 @@ msgstr "Projen başarıyla taşındı"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "Bu takım artık %s organizasyonuna ait"
|
||||
msgstr "%s artık %s organizasyonuna ait"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1239,7 +1239,7 @@ msgstr "Takım üyeleri"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "Bu takım artık %s organizasyonuna ait değil"
|
||||
msgstr "%s artık %s organizasyonuna ait değil"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
@ -1163,7 +1163,7 @@ msgstr "已成功移動您的專案"
|
||||
#: src/app/main/data/common.cljs:266
|
||||
#, backend
|
||||
msgid "dashboard.team-belong-organization"
|
||||
msgstr "此團隊現已隸屬於組織 %s"
|
||||
msgstr "%s 現已隸屬於 %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
@ -1176,7 +1176,7 @@ msgstr "團隊成員"
|
||||
#: src/app/main/data/common.cljs:267
|
||||
#, backend
|
||||
msgid "dashboard.team-no-longer-belong-organization"
|
||||
msgstr "此團隊已不再隸屬於組織 %s"
|
||||
msgstr "%s 已不再隸屬於 %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1676
|
||||
msgid "dashboard.team-organization"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user