Skip to content

Commit ba4eeb0

Browse files
authored
Merge branch 'master' into 5815-signup3
2 parents fa3d0af + 7d248f2 commit ba4eeb0

File tree

12 files changed

+131
-45
lines changed

12 files changed

+131
-45
lines changed

app/assets/locales/el.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@
307307
"registration": {
308308
"registration": "Εγγραφή",
309309
"role_mapping_by_email": "Εκχώρηση ρόλου με email",
310-
"role_mapping_by_email_description": "Εκχώρηση ρόλου σε χρήστη με χρήση του email του. Πρέπει να είναι όπως: role1=email1, role2=email2",
310+
"role_mapping_by_email_description": "Κατανείμετε το ρόλο χρήστη σύμφωνα με το email. Πρέπει να έχει τη μορφή role1=email1,role2=email2",
311311
"enter_role_mapping_rule": "Εισαγάγετε ένα κανόνα εκχώρησης ρόλου",
312312
"resync_on_login": "Συγχρονισμός δεδομένων χρήστη σε κάθε σύνδεση",
313313
"resync_on_login_description": "Επανασυγχρονισμός των πληροφοριών χρήστη σε κάθε σύνδεση, υποχρεώνοντας τον εξωτερικό πάροχο αυθεντικοποίησης σε συνεχή επιβεβαίωση των πληροφοριών στο Greenlight",

app/assets/locales/fa_IR.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@
164164
"wrong_access_code": "کد دسترسی اشتباه است",
165165
"generate_viewers_access_code": "ایجاد کد دسترسی برای بینندگان",
166166
"generate_mods_access_code": "ایجاد کد دسترسی برای مدیران",
167+
"server_tag": "نوع سرور برای این اتاق انتخاب کنید",
168+
"default_tag_name": "پیش‌فرض",
169+
"server_tag_desired": "دلخواه",
170+
"server_tag_required": "الزامی است",
167171
"are_you_sure_delete_room": "آیا مطمئن هستید که می‌خواهید این اتاق را حذف کنید؟"
168172
}
169173
},
@@ -274,8 +278,8 @@
274278
"administration": {
275279
"administration": "مدیریت",
276280
"terms": "شرایط و ضوابط",
277-
"privacy": "سیاست حفظ حریم خصوصی",
278-
"privacy_policy": "سیاست حفظ حریم خصوصی",
281+
"privacy": "اطلاعیه حفظ حریم خصوصی",
282+
"privacy_policy": "اطلاعیه حفظ حریم خصوصی",
279283
"change_term_links": "تغییر پیوندهای مقررات که در پایین صفحه نمایان می‌شوند",
280284
"change_privacy_link": "پیوند حریم خصوصی که در پایین صفحه نمایان می‌شود را تغییر دهید",
281285
"helpcenter": "مرکز راهنمایی",
@@ -413,7 +417,7 @@
413417
"brand_color_updated": "رنگ برند به‌روز شده‌است.",
414418
"brand_image_updated": "تصویر برند به‌روز شده‌است.",
415419
"brand_image_deleted": "تصویر برند حذف شده‌است.",
416-
"privacy_policy_updated": "سیاست حفظ حریم خصوصی به‌روز شدهاست.",
420+
"privacy_policy_updated": "اطلاعیه حفظ حریم خصوصی به‌روز شده است.",
417421
"helpcenter_updated": "پیوند مرکز راهنمایی به‌روز شده است.",
418422
"terms_of_service_updated": "شرایط خدمات به‌روز شده‌است.",
419423
"maintenance_updated": "اعلامیهٔ حالت تعمیر به‌روز شده است."
@@ -437,6 +441,7 @@
437441
},
438442
"error": {
439443
"problem_completing_action": "این عمل نمی‌تواند تکمیل شود.\nلطفا دوباره تلاش کنید.",
444+
"server_type_unavailable": "نوع سرور مورد نظر در دسترس نیست. لطفا نوع دیگری را در تنظیمات اتاق انتخاب کنید.",
440445
"file_type_not_supported": "نوع پرونده پشتیبانی نمی‌شود.",
441446
"file_size_too_large": "اندازهٔ پرونده خیلی بزرگ است.",
442447
"file_upload_error": "پرونده نمی‌تواند بارگذاری شود.",
@@ -533,6 +538,11 @@
533538
},
534539
"url": {
535540
"invalid": "نشانی اینترنتی معتبر نیست"
541+
},
542+
"text_form": {
543+
"value": {
544+
"required": "لطفا یک پیام وارد کنید"
545+
}
536546
}
537547
},
538548
"room": {

app/assets/locales/ja.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@
164164
"wrong_access_code": "誤った接続コード",
165165
"generate_viewers_access_code": "視聴者用接続コードを作成する",
166166
"generate_mods_access_code": "司会者用接続コードを作成する",
167+
"server_tag": "この会議室のサーバタイプを選択",
168+
"default_tag_name": "通常",
169+
"server_tag_desired": "最適",
170+
"server_tag_required": "最小",
167171
"are_you_sure_delete_room": "本当にこの会議室を削除しますか?"
168172
}
169173
},
@@ -274,8 +278,8 @@
274278
"administration": {
275279
"administration": "法的根拠",
276280
"terms": "利用規約",
277-
"privacy": "プライバシーポリシー",
278-
"privacy_policy": "プライバシーポリシー",
281+
"privacy": "プライバシーに関する告知",
282+
"privacy_policy": "プライバシーに関する告知",
279283
"change_term_links": "ページ下方の利用規約へのリンクを変更する",
280284
"change_privacy_link": "ページ下方のプライバシーポリシーへのリンクを変更する",
281285
"helpcenter": "ヘルプセンター",
@@ -413,7 +417,7 @@
413417
"brand_color_updated": "サイトの基調色がアップデートされました。",
414418
"brand_image_updated": "ブランド画像がアップデートされました。",
415419
"brand_image_deleted": "ブランド画像が消去されました。",
416-
"privacy_policy_updated": "プライバシーポリシーがアップデートされました",
420+
"privacy_policy_updated": "プライバシーに関する告知がアップデートされました",
417421
"helpcenter_updated": "ヘルプセンターのリンクが更新されました。",
418422
"terms_of_service_updated": "利用規約が更新されました。",
419423
"maintenance_updated": "メンテナンスバナーが更新されました。"
@@ -437,6 +441,7 @@
437441
},
438442
"error": {
439443
"problem_completing_action": "操作をうまく完了できませんでした。\nもう一度やってみてください。",
444+
"server_type_unavailable": "希望されたサーバタイプは利用できません。別のタイプを部屋の設定から選んでください。",
440445
"file_type_not_supported": "ファイルの形式がサポートされていません。",
441446
"file_size_too_large": "ファイルが大きすぎます。",
442447
"file_upload_error": "ファイルがアップロードできません。",
@@ -533,6 +538,11 @@
533538
},
534539
"url": {
535540
"invalid": "無効なURL"
541+
},
542+
"text_form": {
543+
"value": {
544+
"required": "何かメッセージを入力してください"
545+
}
536546
}
537547
},
538548
"room": {

app/assets/locales/tr.json

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"report": "Bildir",
1515
"share": "Paylaş",
1616
"cancel": "İptal",
17+
"reset": "Sıfırla",
1718
"close": "Kapat",
1819
"delete": "Sil",
1920
"copy": "Kopyala",
@@ -163,6 +164,10 @@
163164
"wrong_access_code": "Erişim kodu yanlış",
164165
"generate_viewers_access_code": "İzleyiciler için erişim kodu oluştur",
165166
"generate_mods_access_code": "Sorumlular için erişim kodu oluştur",
167+
"server_tag": "Bu oda için bir sunucu türü seçin",
168+
"default_tag_name": "Varsayılan",
169+
"server_tag_desired": "İstenilen",
170+
"server_tag_required": "Zorunlu",
166171
"are_you_sure_delete_room": "Bu odayı silmek istediğinize emin misiniz?"
167172
}
168173
},
@@ -229,7 +234,8 @@
229234
"empty_invited_users_subtext": "Durumu çağrılmış olarak değiştirilen kullanıcılar burada görüntülenir.",
230235
"invited": {
231236
"time_sent": "Gönderilme zamanı",
232-
"valid": "Geçerli"
237+
"valid": "Geçerli",
238+
"revoke": "Geçersiz kıl"
233239
}
234240
},
235241
"server_rooms": {
@@ -272,8 +278,8 @@
272278
"administration": {
273279
"administration": "Yönetim",
274280
"terms": "Hüküm ve koşullar",
275-
"privacy": "Gizlilik ilkesi",
276-
"privacy_policy": "Gizlilik ilkesi",
281+
"privacy": "Gizlilik bildirimi",
282+
"privacy_policy": "Gizlilik bildirimi",
277283
"change_term_links": "Sayfanın altında görüntülenecek koşullar bağlantısını değiştir",
278284
"change_privacy_link": "Sayfanın altında görüntülenecek gizlilik bağlantısını değiştir",
279285
"helpcenter": "Yardım merkezi",
@@ -301,7 +307,7 @@
301307
"registration": {
302308
"registration": "Hesap açma",
303309
"role_mapping_by_email": "Roller e-postaya göre eşleştirilsin",
304-
"role_mapping_by_email_description": "Kullanıcı rollerini e-postalarına göre belirler. rol1?e-posta1, rol2=e-posta2 biçiminde olmalıdır",
310+
"role_mapping_by_email_description": "Kullanıcı rollerini e-postalarına göre belirler. rol1?e-posta1,rol2=e-posta2 biçiminde olmalıdır",
305311
"enter_role_mapping_rule": "Bir rol eşleştirme kuralı yazın",
306312
"resync_on_login": "Kullanıcı verileri her oturum açıldığında eşitlensin",
307313
"resync_on_login_description": "Bir kullanıcının bilgilerini her oturum açtığından yeniden eşitleyerek, Greenlight üzerindeki bilgilerin her zaman dış kimlik doğrulama hizmeti sağlayıcısındakiler ile aynı olmasını sağlar",
@@ -411,7 +417,7 @@
411417
"brand_color_updated": "Marka rengi güncellendi.",
412418
"brand_image_updated": "Marka görseli güncellendi.",
413419
"brand_image_deleted": "Marka görseli silindi.",
414-
"privacy_policy_updated": "Gizlilik ilkesi güncellendi.",
420+
"privacy_policy_updated": "Gizlilik bildirimi güncellendi.",
415421
"helpcenter_updated": "Yardım merkezi bağlantısı güncellendi.",
416422
"terms_of_service_updated": "Hizmet koşulları güncellendi.",
417423
"maintenance_updated": "Bakım duyurusu güncellendi."
@@ -429,11 +435,13 @@
429435
"role_permission_updated": "Rol yetkileri güncellendi."
430436
},
431437
"invitations": {
432-
"invitation_sent": "Çağrı gönderildi"
438+
"invitation_sent": "Çağrı gönderildi",
439+
"invitation_revoked": "Bir çağrı geçersiz kılındı"
433440
}
434441
},
435442
"error": {
436443
"problem_completing_action": "Bu işlem yapılırken bir sorun çıktı.\nLütfen yeniden deneyin.",
444+
"server_type_unavailable": "İstenilen sunucu türü kullanılamıyor. Lütfen oda ayarlarında başka bir tür seçin.",
437445
"file_type_not_supported": "Dosya türü desteklenmiyor.",
438446
"file_size_too_large": "Dosya boyutu çok büyük.",
439447
"file_upload_error": "Dosya yüklenemedi.",
@@ -530,6 +538,11 @@
530538
},
531539
"url": {
532540
"invalid": "Adres geçersiz"
541+
},
542+
"text_form": {
543+
"value": {
544+
"required": "Lütfen bir ileti yazın"
545+
}
533546
}
534547
},
535548
"room": {

app/controllers/api/v1/meetings_controller.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def start
3737
render_data data: BigBlueButtonApi.new(provider: current_provider).join_meeting(
3838
room: @room,
3939
name: current_user.name,
40+
user_id: fetch_bbb_user_id,
4041
avatar_url: current_user.avatar.attached? ? url_for(current_user.avatar) : nil,
4142
role: 'Moderator'
4243
), status: :created
@@ -81,6 +82,7 @@ def status
8182
data[:joinUrl] = BigBlueButtonApi.new(provider: current_provider).join_meeting(
8283
room: @room,
8384
name: current_user ? current_user.name : params[:name],
85+
user_id: fetch_bbb_user_id,
8486
avatar_url: current_user&.avatar&.attached? ? url_for(current_user.avatar) : nil,
8587
role: bbb_role
8688
)
@@ -145,6 +147,21 @@ def infer_bbb_role(mod_code:, viewer_code:, anyone_join_as_mod:)
145147
'Viewer'
146148
end
147149
end
150+
151+
def fetch_bbb_user_id
152+
return "gl-#{current_user.id}" if current_user
153+
154+
return cookies[:guest_id] if cookies[:guest_id].present?
155+
156+
guest_id = "gl-guest-#{SecureRandom.hex(12)}"
157+
158+
cookies[:guest_id] = {
159+
value: guest_id,
160+
expires: 1.day.from_now
161+
}
162+
163+
guest_id
164+
end
148165
end
149166
end
150167
end

app/javascript/components/admin/site_settings/administration/LinksForm.jsx

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
// You should have received a copy of the GNU Lesser General Public License along
1515
// with Greenlight; if not, see <http://www.gnu.org/licenses/>.
1616

17-
import React, { useEffect } from 'react';
17+
import React, { useCallback, useEffect, useRef } from 'react';
1818
import PropTypes from 'prop-types';
1919
import { Button } from 'react-bootstrap';
2020
import { useTranslation } from 'react-i18next';
@@ -29,13 +29,28 @@ export default function LinksForm({ id, value, mutation: useUpdateSiteSettingsAP
2929

3030
const { methods, fields } = useLinksForm({ defaultValues: { value } });
3131

32+
const formText = useRef('');
33+
3234
useEffect(() => {
33-
if (!methods) { return; }
34-
methods.reset({ value });
35+
if (methods) {
36+
methods.reset({ value });
37+
formText.current = value;
38+
}
3539
}, [methods, value]);
3640

41+
const handleSubmit = useCallback(
42+
(formData) => {
43+
if (formText.current !== formData[`${fields.value.hookForm.id}`]) {
44+
formText.current = formData[`${fields.value.hookForm.id}`];
45+
return updateSiteSettingsAPI.mutate(formData);
46+
}
47+
return null;
48+
},
49+
[updateSiteSettingsAPI.mutate],
50+
);
51+
3752
return (
38-
<Form id={id} methods={methods} onSubmit={updateSiteSettingsAPI.mutate}>
53+
<Form id={id} methods={methods} onSubmit={handleSubmit}>
3954
<FormControl
4055
field={fields.value}
4156
aria-describedby={`${id}-submit-btn`}

app/javascript/components/shared_components/Header.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ export default function Header() {
2929
const currentUser = useAuth();
3030

3131
let homePath = '/';
32-
if (currentUser?.permissions?.CreateRoom === 'false') {
32+
if (currentUser?.permissions?.CreateRoom === 'true') {
33+
homePath = '/rooms';
34+
} else if (currentUser?.permissions?.CreateRoom === 'false') {
3335
homePath = '/home';
3436
}
3537

app/services/big_blue_button_api.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,13 @@ def start_meeting(room:, options: {}, presentation_url: nil)
4444
end
4545
end
4646

47-
def join_meeting(room:, role:, name: nil, avatar_url: nil)
47+
def join_meeting(room:, role:, user_id:, name: nil, avatar_url: nil)
4848
bbb_server.join_meeting_url(
4949
room.meeting_id,
5050
name,
5151
'', # empty password -> use the role passed ing
5252
{
53+
userId: user_id,
5354
role:,
5455
avatarURL: avatar_url,
5556
createTime: room.last_session&.to_datetime&.strftime('%Q')

app/services/meeting_starter.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@ def computed_options(access_code:)
6969
logoutURL: room_url,
7070
meta_endCallbackUrl: meeting_ended_url(host: @base_url),
7171
'meta_bbb-recording-ready-url': recording_ready_url(host: @base_url),
72-
'meta_bbb-origin-version': ENV.fetch('VERSION_TAG', 'v3'),
7372
'meta_bbb-origin': 'greenlight',
74-
'meta_bbb-origin-server-name': URI(@base_url).host
73+
'meta_bbb-origin-server-name': URI(@base_url).host,
74+
'meta_bbb-origin-version': ENV.fetch('VERSION_TAG', 'v3'),
75+
'meta_bbb-context-name': @room.name,
76+
'meta_bbb-context-id': @room.friendly_id
7577
}
7678
end
7779

config/locales/tr.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,23 @@
4747

4848
tr:
4949
opengraph:
50-
description: "Sorunsuz sanal işbirliği ve çevrim içi öğrenme deneyimi sağlayan, güvenilir açık kaynaklı İnternet konferansı çözümü BigBlueButton uygulamasını kullanarak öğrenin."
50+
description: "Sorunsuz sanal işbirliği ve çevrim içi öğrenme deneyimleri sağlayan, güvenilir ve açık kaynaklı İnternet üzerinden görüşme çözümü BigBlueButton uygulamasını kullanarak öğrenin."
5151
meeting:
52-
moderator_message: "Toplantıya çağırmak istediğiniz kişilere bu bağlantıyı gönderin:"
52+
moderator_message: "Toplantıya katılmasını istediğiniz kişilere bu bağlantıyı gönderin: "
5353
access_code: "Erişim kodu: %{code}"
5454
email:
5555
activation:
5656
account_activation: Hesap etkinleştirme
5757
welcome_to_bbb: BigBlueButton uygulamasına hoş geldiniz!
58-
get_started: Lütfen başlamak için aşağıdaki düğmeye tıklayarak hesabınızı etkinleştirin.
58+
get_started: "Başlamak için, lütfen aşağıdaki düğmeye tıklayarak hesabınızı etkinleştirin."
5959
activate_account: Hesabı etkinleştir
60-
link_expires: Bu bağlantı 24 saat sonra geçersiz olacak.
61-
if_link_expires: "Bağlantının süresi geçerse, yeni bir etkinleştirme e-postası almak için oturum açın."
60+
link_expires: Bağlantı 24 saat sonra geçersiz olacak.
61+
if_link_expires: Bağlantının süresi geçerse oturum açarak yeni bir etkinleştirme e-postası alın.
6262
invitation:
6363
invitation_to_join: BigBlueButton çağrısı
6464
you_have_been_invited: "%{name} tarafından bir BigBlueButton hesabı açmaya çağrıldınız."
6565
get_started: Hesap açmak için aşağıdaki düğmeye tıklayın ve yönergeleri izleyin.
66-
valid_invitation: Çağrı 24 saat boyunca geçerlidir.
66+
valid_invitation: Çağrı 7 gün boyunca geçerlidir.
6767
sign_up: Hesap aç
6868
new_user_signup:
6969
new_user: Yeni BigBlueButton kullanıcı hesabı açılışı
@@ -74,10 +74,10 @@ tr:
7474
take_action: "Yeni kullanıcıyı görüntülemek ya da gerekli işlemi yapmak için yönetim panosuna gidin"
7575
reset:
7676
password_reset: Parolayı sıfırla
77-
password_reset_requested: "%{email} e-posta adresi için parola sıfırlama isteğinde bulunuldu."
77+
password_reset_requested: "%{email} için bir parola sıfırlama isteğinde bulunuldu."
7878
password_reset_confirmation: Parolanızı sıfırlamak için aşağıdaki düğmeye tıklayın.
7979
reset_password: Parolayı sıfırla
8080
link_expires: Bağlantı 1 saat sonra geçersiz olacak.
81-
ignore_request: Parolanızı değiştirme isteğinde bulunmadıysanız bu e-postayı yok sayabilirsiniz.
81+
ignore_request: Parola değiştirme isteğinde bulunmadıysanız bu e-postayı yok sayabilirsiniz.
8282
room:
8383
new_room_name: "%{username} kullanıcısının odası"

0 commit comments

Comments
 (0)