From cbd96fd8f240fec1ab86c22b1f61eafbb3db1f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Fri, 8 May 2026 11:38:57 +0300 Subject: [PATCH] =?UTF-8?q?Video=20Rooms=20d=C3=BCzenlemesi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Seeds/LanguagesData.json | 312 ++++++++++- .../Seeds/MenusData.json | 26 +- .../listForm/wizard/WizardFileManager.tsx | 15 +- ui/src/views/admin/videoroom/Dashboard.tsx | 28 +- ui/src/views/admin/videoroom/RoomList.tsx | 518 ++++++++++-------- ui/src/views/intranet/widgets/EventModal.tsx | 11 +- ui/src/views/intranet/widgets/SurveyModal.tsx | 14 +- 7 files changed, 667 insertions(+), 257 deletions(-) diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json index 7acc7df..30e40ef 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json @@ -3636,6 +3636,48 @@ "en": "Audit Logs", "tr": "Audit Günlükleri" }, + { + "resourceName": "Platform", + "key": "App.Videoroom.RoleSelector", + "en": "Please select your role", + "tr": "Lütfen rolünüzü seçin" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.Host", + "en": "Host", + "tr": "Oda Sahibi" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.HostDescription", + "en": "The host creates the room, starts the session, manages participants and views reports.", + "tr": "Odayı oluşturur, oturumu başlatır, katılımcıları yönetir ve raporları görüntüler." + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.Participant", + "en": "Participant", + "tr": "Katılımcı" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.ParticipantDescription", + "en": "Joins active rooms and interacts with the host and other participants.", + "tr": "Aktif odalara katılır, oda sahibi ve diğer katılımcılarla etkileşim kurar." + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.Observer", + "en": "Observer", + "tr": "İzleyici" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.ObserverDescription", + "en": "Joins active rooms and observes without interacting.", + "tr": "Aktif odalara katılır, ancak etkileşimde bulunmaz." + }, { "resourceName": "Platform", "key": "App.Videoroom", @@ -3663,8 +3705,230 @@ { "resourceName": "Platform", "key": "App.Videoroom.Planning", - "en": "Video Room Planning", - "tr": "Video Oda Planlama" + "en": "Planning", + "tr": "Planlama" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.NewRoom", + "en": "New Room", + "tr": "Yeni Oda Oluştur" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.TotalRooms", + "en": "Total Rooms", + "tr": "Toplam Oda" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.ActiveRooms", + "en": "Active Rooms", + "tr": "Aktif Oda" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.OpenRooms", + "en": "Open Rooms", + "tr": "Katılıma Açık" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.PassiveRooms", + "en": "Passive Rooms", + "tr": "Pasif Oda" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.TotalParticipants", + "en": "Total Participants", + "tr": "Toplam Katılımcı" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.RoomSettings", + "en": "Room Settings", + "tr": "Oda Ayarları" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.ParticipantPermissions", + "en": "Participant Permissions", + "tr": "Katılımcı İzinleri" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.AllowHandRaise", + "en": "Allow Hand Raise", + "tr": "Parmak Kaldırma İzni" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.AllowStudentChat", + "en": "Allow Student Chat", + "tr": "Öğrenci Sohbet İzni" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.AllowPrivateMessages", + "en": "Allow Private Messages", + "tr": "Özel Mesaj İzni" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.DefaultSettings", + "en": "Default Settings", + "tr": "Varsayılan Ayarlar" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.AllowStudentScreenShare", + "en": "Allow Student Screen Share", + "tr": "Öğrenci Ekran Paylaşımı" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.MicrophoneMuted", + "en": "Microphone Muted", + "tr": "Mikrofon Kapalı" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.MicrophoneUnmuted", + "en": "Microphone Unmuted", + "tr": "Mikrofon Açık" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.DefaultMicrophoneState", + "en": "Microphone State", + "tr": "Mikrofon Durumu" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.DefaultCameraState", + "en": "Camera State", + "tr": "Kamera Durumu" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.CameraOn", + "en": "Camera On", + "tr": "Kamera Açık" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.DefaultLayout", + "en": "Default Layout", + "tr": "Varsayılan Layout" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.LayoutGridView", + "en": "Grid View", + "tr": "Izgara Görünümü" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.LayoutTeacherFocus", + "en": "Teacher Focus", + "tr": "Öğretmen Odaklı" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.LayoutPresentation", + "en": "Presentation", + "tr": "Sunum Modu" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.LayoutSidebar", + "en": "Sidebar", + "tr": "Yan Panel" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.DeleteRoom", + "en": "Delete Room", + "tr": "Odayı Sil" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.DeleteRoomWarning", + "en": "This action cannot be undone", + "tr": "Bu işlem geri alınamaz" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.AutomaticallyMuteNewParticipants", + "en": "Automatically Mute New Participants", + "tr": "Yeni katılımcıları otomatik sustur" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.Start", + "en": "Start", + "tr": "Başlat" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.Join", + "en": "Join", + "tr": "Katıl" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.CreateRoom", + "en": "Create Room", + "tr": "Oda Oluştur" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.EditRoom", + "en": "Edit Room", + "tr": "Odayı Düzenle" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.SaveChanges", + "en": "Save Changes", + "tr": "Değişiklikleri Kaydet" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.CameraOff", + "en": "Camera Off", + "tr": "Kamera Kapalı" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.RoomName", + "en": "Room Name", + "tr": "Oda Adı" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.RoomNamePlaceholder", + "en": "E.g. Math 101 - Differential Equations", + "tr": "Örn: Matematik 101 - Diferansiyel Denklemler" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.DescriptionPlaceholder", + "en": "E.g. Brief description about the class...", + "tr": "Örn: Ders hakkında kısa açıklama..." + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.SubjectPlaceholder", + "en": "E.g. Math, Physics, Chemistry", + "tr": "Örn: Matematik, Fizik, Kimya" + }, + { + "resourceName": "Platform", + "key": "App.Videoroom.NoScheduledRooms", + "en": "No Scheduled Rooms", + "tr": "Henüz programlanmış oda bulunmamaktadır." }, { "resourceName": "Platform", @@ -6156,6 +6420,24 @@ "tr": "Anketler", "en": "Surveys" }, + { + "resourceName": "Platform", + "key": "App.Intranet.Events.EventComment", + "tr": "Henüz yorum yok. İlk yorumu sen yap!", + "en": "No comments yet. Be the first to comment!" + }, + { + "resourceName": "Platform", + "key": "App.Intranet.Events.Comments", + "tr": "Yorumlar", + "en": "Comments" + }, + { + "resourceName": "Platform", + "key": "App.Intranet.Events.EventAttendance", + "tr": "Bir yorum yaz...", + "en": "Write a comment..." + }, { "resourceName": "Platform", "key": "App.Intranet.Events", @@ -11958,6 +12240,18 @@ "tr": "Çalışıyor...", "en": "Running..." }, + { + "resourceName": "Platform", + "key": "App.Platform.Intranet.SurveyModal.RequiredUserName", + "tr": "Bu anket isim belirtilerek doldurulmaktadır. Yanıtlarınız kaydedilecektir.", + "en": "This survey requires your name. Your responses will be recorded." + }, + { + "resourceName": "Platform", + "key": "App.Platform.Intranet.SurveyModal.AnonymousNotice", + "tr": "Bu anket anonimdir. Kimlik bilgileriniz kaydedilmeyecektir.", + "en": "This survey is anonymous. Your identity will not be recorded." + }, { "resourceName": "Platform", "key": "App.Platform.Intranet.SurveyModal.RequiredField", @@ -13706,6 +14000,12 @@ "en": "Duration", "tr": "Süre" }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.Minutes", + "en": "Minutes", + "tr": "Dakika" + }, { "resourceName": "Platform", "key": "App.Listform.ListformField.ElementId", @@ -15758,6 +16058,12 @@ "en": "Subject", "tr": "Konu" }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.StartDateTime", + "en": "Start Date and Time", + "tr": "Başlangıç Tarihi ve Saati" + }, { "resourceName": "Platform", "key": "App.Listform.ListformField.SubmissionTime", @@ -18033,4 +18339,4 @@ "tr": "Başarıyla Kaydedildi" } ] -} \ No newline at end of file +} diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/MenusData.json b/api/src/Sozsoft.Platform.DbMigrator/Seeds/MenusData.json index 8d76fd1..0899400 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/MenusData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/MenusData.json @@ -1123,21 +1123,11 @@ "RequiredPermissionName": "App.Intranet.Events.Event", "IsDisabled": false }, - { - "ParentCode": "App.Administration", - "Code": "App.Videoroom.Dashboard", - "DisplayName": "App.Videoroom.Dashboard", - "Order": 4, - "Url": "/admin/videoroom/dashboard", - "Icon": "FcVideoCall", - "RequiredPermissionName": "App.Videoroom.Dashboard", - "IsDisabled": false - }, { "ParentCode": "App.Administration", "Code": "App.Administration.Restrictions", "DisplayName": "App.Restrictions", - "Order": 5, + "Order": 4, "Url": null, "Icon": "FaLock", "RequiredPermissionName": null, @@ -1167,7 +1157,7 @@ "ParentCode": "App.Administration", "Code": "Abp.Identity", "DisplayName": "Abp.Identity", - "Order": 6, + "Order": 5, "Url": null, "Icon": "FcConferenceCall", "RequiredPermissionName": null, @@ -1257,7 +1247,7 @@ "ParentCode": "App.Administration", "Code": "App.Reports.Management", "DisplayName": "App.Reports.Management", - "Order": 7, + "Order": 6, "Url": null, "Icon": "FcDocument", "RequiredPermissionName": null, @@ -1283,6 +1273,16 @@ "RequiredPermissionName": "App.Reports.ReportTemplates", "IsDisabled": false }, + { + "ParentCode": "App.Administration", + "Code": "App.Videoroom.Dashboard", + "DisplayName": "App.Videoroom.Dashboard", + "Order": 7, + "Url": "/admin/videoroom/dashboard", + "Icon": "FcVideoCall", + "RequiredPermissionName": "App.Videoroom.Dashboard", + "IsDisabled": false + }, { "ParentCode": "App.Administration", "Code": "App.Files", diff --git a/ui/src/views/admin/listForm/wizard/WizardFileManager.tsx b/ui/src/views/admin/listForm/wizard/WizardFileManager.tsx index 061865c..8b5e213 100644 --- a/ui/src/views/admin/listForm/wizard/WizardFileManager.tsx +++ b/ui/src/views/admin/listForm/wizard/WizardFileManager.tsx @@ -12,7 +12,7 @@ import { FaExclamationTriangle, FaSearch, FaEdit, - FaUser, + FaCalendarAlt, } from 'react-icons/fa' import { FcAcceptDatabase } from 'react-icons/fc' import { deleteWizardFile, getWizardFiles } from '@/services/wizard.service' @@ -161,9 +161,12 @@ const WizardFileManager = () => {
- {translate('::App.Listforms.WizardNoFiles') || 'No wizard files found.'} -
++ {translate('::App.Listforms.WizardNoFiles') || 'No wizard files found.'} +
+Lütfen rolünüzü seçin
++ {translate('::' + 'App.Videoroom.RoleSelector')} +
- Ders başlatın, öğrencilerle iletişim kurun ve katılım raporlarını görün + {translate('::' + 'App.Videoroom.HostDescription')}
- Aktif derslere katılın, öğretmeniniz ve diğer öğrencilerle etkileşim kurun + {translate('::' + 'App.Videoroom.ParticipantDescription')}
@@ -72,9 +78,11 @@ const Dashboard: React.FC = () => { className="bg-white rounded-lg shadow-lg p-6 sm:p-8 hover:shadow-xl transition-all duration-300 border-2 border-transparent hover:border-purple-500 md:col-span-2 lg:col-span-1" >- Sınıfı gözlemleyin, eğitim sürecini takip edin (ses/video paylaşımı yok) + {translate('::' + 'App.Videoroom.ObserverDescription')}
Toplam Sınıf
++ {translate('::App.Videoroom.TotalRooms')} +
{widgets().totalCount}{' '}
@@ -294,7 +340,9 @@ const RoomList: React.FC = () => {Aktif Sınıf
++ {translate('::App.Videoroom.ActiveRooms')} +
{widgets().activeCount}
@@ -314,7 +362,9 @@ const RoomList: React.FC = () => {Katılıma Açık
++ {translate('::App.Videoroom.OpenRooms')} +
{widgets().openCount}
Pasif Sınıf
++ {translate('::App.Videoroom.PassiveRooms')} +
{widgets().passiveCount}
@@ -352,7 +404,9 @@ const RoomList: React.FC = () => {Toplam Katılımcı
++ {translate('::App.Videoroom.TotalParticipants')} +
{videoList.reduce((sum, c) => sum + c.participantCount, 0)}
@@ -361,188 +415,158 @@ const RoomList: React.FC = () => {Henüz programlanmış sınıf bulunmamaktadır.
-+ {translate('::App.Videoroom.NoScheduledRooms') || + 'No scheduled classes found. Please create a new class.'} +
++ {classSession.description} +
)} - -{classSession.subject}
-Bu işlem geri alınamaz
++ {translate('::App.Videoroom.DeleteRoomWarning') || 'Bu işlem geri alınamaz'} +
- "{videoroom.name}" adlı sınıfı silmek istediğinizden emin - misiniz? + {translate('::DeleteConfirmation') || + 'Bu sınıfı silmek istediğinize emin misiniz?'}
- Henüz yorum yok. İlk yorumu sen yap! + {translate('::App.Intranet.Events.EventComment')}
) : ( comments.map((comment) => ( @@ -298,9 +300,10 @@ const EventModal: React.FC- ℹ️ Bu anket isim belirtilerek doldurulmaktadır. Yanıtlarınız kaydedilecektir. + ℹ️ {translate('::App.Platform.Intranet.SurveyModal.RequiredUserName')}
- ✅ Bu anket anonimdir. Kimlik bilgileriniz kaydedilmeyecektir. + ✅ {translate('::App.Platform.Intranet.SurveyModal.AnonymousNotice')}