diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 027238e4b8..730cf08f66 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -39,6 +39,7 @@ [app.main.ui.ds.foundations.typography.heading :refer [heading*]] [app.main.ui.ds.foundations.typography.text :refer [text*]] [app.main.ui.ds.notifications.context-notification :refer [context-notification*]] + [app.main.ui.ds.tooltip.tooltip :refer [tooltip*]] [app.main.ui.forms :as fc] [app.main.ui.icons :as deprecated-icon] [app.main.ui.notifications.badge :refer [badge-notification]] @@ -139,11 +140,26 @@ [:a {:on-click on-nav-settings} (tr "labels.settings")]]]] [:div {:class (stl/css :dashboard-buttons)} (when (and (or invitations-section? members-section?) (not-empty invitations)) - [:> button* {:variant "secondary" - :on-click on-invite-member - :disabled (not can-invite?) - :data-testid "invite-member"} - (tr "dashboard.invite-profile")])]])) + (let [organization (:organization team) + owners-only-invites? (and (contains? cfg/flags :admin-console) + organization + (= (get-in organization [:permissions :send-invitations]) "owners")) + title-text (if owners-only-invites? + (tr "dashboard.invite-profile-disabled.owners-only" (:name organization)) + (tr "dashboard.invite-profile-disabled")) + invite-button (mf/html + [:> button* {:class (stl/css :invite-button) + :variant "secondary" + :on-click on-invite-member + :disabled (not can-invite?) + :data-testid "invite-member"} + (tr "dashboard.invite-profile")])] + (if can-invite? + invite-button + [:> tooltip* {:content title-text + :id "invite-member-disabled-tooltip" + :tab-index 0} + invite-button])))]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; INVITATIONS MODAL diff --git a/frontend/src/app/main/ui/dashboard/team.scss b/frontend/src/app/main/ui/dashboard/team.scss index 14366781c4..3408a4697e 100644 --- a/frontend/src/app/main/ui/dashboard/team.scss +++ b/frontend/src/app/main/ui/dashboard/team.scss @@ -1062,6 +1062,10 @@ } } +.invite-button:disabled { + --button-disabled-bg-color: var(--color-background-tertiary); +} + a { color: var(--modal-link-foreground-color); } diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 3175d5a1c3..828353e3c9 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -10352,3 +10352,9 @@ msgstr "Sign-in with your organization's identity provider didn't complete. The msgid "labels.sso-error.retry" msgstr "Try again" + +msgid "dashboard.invite-profile-disabled" +msgstr "You don't have permission to invite people to this team" + +msgid "dashboard.invite-profile-disabled.owners-only" +msgstr "Only team owners can invite within %s" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 4044119275..53cdbdc91e 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -9997,3 +9997,9 @@ msgstr "El inicio de sesión con el proveedor de identidad de tu organización n msgid "labels.sso-error.retry" msgstr "Intentar de nuevo" + +msgid "dashboard.invite-profile-disabled" +msgstr "No tienes permiso para invitar a personas a este equipo" + +msgid "dashboard.invite-profile-disabled.owners-only" +msgstr "Solo los propietarios del equipo pueden invitar dentro de %s" \ No newline at end of file