Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 36 additions & 2 deletions models/contact/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ import {
type SocialIdentity,
type Status,
type SocialIdentityProvider,
type Translation
type Translation,
type WorkspaceMemberStatus
} from '@hcengineering/contact'
import {
AccountRole,
Expand All @@ -52,6 +53,7 @@ import {
type PersonId,
type PersonUuid,
type Ref,
type Space,
type Timestamp
} from '@hcengineering/core'
import { createSystemType } from '@hcengineering/model-card'
Expand All @@ -72,6 +74,7 @@ import {
TypeRef,
TypeString,
TypeTimestamp,
TypeAccountUuid,
UX,
type Builder
} from '@hcengineering/model'
Expand Down Expand Up @@ -301,6 +304,24 @@ export class TTranslation extends TPreference implements Translation {
dontTranslate!: string[]
}

@Model(contact.class.WorkspaceMemberStatus, core.class.Doc, DOMAIN_CONTACT)
@UX(contact.string.WorkspaceStatusNote, contact.icon.User)
export class TWorkspaceMemberStatus extends TDoc implements WorkspaceMemberStatus {
@Prop(TypeRef(core.class.Space), core.string.Space)
@Index(IndexKind.Indexed)
declare space: Ref<Space>

@Prop(TypeAccountUuid(), core.string.Members)
@Index(IndexKind.Indexed)
user!: AccountUuid

@Prop(TypeString(), core.string.Description)
message!: string

@Prop(TypeTimestamp(), contact.string.StatusDueDate)
clearAt?: Timestamp
}

export function createModel (builder: Builder): void {
builder.createModel(
TAvatarProvider,
Expand All @@ -317,13 +338,20 @@ export function createModel (builder: Builder): void {
TContactsTab,
TPersonSpace,
TUserRole,
TTranslation
TTranslation,
TWorkspaceMemberStatus
)

builder.mixin(contact.class.PersonSpace, core.class.Class, core.mixin.TxAccessLevel, {
createAccessLevel: AccountRole.Guest
})

builder.mixin(contact.class.WorkspaceMemberStatus, core.class.Class, core.mixin.TxAccessLevel, {
createAccessLevel: AccountRole.Guest,
updateAccessLevel: AccountRole.Guest,
removeAccessLevel: AccountRole.Guest
})

builder.mixin(contact.class.Person, core.class.Class, core.mixin.TxAccessLevel, {
createAccessLevel: AccountRole.Guest,
isIdentity: true
Expand Down Expand Up @@ -1401,6 +1429,12 @@ export function createModel (builder: Builder): void {
_class: 1,
[contact.mixin.Employee + '.active']: 1
}
},
{
keys: {
_class: 1,
user: 1
}
}
],
disabled: [{ attachedToClass: 1 }, { modifiedBy: 1 }, { createdBy: 1 }, { createdOn: -1 }, { attachedTo: 1 }]
Expand Down
26 changes: 25 additions & 1 deletion plugins/contact-assets/lang/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@
"ViewProfile": "Zobrazit profil",
"Viber": "Viber",
"ViberPlaceholder": "Viber",
"SocialId": "Sociální ID",
"SocialIds": "Sociální ID",
"Type": "Typ",
"Confirmed": "Potvrzeno",
"UserProfile": "Uživatelský profil",
"DeactivatedAccount": "Deaktivovaný účet",
"LocalTime": "místní čas",
Expand All @@ -125,6 +129,26 @@
"TranslateTo": "Přeložit do",
"DontTranslate": "Nepřekládat",
"SelectLanguage": "Vyberte jazyk",
"SelectLanguages": "Vyberte jazyky"
"SelectLanguages": "Vyberte jazyky",
"WorkspaceStatusNote": "Stav uživatele",
"WorkspaceStatusUntil": "Zobrazit do",
"WorkspaceStatusMenu": "Váš stav",
"WorkspaceStatusSetYour": "Nastavte svůj stav",
"WorkspaceStatusUpdateYour": "Aktualizujte svůj stav",
"WorkspaceStatusMessage": "Jaký je váš stav?",
"WorkspaceStatusAway": "Pryč",
"WorkspaceStatusVacation": "Na dovolené",
"WorkspaceStatusOutSick": "Nemoc",
"WorkspaceStatusClear": "Vymazat stav",
"WorkspaceStatusSave": "Uložit",
"WorkspaceStatusQuickPick": "Rychlé stavy",
"WorkspaceStatusComposeHint": "Krátká poznámka (volitelné)",
"WorkspaceStatusClearUntil": "Vymazat datum",
"WorkspaceStatusDoNotClear": "Stav automaticky nečistit",
"WorkspaceStatusIn30Min": "Za 30 minut",
"WorkspaceStatusIn1Hour": "Za 1 hodinu",
"WorkspaceStatusIn4Hours": "Za 4 hodiny",
"WorkspaceStatusEndOfDay": "Do konce dne",
"WorkspaceStatusPickDate": "Vyberte datum"
}
}
26 changes: 25 additions & 1 deletion plugins/contact-assets/lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@
"ViewProfile": "Profil anzeigen",
"Viber": "Viber",
"ViberPlaceholder": "Viber",
"SocialId": "Social-ID",
"SocialIds": "Social-IDs",
"Type": "Typ",
"Confirmed": "Bestätigt",
"UserProfile": "Benutzerprofil",
"DeactivatedAccount": "Deaktivierter Account",
"LocalTime": "Ortszeit",
Expand All @@ -125,6 +129,26 @@
"TranslateTo": "Übersetzen in",
"DontTranslate": "Nicht übersetzen",
"SelectLanguage": "Sprache auswählen",
"SelectLanguages": "Sprachen auswählen"
"SelectLanguages": "Sprachen auswählen",
"WorkspaceStatusNote": "Benutzerstatus",
"WorkspaceStatusUntil": "Anzeigen bis",
"WorkspaceStatusMenu": "Ihr Status",
"WorkspaceStatusSetYour": "Status festlegen",
"WorkspaceStatusUpdateYour": "Status aktualisieren",
"WorkspaceStatusMessage": "Wie lautet Ihr Status?",
"WorkspaceStatusAway": "Abwesend",
"WorkspaceStatusVacation": "Im Urlaub",
"WorkspaceStatusOutSick": "Krank",
"WorkspaceStatusClear": "Status löschen",
"WorkspaceStatusSave": "Speichern",
"WorkspaceStatusQuickPick": "Schnellauswahl",
"WorkspaceStatusComposeHint": "Kurze Notiz hinzufügen (optional)",
"WorkspaceStatusClearUntil": "Datum löschen",
"WorkspaceStatusDoNotClear": "Status nicht automatisch löschen",
"WorkspaceStatusIn30Min": "In 30 Minuten",
"WorkspaceStatusIn1Hour": "In 1 Stunde",
"WorkspaceStatusIn4Hours": "In 4 Stunden",
"WorkspaceStatusEndOfDay": "Ende des Tages",
"WorkspaceStatusPickDate": "Datum wählen"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Translate to",
"DontTranslate": "Don't translate",
"SelectLanguage": "Select language",
"SelectLanguages": "Select languages"
"SelectLanguages": "Select languages",
"WorkspaceStatusNote": "User status",
"WorkspaceStatusUntil": "Show until",
"WorkspaceStatusMenu": "Your status",
"WorkspaceStatusSetYour": "Set your status",
"WorkspaceStatusUpdateYour": "Update your status",
"WorkspaceStatusMessage": "What is your status?",
"WorkspaceStatusAway": "Away",
"WorkspaceStatusVacation": "On vacation",
"WorkspaceStatusOutSick": "Out sick",
"WorkspaceStatusClear": "Clear status",
"WorkspaceStatusSave": "Save",
"WorkspaceStatusQuickPick": "Quick statuses",
"WorkspaceStatusComposeHint": "Add a short note (optional)",
"WorkspaceStatusClearUntil": "Clear date",
"WorkspaceStatusDoNotClear": "Do not clear status",
"WorkspaceStatusIn30Min": "In 30 minutes",
"WorkspaceStatusIn1Hour": "In 1 hour",
"WorkspaceStatusIn4Hours": "In 4 hours",
"WorkspaceStatusEndOfDay": "End of day",
"WorkspaceStatusPickDate": "Choose date"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Traducir a",
"DontTranslate": "No traducir",
"SelectLanguage": "Seleccionar idioma",
"SelectLanguages": "Seleccionar idiomas"
"SelectLanguages": "Seleccionar idiomas",
"WorkspaceStatusNote": "Estado del usuario",
"WorkspaceStatusUntil": "Mostrar hasta",
"WorkspaceStatusMenu": "Tu estado",
"WorkspaceStatusSetYour": "Establecer tu estado",
"WorkspaceStatusUpdateYour": "Actualizar tu estado",
"WorkspaceStatusMessage": "¿Cuál es tu estado?",
"WorkspaceStatusAway": "Ausente",
"WorkspaceStatusVacation": "De vacaciones",
"WorkspaceStatusOutSick": "De baja por enfermedad",
"WorkspaceStatusClear": "Borrar estado",
"WorkspaceStatusSave": "Guardar",
"WorkspaceStatusQuickPick": "Estados rápidos",
"WorkspaceStatusComposeHint": "Añade una nota breve (opcional)",
"WorkspaceStatusClearUntil": "Borrar fecha",
"WorkspaceStatusDoNotClear": "No borrar el estado automáticamente",
"WorkspaceStatusIn30Min": "En 30 minutos",
"WorkspaceStatusIn1Hour": "En 1 hora",
"WorkspaceStatusIn4Hours": "En 4 horas",
"WorkspaceStatusEndOfDay": "Fin del día",
"WorkspaceStatusPickDate": "Elegir fecha"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Traduire en",
"DontTranslate": "Ne pas traduire",
"SelectLanguage": "Sélectionner la langue",
"SelectLanguages": "Sélectionner les langues"
"SelectLanguages": "Sélectionner les langues",
"WorkspaceStatusNote": "Statut utilisateur",
"WorkspaceStatusUntil": "Afficher jusqu’au",
"WorkspaceStatusMenu": "Votre statut",
"WorkspaceStatusSetYour": "Définir votre statut",
"WorkspaceStatusUpdateYour": "Mettre à jour votre statut",
"WorkspaceStatusMessage": "Quel est votre statut ?",
"WorkspaceStatusAway": "Absent",
"WorkspaceStatusVacation": "En congé",
"WorkspaceStatusOutSick": "Malade",
"WorkspaceStatusClear": "Effacer le statut",
"WorkspaceStatusSave": "Enregistrer",
"WorkspaceStatusQuickPick": "Statuts rapides",
"WorkspaceStatusComposeHint": "Ajouter une courte note (facultatif)",
"WorkspaceStatusClearUntil": "Effacer la date",
"WorkspaceStatusDoNotClear": "Ne pas effacer le statut automatiquement",
"WorkspaceStatusIn30Min": "Dans 30 minutes",
"WorkspaceStatusIn1Hour": "Dans 1 heure",
"WorkspaceStatusIn4Hours": "Dans 4 heures",
"WorkspaceStatusEndOfDay": "Fin de journée",
"WorkspaceStatusPickDate": "Choisir une date"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Traduci in",
"DontTranslate": "Non tradurre",
"SelectLanguage": "Seleziona lingua",
"SelectLanguages": "Seleziona lingue"
"SelectLanguages": "Seleziona lingue",
"WorkspaceStatusNote": "Stato utente",
"WorkspaceStatusUntil": "Mostra fino al",
"WorkspaceStatusMenu": "Il tuo stato",
"WorkspaceStatusSetYour": "Imposta il tuo stato",
"WorkspaceStatusUpdateYour": "Aggiorna il tuo stato",
"WorkspaceStatusMessage": "Qual è il tuo stato?",
"WorkspaceStatusAway": "Assente",
"WorkspaceStatusVacation": "In ferie",
"WorkspaceStatusOutSick": "Malato",
"WorkspaceStatusClear": "Cancella stato",
"WorkspaceStatusSave": "Salva",
"WorkspaceStatusQuickPick": "Stati rapidi",
"WorkspaceStatusComposeHint": "Aggiungi una breve nota (facoltativo)",
"WorkspaceStatusClearUntil": "Cancella data",
"WorkspaceStatusDoNotClear": "Non cancellare lo stato automaticamente",
"WorkspaceStatusIn30Min": "Tra 30 minuti",
"WorkspaceStatusIn1Hour": "Tra 1 ora",
"WorkspaceStatusIn4Hours": "Tra 4 ore",
"WorkspaceStatusEndOfDay": "Fine giornata",
"WorkspaceStatusPickDate": "Scegli data"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "翻訳先",
"DontTranslate": "翻訳しない",
"SelectLanguage": "言語を選択",
"SelectLanguages": "言語を選択"
"SelectLanguages": "言語を選択",
"WorkspaceStatusNote": "ユーザーステータス",
"WorkspaceStatusUntil": "表示期限",
"WorkspaceStatusMenu": "あなたのステータス",
"WorkspaceStatusSetYour": "ステータスを設定",
"WorkspaceStatusUpdateYour": "ステータスを更新",
"WorkspaceStatusMessage": "ステータスは何ですか?",
"WorkspaceStatusAway": "離席中",
"WorkspaceStatusVacation": "休暇中",
"WorkspaceStatusOutSick": "病欠",
"WorkspaceStatusClear": "ステータスをクリア",
"WorkspaceStatusSave": "保存",
"WorkspaceStatusQuickPick": "クイックステータス",
"WorkspaceStatusComposeHint": "短いメモを追加(任意)",
"WorkspaceStatusClearUntil": "日付をクリア",
"WorkspaceStatusDoNotClear": "ステータスを自動ではクリアしない",
"WorkspaceStatusIn30Min": "30分後",
"WorkspaceStatusIn1Hour": "1時間後",
"WorkspaceStatusIn4Hours": "4時間後",
"WorkspaceStatusEndOfDay": "今日の終わりまで",
"WorkspaceStatusPickDate": "日付を選択"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Traduzir para",
"DontTranslate": "Não traduzir",
"SelectLanguage": "Selecionar idioma",
"SelectLanguages": "Selecionar idiomas"
"SelectLanguages": "Selecionar idiomas",
"WorkspaceStatusNote": "Status do usuário",
"WorkspaceStatusUntil": "Mostrar até",
"WorkspaceStatusMenu": "Seu status",
"WorkspaceStatusSetYour": "Definir seu status",
"WorkspaceStatusUpdateYour": "Atualizar seu status",
"WorkspaceStatusMessage": "Qual é o seu status?",
"WorkspaceStatusAway": "Ausente",
"WorkspaceStatusVacation": "De férias",
"WorkspaceStatusOutSick": "Afastado por saúde",
"WorkspaceStatusClear": "Limpar status",
"WorkspaceStatusSave": "Salvar",
"WorkspaceStatusQuickPick": "Status rápidos",
"WorkspaceStatusComposeHint": "Adicione uma nota curta (opcional)",
"WorkspaceStatusClearUntil": "Limpar data",
"WorkspaceStatusDoNotClear": "Não limpar o status automaticamente",
"WorkspaceStatusIn30Min": "Em 30 minutos",
"WorkspaceStatusIn1Hour": "Em 1 hora",
"WorkspaceStatusIn4Hours": "Em 4 horas",
"WorkspaceStatusEndOfDay": "Fim do dia",
"WorkspaceStatusPickDate": "Escolher data"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Traduzir para",
"DontTranslate": "Não traduzir",
"SelectLanguage": "Selecionar idioma",
"SelectLanguages": "Selecionar idiomas"
"SelectLanguages": "Selecionar idiomas",
"WorkspaceStatusNote": "Estado do utilizador",
"WorkspaceStatusUntil": "Mostrar até",
"WorkspaceStatusMenu": "O seu estado",
"WorkspaceStatusSetYour": "Definir o seu estado",
"WorkspaceStatusUpdateYour": "Atualizar o seu estado",
"WorkspaceStatusMessage": "Qual é o seu estado?",
"WorkspaceStatusAway": "Ausente",
"WorkspaceStatusVacation": "De férias",
"WorkspaceStatusOutSick": "Baixa por doença",
"WorkspaceStatusClear": "Limpar estado",
"WorkspaceStatusSave": "Guardar",
"WorkspaceStatusQuickPick": "Estados rápidos",
"WorkspaceStatusComposeHint": "Adicionar uma nota breve (opcional)",
"WorkspaceStatusClearUntil": "Limpar data",
"WorkspaceStatusDoNotClear": "Não limpar o estado automaticamente",
"WorkspaceStatusIn30Min": "Em 30 minutos",
"WorkspaceStatusIn1Hour": "Em 1 hora",
"WorkspaceStatusIn4Hours": "Em 4 horas",
"WorkspaceStatusEndOfDay": "Fim do dia",
"WorkspaceStatusPickDate": "Escolher data"
}
}
22 changes: 21 additions & 1 deletion plugins/contact-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,26 @@
"TranslateTo": "Переводить на",
"DontTranslate": "Не переводить",
"SelectLanguage": "Выберите язык",
"SelectLanguages": "Выберите языки"
"SelectLanguages": "Выберите языки",
"WorkspaceStatusNote": "Статус пользователя",
"WorkspaceStatusUntil": "Показывать до",
"WorkspaceStatusMenu": "Ваш статус",
"WorkspaceStatusSetYour": "Установить статус",
"WorkspaceStatusUpdateYour": "Обновить статус",
"WorkspaceStatusMessage": "Какой ваш статус?",
"WorkspaceStatusAway": "Отошёл",
"WorkspaceStatusVacation": "В отпуске",
"WorkspaceStatusOutSick": "На больничном",
"WorkspaceStatusClear": "Очистить статус",
"WorkspaceStatusSave": "Сохранить",
"WorkspaceStatusQuickPick": "Быстрые статусы",
"WorkspaceStatusComposeHint": "Краткая заметка (необязательно)",
"WorkspaceStatusClearUntil": "Сбросить дату",
"WorkspaceStatusDoNotClear": "Не сбрасывать статус автоматически",
"WorkspaceStatusIn30Min": "Через 30 минут",
"WorkspaceStatusIn1Hour": "Через 1 час",
"WorkspaceStatusIn4Hours": "Через 4 часа",
"WorkspaceStatusEndOfDay": "До конца дня",
"WorkspaceStatusPickDate": "Выбрать дату"
}
}
Loading
Loading