mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-22 17:45:02 +02:00
Qfix readonly improvements (#9621)
Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
-->
|
||||
<script lang="ts">
|
||||
import { Card, MasterTag } from '@hcengineering/card'
|
||||
import { AnyAttribute, ArrOf, Ref, RefTo, Type } from '@hcengineering/core'
|
||||
import { AnyAttribute, ArrOf, Class, Ref, RefTo, Type } from '@hcengineering/core'
|
||||
import { IntlString } from '@hcengineering/platform'
|
||||
import { IconWithEmoji, createQuery, getClient } from '@hcengineering/presentation'
|
||||
import { Button, ButtonKind, ButtonSize, eventToHTMLElement, Label, showPopup } from '@hcengineering/ui'
|
||||
@@ -23,6 +23,7 @@
|
||||
import card from '../plugin'
|
||||
import CardsPopup from './CardsPopup.svelte'
|
||||
|
||||
export let _class: Ref<Class<Card>> | undefined = undefined
|
||||
export let value: Ref<Card>[] | undefined
|
||||
export let readonly: boolean = false
|
||||
export let label: IntlString | undefined
|
||||
@@ -40,10 +41,12 @@
|
||||
const client = getClient()
|
||||
const hierarchy = client.getHierarchy()
|
||||
|
||||
const _class =
|
||||
((attribute?.type as ArrOf<RefTo<Card>>)?.of as RefTo<Card>)?.to ??
|
||||
((type as ArrOf<RefTo<Card>>)?.of as RefTo<Card>)?.to ??
|
||||
card.class.Card
|
||||
if (_class === undefined) {
|
||||
_class =
|
||||
((attribute?.type as ArrOf<RefTo<Card>>)?.of as RefTo<Card>)?.to ??
|
||||
((type as ArrOf<RefTo<Card>>)?.of as RefTo<Card>)?.to ??
|
||||
card.class.Card
|
||||
}
|
||||
|
||||
const handleOpen = (event: MouseEvent): void => {
|
||||
if (onChange === undefined) {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
import { canDisplayLinkPreview, fetchLinkPreviewDetails, getCommunicationClient } from '@hcengineering/presentation'
|
||||
import { type Card } from '@hcengineering/card'
|
||||
import { AccountRole, getCurrentAccount, hasAccountRole, type Markup } from '@hcengineering/core'
|
||||
import { AccountRole, getCurrentAccount, type Markup } from '@hcengineering/core'
|
||||
import { getMetadata, translate } from '@hcengineering/platform'
|
||||
import { addNotification, languageStore, NotificationSeverity, showPopup } from '@hcengineering/ui'
|
||||
import { type LinkPreviewParams, type Message } from '@hcengineering/communication-types'
|
||||
@@ -139,7 +139,7 @@ export async function loadLinkPreviewParams (url: string): Promise<LinkPreviewPa
|
||||
}
|
||||
|
||||
export async function isCardAllowedForCommunications (card: Card): Promise<boolean> {
|
||||
if (hasAccountRole(getCurrentAccount(), AccountRole.User)) return true
|
||||
if (getCurrentAccount().role !== AccountRole.Guest) return true
|
||||
const allowedCards = get(guestCommunicationAllowedCards)
|
||||
if (allowedCards.includes(card._id)) return true
|
||||
for (const parentInfoElement of card.parentInfo) {
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "Anonymní hosté",
|
||||
"GuestAccessDescription": "Umožňuje anonymním uživatelům prohlížet pracovní prostor v režimu pouze pro čtení",
|
||||
"GuestSignUpDescription": "Umožňuje anonymním uživatelům připojit se k vašemu pracovnímu prostoru jako hosté s omezenými editačními právy",
|
||||
"GuestCardsDescription": "Karty, kde mohou hosté komunikovat po připojení k pracovnímu prostoru",
|
||||
"GuestCardsArrayLabel": "Vybrat karty pro komunikaci",
|
||||
"GuestChannelsDescription": "Kanály, kde hosté mohou psát zprávy po připojení",
|
||||
"GuestChannelsArrayLabel": "Vybrat kanály",
|
||||
"ManageIdentities": "Spravovat identity",
|
||||
"Release": "Uvolnění",
|
||||
"ReleaseSocialId": "Uvolnit sociální ID",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "Anonyme Gäste",
|
||||
"GuestAccessDescription": "Ermöglicht anonymen Benutzern den schreibgeschützten Zugriff auf den Arbeitsbereich",
|
||||
"GuestSignUpDescription": "Ermöglicht anonymen Benutzern den Beitritt zu Ihrem Arbeitsbereich als Gäste mit eingeschränkten Bearbeitungsrechten",
|
||||
"GuestCardsDescription": "Karten, in denen Gäste nach dem Beitritt zum Arbeitsbereich kommunizieren können",
|
||||
"GuestCardsArrayLabel": "Karten für Kommunikation auswählen",
|
||||
"GuestChannelsDescription": "Kanäle, in denen Gäste nach dem Beitritt Nachrichten schreiben können",
|
||||
"GuestChannelsArrayLabel": "Kanäle auswählen",
|
||||
"ManageIdentities": "Identitäten verwalten",
|
||||
"Release": "Freigeben",
|
||||
"ReleaseSocialId": "Social ID freigeben",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "Anonymous guests",
|
||||
"GuestAccessDescription": "Allows anonymous users to visit your workspace in read-only mode",
|
||||
"GuestSignUpDescription": "Allows anonymous users to join your workspace as guests with limited editing rights",
|
||||
"GuestCardsDescription": "Cards where guests can communicate after joining the workspace",
|
||||
"GuestCardsArrayLabel": "Select cards for communication",
|
||||
"GuestChannelsDescription": "Channels where guests can write messages after joining",
|
||||
"GuestChannelsArrayLabel": "Select channels",
|
||||
"ManageIdentities": "Manage identities",
|
||||
"Release": "Release",
|
||||
"ReleaseSocialId": "Release social ID",
|
||||
|
||||
@@ -162,8 +162,8 @@
|
||||
"GuestAccess": "Invitados anónimos",
|
||||
"GuestAccessDescription": "Permite a usuarios anónimos visitar el espacio de trabajo en modo de solo lectura",
|
||||
"GuestSignUpDescription": "Permite a usuarios anónimos unirse a su espacio de trabajo como invitados con derechos de edición limitados",
|
||||
"GuestCardsDescription": "Tarjetas donde los invitados pueden comunicarse después de unirse al espacio de trabajo",
|
||||
"GuestCardsArrayLabel": "Seleccionar tarjetas para comunicación",
|
||||
"GuestChannelsDescription": "Canales donde los invitados pueden escribir mensajes después de unirse",
|
||||
"GuestChannelsArrayLabel": "Seleccionar canales",
|
||||
"ManageIdentities": "Gestionar identidades",
|
||||
"Release": "Liberar",
|
||||
"ReleaseSocialId": "Liberar ID social",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "Invités anonymes",
|
||||
"GuestAccessDescription": "Autorise les utilisateurs anonymes à accéder à l'espace de travail en lecture seule",
|
||||
"GuestSignUpDescription": "Permet aux utilisateurs anonymes de rejoindre votre espace de travail en tant qu'invités avec des droits d'édition limités",
|
||||
"GuestCardsDescription": "Cartes où les invités peuvent communiquer après avoir rejoint l'espace de travail",
|
||||
"GuestCardsArrayLabel": "Sélectionnez les cartes pour la communication",
|
||||
"GuestChannelsDescription": "Canaux où les invités peuvent écrire des messages après leur adhésion",
|
||||
"GuestChannelsArrayLabel": "Sélectionner des canaux",
|
||||
"ManageIdentities": "Gérer les identités",
|
||||
"Release": "Libération",
|
||||
"ReleaseSocialId": "Libérer l'ID social",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "Ospiti anonimi",
|
||||
"GuestAccessDescription": "Consente agli utenti anonimi di accedere all'area di lavoro in modalità sola lettura",
|
||||
"GuestSignUpDescription": "Consente agli utenti anonimi di unirsi al tuo spazio di lavoro come ospiti con diritti di modifica limitati",
|
||||
"GuestCardsDescription": "Schede in cui gli ospiti possono comunicare dopo essersi uniti allo spazio di lavoro",
|
||||
"GuestCardsArrayLabel": "Seleziona schede per la comunicazione",
|
||||
"GuestChannelsDescription": "Canali in cui gli ospiti possono scrivere messaggi dopo essersi uniti",
|
||||
"GuestChannelsArrayLabel": "Seleziona canali",
|
||||
"ManageIdentities": "Gestisci identità",
|
||||
"Release": "Rilascio",
|
||||
"ReleaseSocialId": "Rilascia ID social",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "匿名ゲスト",
|
||||
"GuestAccessDescription": "匿名ユーザーがワークスペースを読み取り専用モードで閲覧できます",
|
||||
"GuestSignUpDescription": "匿名ユーザーがゲストとしてワークスペースに参加し、制限された編集権限を得られるようにします",
|
||||
"GuestCardsDescription": "ゲストがワークスペース参加後にコミュニケーション可能なカード",
|
||||
"GuestCardsArrayLabel": "コミュニケーション用カードを選択",
|
||||
"GuestChannelsDescription": "参加後、ゲストがメッセージを書き込めるチャンネル",
|
||||
"GuestChannelsArrayLabel": "チャンネルを選択",
|
||||
"ManageIdentities": "IDを管理",
|
||||
"Release": "リリース",
|
||||
"ReleaseSocialId": "ソーシャルIDをリリース",
|
||||
|
||||
@@ -162,8 +162,8 @@
|
||||
"GuestAccess": "Convidados anônimos",
|
||||
"GuestAccessDescription": "Permite que usuários anônimos acessem seu espaço de trabalho em modo somente leitura",
|
||||
"GuestSignUpDescription": "Permite que usuários anônimos entrem em seu espaço de trabalho como convidados com direitos de edição limitados",
|
||||
"GuestCardsDescription": "Cartões onde convidados podem se comunicar após ingressar no espaço de trabalho",
|
||||
"GuestCardsArrayLabel": "Selecionar cartões para comunicação",
|
||||
"GuestChannelsDescription": "Canais onde convidados podem escrever mensagens após ingressar",
|
||||
"GuestChannelsArrayLabel": "Selecionar canais",
|
||||
"ManageIdentities": "Gerenciar identidades",
|
||||
"Release": "Libertação",
|
||||
"ReleaseSocialId": "Liberar ID social",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "Анонимные гости",
|
||||
"GuestAccessDescription": "Позволяет анонимным пользователям просматривать рабочее пространство в режиме только для чтения",
|
||||
"GuestSignUpDescription": "Позволяет анонимным пользователям присоединяться к вашему рабочему пространству в качестве гостей с ограниченными правами редактирования",
|
||||
"GuestCardsDescription": "Карточки, в которых гости могут общаться после присоединения к рабочему пространству",
|
||||
"GuestCardsArrayLabel": "Выберите карточки для коммуникации",
|
||||
"GuestChannelsDescription": "Каналы, в которых гости могут писать сообщения после присоединения",
|
||||
"GuestChannelsArrayLabel": "Выбрать каналы",
|
||||
"ManageIdentities": "Управление идентификаторами",
|
||||
"Release": "Освободить",
|
||||
"ReleaseSocialId": "Освободить социальный ID",
|
||||
|
||||
@@ -171,8 +171,8 @@
|
||||
"GuestAccess": "匿名访客",
|
||||
"GuestAccessDescription": "允许匿名用户以只读模式访问工作区",
|
||||
"GuestSignUpDescription": "允许匿名用户以访客身份加入您的工作区,获得有限的编辑权限",
|
||||
"GuestCardsDescription": "访客加入工作区后可以交流的卡片",
|
||||
"GuestCardsArrayLabel": "选择用于交流的卡片",
|
||||
"GuestChannelsDescription": "访客加入后可以发送消息的频道",
|
||||
"GuestChannelsArrayLabel": "选择频道",
|
||||
"ManageIdentities": "管理身份",
|
||||
"Release": "释放",
|
||||
"ReleaseSocialId": "释放社交ID",
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
"@hcengineering/templates": "^0.6.11",
|
||||
"@hcengineering/workbench": "^0.6.16",
|
||||
"@hcengineering/workbench-resources": "^0.6.1",
|
||||
"@hcengineering/communication": "^0.6.0"
|
||||
"@hcengineering/communication": "^0.6.0",
|
||||
"@hcengineering/chat": "^0.6.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
import settingsRes from '../plugin'
|
||||
import communication, { GuestCommunicationSettings } from '@hcengineering/communication'
|
||||
import card, { Card } from '@hcengineering/card'
|
||||
import chat from '@hcengineering/chat'
|
||||
|
||||
let loading = true
|
||||
let isEditingName = false
|
||||
@@ -348,12 +349,13 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="flex-row-center flex-gap-4">
|
||||
<Label label={settingsRes.string.GuestCardsDescription} />
|
||||
<Label label={settingsRes.string.GuestChannelsDescription} />
|
||||
<Component
|
||||
is={card.component.CardArrayEditor}
|
||||
props={{
|
||||
_class: chat.masterTag.Channel,
|
||||
value: existingGuestChatSettings !== undefined ? existingGuestChatSettings.allowedCards : [],
|
||||
label: settingsRes.string.GuestCardsArrayLabel,
|
||||
label: settingsRes.string.GuestChannelsArrayLabel,
|
||||
onChange: onAllowedCardsChange
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -129,8 +129,8 @@ export default mergeIds(settingId, setting, {
|
||||
GuestAccess: '' as IntlString,
|
||||
GuestAccessDescription: '' as IntlString,
|
||||
GuestSignUpDescription: '' as IntlString,
|
||||
GuestCardsDescription: '' as IntlString,
|
||||
GuestCardsArrayLabel: '' as IntlString,
|
||||
GuestChannelsDescription: '' as IntlString,
|
||||
GuestChannelsArrayLabel: '' as IntlString,
|
||||
ManageIdentities: '' as IntlString,
|
||||
AddNew: '' as IntlString,
|
||||
Release: '' as IntlString,
|
||||
|
||||
@@ -140,8 +140,8 @@
|
||||
"NoRelations": "Žádné vztahy",
|
||||
"ReadOnlyWarningTitle": "✨ Anonymní hostovská ukázka",
|
||||
"ReadOnlyWarningMessage": "Jste v režimu prohlížení. Vyberte si cestu: Připojte se k tomuto prostoru pro spolupráci (jako host) nebo si vytvořte vlastní prostor pro plnou správu projektů — úkoly, termíny, tým!",
|
||||
"ReadOnlyJoinWorkspace": "Připojit se k prostoru{icon}",
|
||||
"ReadOnlySignUp": "Vytvořit prostor{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Připojit se k prostoru",
|
||||
"ReadOnlySignUp": "Vytvořit prostor",
|
||||
"PermissionWarningTitle": "✨ Zvyšte svůj přístup!",
|
||||
"PermissionWarningMessage": "Vaše současná role má omezená oprávnění. Chcete-li odemknout tuto a další pokročilé funkce, požádejte správce svého pracovního prostoru o zvýšení úrovně přístupu!",
|
||||
"Icon": "Ikona",
|
||||
|
||||
@@ -140,8 +140,8 @@
|
||||
"NoRelations": "Keine Beziehungen",
|
||||
"ReadOnlyWarningTitle": "✨ Anonymer Gast-Demo",
|
||||
"ReadOnlyWarningMessage": "Sie sind im Ansichtsmodus. Wählen Sie Ihren Weg: Treten Sie diesem Arbeitsbereich bei, um zusammenzuarbeiten (als Gast) oder erstellen Sie Ihren eigenen Bereich, um Projekte vollständig zu verwalten — Aufgaben, Fristen, Team!",
|
||||
"ReadOnlyJoinWorkspace": "Arbeitsbereich beitreten{icon}",
|
||||
"ReadOnlySignUp": "Arbeitsbereich erstellen{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Arbeitsbereich beitreten",
|
||||
"ReadOnlySignUp": "Arbeitsbereich erstellen",
|
||||
"PermissionWarningTitle": "✨ Erweitern Sie Ihren Zugriff!",
|
||||
"PermissionWarningMessage": "Ihre aktuelle Rolle hat eingeschränkte Berechtigungen. Um diese und andere erweiterte Funktionen freizuschalten, bitten Sie Ihren Arbeitsbereich-Administrator, Ihr Zugriffslevel zu erhöhen!",
|
||||
"Icon": "Symbol",
|
||||
|
||||
@@ -140,8 +140,8 @@
|
||||
"NoRelations": "No relations",
|
||||
"ReadOnlyWarningTitle": "✨ Anonymous Guest Demo",
|
||||
"ReadOnlyWarningMessage": "You're in view-only mode. Choose your path: Join this workspace to collaborate (as guest) or create your own space to fully manage projects — tasks, deadlines, team!",
|
||||
"ReadOnlyJoinWorkspace": "Join workspace{icon}",
|
||||
"ReadOnlySignUp": "Create workspace{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Join workspace",
|
||||
"ReadOnlySignUp": "Create workspace",
|
||||
"PermissionWarningTitle": "✨ Level up your access!",
|
||||
"PermissionWarningMessage": "Your current role has limited permissions. To unlock this and other advanced features, ask your workspace admin to upgrade your access level!",
|
||||
"Icon": "Icon",
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
"NoRelations": "No hay relaciones",
|
||||
"ReadOnlyWarningTitle": "✨ Demo de invitado anónimo",
|
||||
"ReadOnlyWarningMessage": "Estás en modo de solo lectura. ¡Elige tu camino: Únete a este espacio para colaborar (como invitado) o crea tu propio espacio para gestionar proyectos completamente — tareas, plazos, equipo!",
|
||||
"ReadOnlyJoinWorkspace": "Unirse al espacio{icon}",
|
||||
"ReadOnlySignUp": "Crear espacio{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Unirse al espacio",
|
||||
"ReadOnlySignUp": "Crear espacio",
|
||||
"PermissionWarningTitle": "✨ ¡Mejora tu acceso!",
|
||||
"PermissionWarningMessage": "Tu rol actual tiene permisos limitados. ¡Para desbloquear esta y otras funciones avanzadas, pídele al administrador de tu espacio de trabajo que actualice tu nivel de acceso!",
|
||||
"Icon": "Icono",
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
"NoRelations": "Aucune relation",
|
||||
"ReadOnlyWarningTitle": "✨ Démo invité anonyme",
|
||||
"ReadOnlyWarningMessage": "Vous êtes en mode consultation. Choisissez votre voie : Rejoignez cet espace pour collaborer (en tant qu'invité) ou créez votre propre espace pour gérer pleinement les projets — tâches, délais, équipe !",
|
||||
"ReadOnlyJoinWorkspace": "Rejoindre l'espace{icon}",
|
||||
"ReadOnlySignUp": "Créer un espace{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Rejoindre l'espace",
|
||||
"ReadOnlySignUp": "Créer un espace",
|
||||
"PermissionWarningTitle": "✨ Améliorez votre accès !",
|
||||
"PermissionWarningMessage": "Votre rôle actuel a des autorisations limitées. Pour débloquer cette fonctionnalité et d'autres fonctionnalités avancées, demandez à l'administrateur de votre espace de travail de mettre à jour votre niveau d'accès !",
|
||||
"Icon": "Icône",
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
"NoRelations": "Nessuna relazione",
|
||||
"ReadOnlyWarningTitle": "✨ Demo ospite anonimo",
|
||||
"ReadOnlyWarningMessage": "Sei in modalità di sola lettura. Scegli il tuo percorso: Unisciti a questo spazio per collaborare (come ospite) o crea il tuo spazio per gestire completamente i progetti — task, scadenze, team!",
|
||||
"ReadOnlyJoinWorkspace": "Unisciti allo spazio{icon}",
|
||||
"ReadOnlySignUp": "Crea spazio{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Unisciti allo spazio",
|
||||
"ReadOnlySignUp": "Crea spazio",
|
||||
"PermissionWarningTitle": "✨ Migliora il tuo accesso!",
|
||||
"PermissionWarningMessage": "Il tuo ruolo attuale ha autorizzazioni limitate. Per sbloccare questa e altre funzionalità avanzate, chiedi all'amministratore del tuo spazio di lavoro di aggiornare il tuo livello di accesso!",
|
||||
"Icon": "Icona",
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
"NoRelations": "関係なし",
|
||||
"ReadOnlyWarningTitle": "✨ 匿名ゲストデモ",
|
||||
"ReadOnlyWarningMessage": "閲覧モードです。選択してください:このワークスペースに参加して共同作業(ゲストとして)するか、独自のスペースを作成してプロジェクトを完全に管理(タスク、期限、チーム)しましょう!",
|
||||
"ReadOnlyJoinWorkspace": "ワークスペースに参加{icon}",
|
||||
"ReadOnlySignUp": "ワークスペースを作成{icon}",
|
||||
"ReadOnlyJoinWorkspace": "ワークスペースに参加",
|
||||
"ReadOnlySignUp": "ワークスペースを作成",
|
||||
"PermissionWarningTitle": "✨ アクセスレベルを上げましょう!",
|
||||
"PermissionWarningMessage": "現在のロールの権限は制限されています。この機能や他の高度な機能を利用するには、ワークスペース管理者にアクセスレベルのアップグレードを依頼してください!",
|
||||
"Icon": "アイコン",
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
"NoRelations": "Sem relações",
|
||||
"ReadOnlyWarningTitle": "✨ Demonstração anônima de convidado",
|
||||
"ReadOnlyWarningMessage": "Você está no modo de visualização. Escolha seu caminho: Junte-se a este espaço para colaborar (como convidado) ou crie seu próprio espaço para gerenciar projetos completamente — tarefas, prazos, equipe!",
|
||||
"ReadOnlyJoinWorkspace": "Entrar no espaço{icon}",
|
||||
"ReadOnlySignUp": "Criar espaço{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Entrar no espaço",
|
||||
"ReadOnlySignUp": "Criar espaço",
|
||||
"PermissionWarningTitle": "✨ Melhore seu acesso!",
|
||||
"PermissionWarningMessage": "Seu cargo atual tem permissões limitadas. Para desbloquear este e outros recursos avançados, peça ao administrador do seu espaço de trabalho para atualizar seu nível de acesso!",
|
||||
"Icon": "Ícone",
|
||||
|
||||
@@ -137,8 +137,8 @@
|
||||
"NoRelations": "Нет связей",
|
||||
"ReadOnlyWarningTitle": "✨ Анонимное гостевое демо",
|
||||
"ReadOnlyWarningMessage": "Вы в режиме просмотра. Выберите путь: Присоединитесь к этому пространству для совместной работы (как гость) или создайте свое пространство для полного управления проектами — задачи, сроки, команда!",
|
||||
"ReadOnlyJoinWorkspace": "Присоединиться к пространству{icon}",
|
||||
"ReadOnlySignUp": "Создать пространство{icon}",
|
||||
"ReadOnlyJoinWorkspace": "Присоединиться к пространству",
|
||||
"ReadOnlySignUp": "Создать пространство",
|
||||
"PermissionWarningTitle": "✨ Повысьте свой уровень доступа!",
|
||||
"PermissionWarningMessage": "Ваша текущая роль имеет ограниченные права. Чтобы разблокировать эту и другие продвинутые функции, попросите администратора вашего пространства повысить ваш уровень доступа!",
|
||||
"Icon": "Иконка",
|
||||
|
||||
@@ -140,8 +140,8 @@
|
||||
"NoRelations": "无关系",
|
||||
"ReadOnlyWarningTitle": "✨ 匿名访客演示",
|
||||
"ReadOnlyWarningMessage": "您处于只读模式。选择您的路径:加入此工作区协作(作为访客)或创建您自己的空间来完全管理项目 — 任务、截止日期、团队!",
|
||||
"ReadOnlyJoinWorkspace": "加入工作区{icon}",
|
||||
"ReadOnlySignUp": "创建工作区{icon}",
|
||||
"ReadOnlyJoinWorkspace": "加入工作区",
|
||||
"ReadOnlySignUp": "创建工作区",
|
||||
"PermissionWarningTitle": "✨ 提升您的访问权限!",
|
||||
"PermissionWarningMessage": "您当前角色的权限有限。要解锁此功能和其他高级功能,请让您的工作区管理员升级您的访问权限!",
|
||||
"Icon": "图标",
|
||||
|
||||
@@ -17,18 +17,14 @@
|
||||
{notification.subTitle}
|
||||
</svelte:fragment>
|
||||
<svelte:fragment slot="buttons">
|
||||
{#if $allowGuestSignUpStore}
|
||||
<Button
|
||||
label={view.string.ReadOnlyJoinWorkspace}
|
||||
labelParams={{ icon: ' 👥' }}
|
||||
stopPropagation={false}
|
||||
on:click={joinWorkspace}
|
||||
/>
|
||||
{:else}
|
||||
<div style="width: auto" />
|
||||
{/if}
|
||||
<a href="https://huly.io/signup" target="_blank">
|
||||
<Button label={view.string.ReadOnlySignUp} labelParams={{ icon: ' 🚀' }} stopPropagation={false} />
|
||||
</a>
|
||||
<div style="width: auto" />
|
||||
<div class="flex-between gap-2">
|
||||
{#if $allowGuestSignUpStore}
|
||||
<Button label={view.string.ReadOnlyJoinWorkspace} stopPropagation={false} on:click={joinWorkspace} />
|
||||
{/if}
|
||||
<a href="https://huly.io/signup" target="_blank">
|
||||
<Button label={view.string.ReadOnlySignUp} stopPropagation={false} kind="primary" />
|
||||
</a>
|
||||
</div>
|
||||
</svelte:fragment>
|
||||
</NotificationToast>
|
||||
|
||||
@@ -167,7 +167,6 @@
|
||||
actions.push({
|
||||
icon: setting.icon.InviteWorkspace,
|
||||
label: view.string.ReadOnlyJoinWorkspace,
|
||||
labelParams: { icon: '' },
|
||||
action: async () => {
|
||||
navigate({ path: ['login', 'join'], query: { workspace: getCurrentWorkspaceUrl() } })
|
||||
},
|
||||
@@ -177,7 +176,6 @@
|
||||
actions.push({
|
||||
icon: setting.icon.InviteWorkspace,
|
||||
label: view.string.ReadOnlySignUp,
|
||||
labelParams: { icon: '' },
|
||||
action: async () => {
|
||||
open('https://huly.io/signup')
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user