Merge remote-tracking branch 'origin/develop' into release-candidate

This commit is contained in:
Guilherme Gazzo 2022-12-04 23:23:03 -03:00
commit 5d3c2ce598
15 changed files with 72397 additions and 100580 deletions

View File

@ -203,5 +203,12 @@
"contributors": [
"ggazzo"
]
}],
"5.3.3": [{
"title": "[FIX] Security Hotfix (https://docs.rocket.chat/guides/security/security-updates)",
"userLogin": "ggazzo",
"contributors": [
"ggazzo"
]
}]
}

166577
.github/history.json vendored

File diff suppressed because it is too large Load Diff

6255
HISTORY.md

File diff suppressed because it is too large Load Diff

View File

@ -114,7 +114,6 @@ export class AppSchedulerBridge extends SchedulerBridge {
private async scheduleOnceAfterRegister(job: IOnetimeSchedule, appId: string): Promise<void | string> {
const scheduledJobs = await this.scheduler.jobs({ name: job.id, type: 'normal' }, {}, 1);
if (!scheduledJobs.length) {
return this.scheduleOnce(job, appId);
}

View File

@ -1,2 +0,0 @@
import './username/username.html';
import './username/username';

View File

@ -1 +1 @@
export * from './client/index';
import './username/username.ts';

View File

@ -1,15 +1,15 @@
import { Meteor } from 'meteor/meteor';
import { ReactiveVar } from 'meteor/reactive-var';
import { Template } from 'meteor/templating';
import { Tracker } from 'meteor/tracker';
import type { Blaze } from 'meteor/blaze';
import { escapeHTML } from '@rocket.chat/string-helpers';
import { settings } from '../../../settings/client';
import { Button } from '../../../ui/client';
import { t } from '../../../utils/client';
import { callbacks } from '../../../../lib/callbacks';
import { dispatchToastMessage } from '../../../../client/lib/toast';
import { settings } from '../../settings/client';
import { Button } from '../../ui/client';
import { t } from '../../utils/client';
import { callbacks } from '../../../lib/callbacks';
import { dispatchToastMessage } from '../../../client/lib/toast';
import './username.html';
type UsernameTemplateInstance = Blaze.TemplateInstance<Record<string, never>> & {
customFields: ReactiveVar<Record<
@ -32,7 +32,6 @@ type UsernameTemplateInstance = Blaze.TemplateInstance<Record<string, never>> &
}>;
validate: () => unknown;
};
Template.username.onCreated(function (this: UsernameTemplateInstance) {
this.customFields = new ReactiveVar(null);
this.username = new ReactiveVar({
@ -40,7 +39,7 @@ Template.username.onCreated(function (this: UsernameTemplateInstance) {
username: '',
});
Tracker.autorun(() => {
this.autorun(() => {
const accountsCustomFields = settings.get('Accounts_CustomFields');
if (typeof accountsCustomFields === 'string' && accountsCustomFields.trim() !== '') {
try {

View File

@ -1,4 +1,5 @@
import { Template } from 'meteor/templating';
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import { UserAction } from '../../../ui/client';
import { t } from '../../../utils/client';
@ -17,43 +18,57 @@ Template.userActionIndicator.helpers({
const activities = Object.entries(roomAction);
const userActions = activities
.map(([key, _users]) => {
const users = Object.keys(_users);
if (users.length === 0) {
.map(
([key, _users]):
| {
action?: TranslationKey;
users?: string;
end: false | true;
}
| undefined => {
const users = Object.keys(_users);
if (users.length === 0) {
return {
end: false,
};
}
const action = key.split('-')[1];
if (action !== 'typing' && action !== 'recording' && action !== 'uploading') {
return undefined;
}
if (users.length === 1) {
return {
action: `is_${action}`,
users: users[0],
end: false,
};
}
let last = users.pop();
if (users.length >= maxUsernames) {
last = t('others');
}
const usernames = [users.slice(0, maxUsernames - 1).join(', '), last];
return {
action: `are_${action}`,
users: usernames.join(` ${t('and')} `),
end: false,
};
}
const action = key.split('-')[1];
if (users.length === 1) {
return {
action: `is_${action}`,
users: users[0],
end: false,
};
}
let last = users.pop();
if (users.length >= maxUsernames) {
last = t('others');
}
const usernames = [users.slice(0, maxUsernames - 1).join(', '), last];
return {
action: `are_${action}`,
users: usernames.join(` ${t('and')} `),
end: false,
};
})
.filter((i) => i.action);
},
)
.filter((i) => i && 'action' in i);
if (!Object.keys(userActions).length) {
return [];
}
// insert end=true for the last item.
userActions[userActions.length - 1].end = true;
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
userActions[userActions.length - 1]!.end = true;
return userActions;
},
});

View File

@ -55,7 +55,7 @@ import '../app/tokenpass/client';
import '../app/ui/client';
import '../app/ui-account/client';
import '../app/ui-clean-history/client';
import '../app/ui-login/client';
import '../app/ui-login';
import '../app/ui-master/client';
import '../app/ui-message/client';
import '../app/ui-sidenav/client';

View File

@ -592,6 +592,10 @@
"archive-room": "Archive Room",
"archive-room_description": "Permission to archive a channel",
"are_typing": "are typing",
"are_uploading": "are uploading",
"are_recording": "are recording",
"is_uploading": "is uploading",
"is_recording": "is recording",
"Are_you_sure": "Are you sure?",
"Are_you_sure_you_want_to_clear_all_unread_messages": "Are you sure you want to clear all unread messages?",
"Are_you_sure_you_want_to_close_this_chat": "Are you sure you want to close this chat?",

View File

@ -3312,7 +3312,7 @@
"Msgs": "Wiadomości",
"multi": "multi",
"multi_line": "linia multi",
"Multiple_monolith_instances_alert": "Obsługujesz wiele instancji... niektóre funkcje nie będą zachowywać się zgodnie z projektem.",
"Multiple_monolith_instances_alert": null,
"Mute": "Wyciszenie",
"Mute_and_dismiss": "Wycisz i odrzuć",
"Mute_all_notifications": "Wycisz wszystkie powiadomienia",
@ -5393,4 +5393,4 @@
"onboarding.form.standaloneServerForm.publishOwnApp": "W celu wysyłania powiadomień push należy skompilować i opublikować własną aplikację w Google Play i App Store",
"onboarding.form.standaloneServerForm.manuallyIntegrate": "Konieczność ręcznej integracji z usługami zewnętrznymi",
"Something_Went_Wrong": "Coś poszło nie tak"
}
}

28
fuselage.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
if [[ $1 != "undo" ]]; then
echo "linking local project"
else
echo "unlinking local project"
fi
cd ./node_modules/@rocket.chat
rm -rf fuselage
if [[ $1 != "undo" ]]; then
ln -s ../../../fuselage/packages/fuselage fuselage
fi
cd ../..
cd ./apps/meteor/node_modules/@rocket.chat
rm -rf fuselage
if [[ $1 != "undo" ]]; then
echo "linking local project"
ln -s ../../../../../fuselage/packages/fuselage fuselage
fi
cd ../../../../
if [[ $1 == "undo" ]]; then
yarn
fi

View File

@ -13,7 +13,8 @@
"dev": "turbo run dev --parallel --filter=@rocket.chat/meteor...",
"dsv": "turbo run dsv --filter=@rocket.chat/meteor...",
"lint": "turbo run lint",
"storybook": "yarn workspace @rocket.chat/meteor run storybook"
"storybook": "yarn workspace @rocket.chat/meteor run storybook",
"fuselage": "./fuselage.sh"
},
"devDependencies": {
"@types/chart.js": "^2.9.37",

View File

@ -103,6 +103,9 @@ export const LoginForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRoute
<TextInput
{...register('username', {
required: true,
onChange: () => {
clearErrors(['username', 'password']);
},
})}
placeholder={t('registration.component.form.emailPlaceholder')}
error={
@ -124,6 +127,9 @@ export const LoginForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRoute
<PasswordInput
{...register('password', {
required: true,
onChange: () => {
clearErrors(['username', 'password']);
},
})}
error={
errors.password?.message ||