From f46822701965bf00e505b8564a777066ece2eb2c Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Fri, 5 Jun 2026 17:47:27 +0300 Subject: [PATCH] Deploy on 2026-06-05 17:47:27 --- resources/views/admin/contacts/form.php | 22 ++--- resources/views/admin/contacts/index.php | 30 +++--- resources/views/admin/contacts/show.php | 51 +++++----- resources/views/admin/dashboard.php | 38 ++++---- resources/views/admin/opportunities/index.php | 92 ++++++++++++++----- resources/views/admin/opportunities/show.php | 64 +++++++++---- resources/views/admin/organizations/form.php | 54 +++++++---- resources/views/admin/organizations/index.php | 81 +++++++++++----- resources/views/admin/organizations/show.php | 92 ++++++++++++++----- resources/views/admin/settings/index.php | 18 ++-- resources/views/admin/sources/form.php | 22 ++--- resources/views/admin/sources/index.php | 26 +++--- resources/views/errors/403.php | 16 ++-- resources/views/errors/404.php | 16 ++-- resources/views/errors/500.php | 18 ++-- 15 files changed, 415 insertions(+), 225 deletions(-) diff --git a/resources/views/admin/contacts/form.php b/resources/views/admin/contacts/form.php index 79a8a5b..fa9053c 100644 --- a/resources/views/admin/contacts/form.php +++ b/resources/views/admin/contacts/form.php @@ -1,5 +1,5 @@
@@ -10,30 +10,30 @@
- +
- +
- +
- - + +
- +
- - Cancel + + إلغاء
diff --git a/resources/views/admin/contacts/index.php b/resources/views/admin/contacts/index.php index 1021e94..1e8abfb 100644 --- a/resources/views/admin/contacts/index.php +++ b/resources/views/admin/contacts/index.php @@ -1,9 +1,9 @@ session->getFlash('success')): ?> @@ -12,8 +12,8 @@
- - + +
@@ -21,17 +21,17 @@ - - - - - - + + + + + + - + @@ -41,8 +41,8 @@ @@ -61,7 +61,7 @@ \ No newline at end of file diff --git a/resources/views/admin/contacts/show.php b/resources/views/admin/contacts/show.php index a684419..6fbc648 100644 --- a/resources/views/admin/contacts/show.php +++ b/resources/views/admin/contacts/show.php @@ -1,10 +1,10 @@ @@ -14,58 +14,67 @@
-

Contact Details

+

تفاصيل جهة الاتصال

- Email + البريد الإلكتروني escape($contact['email']) : '-' ?>
- Phone + رقم الهاتف escape($contact['phone']) : '-' ?>
- Position + المسمى الوظيفي escape($contact['position'] ?? '-') ?>
- Organization + المنظمة / الجهة ' . $this->escape($contact['org_name']) . '' : '-' ?>
- Notes -

escape($contact['notes'] ?? 'No notes') ?>

+ ملاحظات +

escape($contact['notes'] ?? 'لا توجد ملاحظات') ?>

-

Interactions ()

+

التفاعلات ()

- - + +
-

No interactions logged yet.

+

لم يتم تسجيل أي تفاعلات بعد.

+ 'ملاحظة', + 'email' => 'بريد إلكتروني', + 'call' => 'مكالمة هاتفية', + 'meeting' => 'اجتماع' + ]; + $transType = $interTrans[$interaction['type']] ?? $interaction['type']; + ?>
-
- escape($interaction['type']) ?> - +
+ escape($transType) ?> +
-

escape($interaction['notes']) ?>

+

escape($interaction['notes']) ?>

diff --git a/resources/views/admin/dashboard.php b/resources/views/admin/dashboard.php index 79855f7..ca4a6cf 100644 --- a/resources/views/admin/dashboard.php +++ b/resources/views/admin/dashboard.php @@ -41,20 +41,20 @@
- + - VC • Accelerators + استثمار جريء • مسرعات
- + - new today + جديدة اليوم
@@ -68,11 +68,11 @@
- + - RSS feeds active + مصادر RSS نشطة
@@ -80,14 +80,14 @@
- Opportunities by Category + الفرص حسب التصنيف
- Monthly Growth & Ingestion + النمو الشهري وتجميع البيانات
@@ -103,7 +103,7 @@
-

No opportunities yet. Run the collector to start gathering data.

+

لا توجد فرص حتى الآن. قم بتشغيل جامع البيانات لبدء جمع البيانات.

@@ -112,7 +112,7 @@ escape(mb_substr($opp['title'], 0, 80)) ?>
escape($opp['type']) ?> - Score: + درجة الأهمية:
@@ -130,7 +130,7 @@
-

No recent activity.

+

لا توجد نشاطات حديثة.

@@ -168,17 +168,17 @@ const categoryLabels = hasCategoryData ? Object.keys(categoriesData).map(k => { const trans = { - 'grant': '', - 'competition': '', - 'demo_day': '', - 'event': '', - 'partnership': '', - 'investment': '', - 'other': '' + 'grant': '', + 'competition': '', + 'demo_day': '', + 'event': '', + 'partnership': '', + 'investment': '', + 'other': '' }; return trans[k] || k.charAt(0).toUpperCase() + k.slice(1); }) - : ['Mobility & Logistics', 'AI & Automation', 'SaaS', 'Fintech', 'Marketplaces']; + : ['تنقل ولوجستيات', 'ذكاء اصطناعي وأتمتة', 'برمجيات خدمية', 'تكنولوجيا مالية', 'منصات تجارية']; const categoryValues = hasCategoryData ? Object.values(categoriesData) diff --git a/resources/views/admin/opportunities/index.php b/resources/views/admin/opportunities/index.php index a2aabbb..7967cad 100644 --- a/resources/views/admin/opportunities/index.php +++ b/resources/views/admin/opportunities/index.php @@ -1,39 +1,63 @@
- + - +
- Total + الإجمالي
- $c): ?> + $c): ?> + 'المنح', + 'competition' => 'المسابقات', + 'demo_day' => 'أيام العروض', + 'event' => 'الفعاليات', + 'partnership' => 'الشراكات', + 'investment' => 'الاستثمارات', + 'other' => 'أخرى' + ]; + $transName = $trans[$t_key] ?? ucfirst($t_key); + ?>
- +
@@ -44,20 +68,35 @@
NamePositionOrganizationEmailInteractionsActionsالاسمالمسمى الوظيفيالمنظمة / الجهةالبريد الإلكترونيالتفاعلاتالإجراءات
No contacts yet.
لا توجد جهات اتصال حالياً.
escape($contact['email']) : '-' ?> - View - Edit + عرض + تعديل
- - - - - - + + + + + + - + + 'المنح', + 'competition' => 'المسابقات', + 'demo_day' => 'أيام العروض', + 'event' => 'الفعاليات', + 'partnership' => 'الشراكات', + 'investment' => 'الاستثمارات', + 'other' => 'أخرى', + 'vc_funding' => 'تمويل رأس مال جريء', + 'accelerator' => 'مسرعة أعمال', + 'incubator' => 'حاضنة أعمال' + ]; + $transType = $trans[$opp['type']] ?? $opp['type']; + ?> - + - - - - + + + + @@ -98,4 +137,7 @@ .badge-type-event { background: rgba(56, 189, 248, 0.2); color: #38bdf8; } .badge-type-demo_day { background: rgba(248, 113, 113, 0.2); color: #f87171; } .badge-type-partnership { background: rgba(167, 139, 250, 0.2); color: #c4b5fd; } + .badge-type-vc_funding { background: rgba(139, 92, 246, 0.2); color: #a78bfa; } + .badge-type-accelerator { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } + .badge-type-incubator { background: rgba(52, 211, 153, 0.2); color: #34d399; } \ No newline at end of file diff --git a/resources/views/admin/opportunities/show.php b/resources/views/admin/opportunities/show.php index 9425881..2dfbf92 100644 --- a/resources/views/admin/opportunities/show.php +++ b/resources/views/admin/opportunities/show.php @@ -1,49 +1,64 @@ + 'المنح', + 'competition' => 'المسابقات', + 'demo_day' => 'أيام العروض', + 'event' => 'الفعاليات', + 'partnership' => 'الشراكات', + 'investment' => 'الاستثمارات', + 'other' => 'أخرى', + 'vc_funding' => 'تمويل رأس مال جريء', + 'accelerator' => 'مسرعة أعمال', + 'incubator' => 'حاضنة أعمال' +]; +$transType = $trans[$opportunity['type']] ?? $opportunity['type']; +?>
-

Details

+

التفاصيل

- Status - escape($opportunity['status']) ?> + الحالة +
- Organization + الجهة/الشركة escape($opportunity['org_name']) ?>
- URL - Open Link → + الرابط + فتح الرابط ←
- Deadline - + الموعد النهائي +
- Amount + المبلغ $
- Created - + تاريخ الإضافة +
- Tags + الوسوم
escape(trim($tag)) ?> @@ -52,21 +67,21 @@
- Description -

escape($opportunity['description']) ?>

+ الوصف ونقاط القوة +

escape($opportunity['description']) ?>

-

Applications ()

+

الطلبات المتتبعة ()

-

No applications tracked yet.

+

لا توجد طلبات متتبعة حالياً لهذه الفرصة.

- + escape($app['status']) ?>
@@ -85,4 +100,13 @@ .detail-label { font-size: 0.85rem; color: var(--text-muted); font-weight: 600; } .list-item { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.05); } @media (max-width: 768px) { .detail-grid { grid-template-columns: 1fr; } } + .badge-type-grant { background: rgba(52, 211, 153, 0.2); color: #34d399; } + .badge-type-competition { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } + .badge-type-investment { background: rgba(139, 92, 246, 0.2); color: #a78bfa; } + .badge-type-event { background: rgba(56, 189, 248, 0.2); color: #38bdf8; } + .badge-type-demo_day { background: rgba(248, 113, 113, 0.2); color: #f87171; } + .badge-type-partnership { background: rgba(167, 139, 250, 0.2); color: #c4b5fd; } + .badge-type-vc_funding { background: rgba(139, 92, 246, 0.2); color: #a78bfa; } + .badge-type-accelerator { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } + .badge-type-incubator { background: rgba(52, 211, 153, 0.2); color: #34d399; } \ No newline at end of file diff --git a/resources/views/admin/organizations/form.php b/resources/views/admin/organizations/form.php index e45bed4..fe631eb 100644 --- a/resources/views/admin/organizations/form.php +++ b/resources/views/admin/organizations/form.php @@ -1,5 +1,5 @@ session->getFlash('error')): ?> @@ -15,29 +15,49 @@
- +
- +
- +
- +
@@ -45,33 +65,33 @@
- - + +
- - + +
- +
- - + +
- +
- - Cancel + + إلغاء
diff --git a/resources/views/admin/organizations/index.php b/resources/views/admin/organizations/index.php index a004eca..3010770 100644 --- a/resources/views/admin/organizations/index.php +++ b/resources/views/admin/organizations/index.php @@ -1,9 +1,9 @@ session->getFlash('success')): ?> @@ -16,21 +16,33 @@
- + - +
- Total Organizations + إجمالي المنظمات والجهات
@@ -40,20 +52,41 @@
TitleTypeSourceScoreStatusCreatedالعنوانالنوعالمصدر/الشركةالتقييمالحالةتاريخ الإضافة
No opportunities yet. Run the collector first.
لا توجد فرص استثمارية حالياً. يرجى تشغيل جامع البيانات أولاً.
escape(mb_substr($opp['title'], 0, 60)) ?> @@ -65,12 +104,12 @@
escape(implode(', ', explode(',', $opp['tag_names']))) ?>
escape($opp['type']) ?>escape($transType) ?> escape($opp['org_name']) : '-' ?>escape($opp['status']) ?>Open/100فتح
- - - - - - - + + + + + + + - + + 'رأس مال جريء', + 'angel' => 'مستثمر ملائكي', + 'accelerator' => 'مسرعة أعمال', + 'incubator' => 'حاضنة أعمال', + 'venture_studio' => 'استوديو مشاريع', + 'partner' => 'شريك', + 'other' => 'أخرى' + ]; + $transType = $trans[$org['type']] ?? $org['type']; + + $crmTrans = [ + 'New' => 'جديد', + 'Researching' => 'قيد البحث', + 'Contacted' => 'تم التواصل', + 'Invested' => 'تم الاستثمار', + 'Rejected' => 'مرفوض' + ]; + $transCrmStatus = $crmTrans[$org['crm_status']] ?? $org['crm_status']; + ?> - + - + - + @@ -95,7 +128,7 @@ .filters-form { display: flex; gap: 12px; flex-wrap: wrap; } .filters-form .form-control { min-width: 200px; } .data-table { width: 100%; border-collapse: collapse; } - .data-table th, .data-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid rgba(255,255,255,0.05); } + .data-table th, .data-table td { padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,0.05); } .data-table th { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); font-weight: 600; } .data-table tr:hover { background: rgba(255,255,255,0.02); } .badge { display: inline-block; padding: 4px 10px; border-radius: 12px; font-size: 0.78rem; font-weight: 600; } diff --git a/resources/views/admin/organizations/show.php b/resources/views/admin/organizations/show.php index ab0b3a3..82c1203 100644 --- a/resources/views/admin/organizations/show.php +++ b/resources/views/admin/organizations/show.php @@ -1,11 +1,32 @@ + 'رأس مال جريء', + 'angel' => 'مستثمر ملائكي', + 'accelerator' => 'مسرعة أعمال', + 'incubator' => 'حاضنة أعمال', + 'venture_studio' => 'استوديو مشاريع', + 'partner' => 'شريك', + 'other' => 'أخرى' +]; +$transType = $trans[$org['type']] ?? $org['type']; + +$crmTrans = [ + 'New' => 'جديد', + 'Researching' => 'قيد البحث', + 'Contacted' => 'تم التواصل', + 'Invested' => 'تم الاستثمار', + 'Rejected' => 'مرفوض' +]; +$transCrmStatus = $crmTrans[$org['crm_status']] ?? $org['crm_status']; +?> @@ -16,55 +37,70 @@
-

Details

+

التفاصيل

- Domain + النطاق escape($org['domain']) : '-' ?>
- Website + الموقع الإلكتروني escape($org['website_url']) . '" target="_blank">' . $this->escape($org['website_url']) . '' : '-' ?>
- Country + الدولة escape($org['country'] ?? '-') ?>
- City + المدينة escape($org['city'] ?? '-') ?>
- CRM Status - escape($org['crm_status']) ?> + الحالة في CRM + escape($transCrmStatus) ?>
- Funding Stage + مرحلة التمويل escape($org['funding_stage'] ?? '-') ?>
- Created - + تاريخ الإضافة +
- Description -

escape($org['description'] ?? 'No description') ?>

+ الوصف +

escape($org['description'] ?? 'لا يوجد وصف حالياً') ?>

-

Opportunities ()

+

الفرص المرتبطة ()

-

No opportunities linked to this organization yet.

+

لا توجد فرص مرتبطة بهذه المنظمة حتى الآن.

+ 'المنح', + 'competition' => 'المسابقات', + 'demo_day' => 'أيام العروض', + 'event' => 'الفعاليات', + 'partnership' => 'الشراكات', + 'investment' => 'الاستثمارات', + 'other' => 'أخرى', + 'vc_funding' => 'تمويل رأس مال جريء', + 'accelerator' => 'مسرعة أعمال', + 'incubator' => 'حاضنة أعمال' + ]; + $transOppType = $oppTrans[$opp['type']] ?? $opp['type']; + ?>
escape($opp['title']) ?>
- escape($opp['type']) ?> - Score: + escape($transOppType) ?> + التقييم: /100
@@ -73,9 +109,9 @@
-

Contacts ()

+

جهات الاتصال ()

-

No contacts added yet.

+

لم يتم إضافة جهات اتصال بعد.

@@ -104,5 +140,19 @@ .badge-type-investment { background: rgba(139, 92, 246, 0.2); color: #a78bfa; } .badge-type-event { background: rgba(56, 189, 248, 0.2); color: #38bdf8; } .badge-type-partnership { background: rgba(167, 139, 250, 0.2); color: #c4b5fd; } + .badge-type-vc_funding { background: rgba(139, 92, 246, 0.2); color: #a78bfa; } + .badge-type-accelerator { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } + .badge-type-incubator { background: rgba(52, 211, 153, 0.2); color: #34d399; } + .badge-vc { background: rgba(139, 92, 246, 0.2); color: #a78bfa; } + .badge-angel { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } + .badge-accelerator { background: rgba(52, 211, 153, 0.2); color: #34d399; } + .badge-incubator { background: rgba(56, 189, 248, 0.2); color: #38bdf8; } + .badge-venture_studio { background: rgba(248, 113, 113, 0.2); color: #f87171; } + .badge-partner { background: rgba(167, 139, 250, 0.2); color: #a78bfa; } + .badge-status-new { background: rgba(96, 165, 250, 0.2); color: #60a5fa; } + .badge-status-researching { background: rgba(251, 191, 36, 0.2); color: #fbbf24; } + .badge-status-contacted { background: rgba(52, 211, 153, 0.2); color: #34d399; } + .badge-status-invested { background: rgba(34, 197, 94, 0.2); color: #22c55e; } + .badge-status-rejected { background: rgba(239, 68, 68, 0.2); color: #ef4444; } @media (max-width: 768px) { .detail-grid { grid-template-columns: 1fr; } } \ No newline at end of file diff --git a/resources/views/admin/settings/index.php b/resources/views/admin/settings/index.php index 3334141..f1abf80 100644 --- a/resources/views/admin/settings/index.php +++ b/resources/views/admin/settings/index.php @@ -43,15 +43,15 @@
-

How to set up Telegram

-
    -
  1. Create a bot via @BotFather on Telegram
  2. -
  3. Copy the bot token (e.g., 123456:ABC-DEF1234ghIkl)
  4. -
  5. Add the bot to your group/channel
  6. -
  7. Send any message in the group
  8. -
  9. Visit https://api.telegram.org/bot/getUpdates
  10. -
  11. Copy your Chat ID from the response
  12. -
  13. Click "Send Test" to verify
  14. +

    كيفية إعداد تيليجرام

    +
      +
    1. أنشئ بوتًا جديدًا عبر البحث عن @BotFather على تيليجرام
    2. +
    3. انسخ رمز البوت الخاص بك (Bot Token) (مثال: 123456:ABC-DEF1234ghIkl)
    4. +
    5. أضف البوت إلى قناتك أو مجموعتك
    6. +
    7. أرسل أي رسالة في القناة/المجموعة لتفعيلها
    8. +
    9. افتح الرابط التالي بعد استبدال رمز البوت: https://api.telegram.org/bot<TOKEN>/getUpdates
    10. +
    11. انسخ معرف المحادثة (Chat ID) وضعه في الحقل المخصص
    12. +
    13. انقر على "إرسال تجربة" للتحقق من التفعيل
diff --git a/resources/views/admin/sources/form.php b/resources/views/admin/sources/form.php index 3df5250..9be094d 100644 --- a/resources/views/admin/sources/form.php +++ b/resources/views/admin/sources/form.php @@ -1,5 +1,5 @@
@@ -10,32 +10,32 @@
- +
- +
- +
- +
- - Cancel + + إلغاء
diff --git a/resources/views/admin/sources/index.php b/resources/views/admin/sources/index.php index c9bbd94..6f819f3 100644 --- a/resources/views/admin/sources/index.php +++ b/resources/views/admin/sources/index.php @@ -1,9 +1,9 @@ session->getFlash('success')): ?> @@ -17,16 +17,16 @@
NameTypeCountryCRM StatusOpportunitiesUpdatedActionsالاسمالنوعالدولةحالة CRMالفرص المرتبطةآخر تحديثإجراءات
No organizations found. Run the collector or add one manually.
لا توجد منظمات أو جهات استثمارية حالياً. يرجى تشغيل جامع البيانات أو إضافة جهة يدوياً.
@@ -63,15 +96,15 @@
escape($org['domain']) ?>
escape($org['type']) ?>escape($transType) ?> escape($org['country'] ?? '-') ?>escape($org['crm_status']) ?>escape($transCrmStatus) ?> - View - Edit - + Contact + عرض + تعديل + + جهة اتصال
- - - - - + + + + + - + @@ -35,11 +35,11 @@ escape($source['url']) ?> - + diff --git a/resources/views/errors/403.php b/resources/views/errors/403.php index 0c562a3..7bc68b9 100644 --- a/resources/views/errors/403.php +++ b/resources/views/errors/403.php @@ -1,17 +1,21 @@ - + - Access Forbidden - ScoutIQ + الوصول غير مسموح - ScoutIQ + +
- 403 -

Access Forbidden

-

You do not have the required role permissions to access this directory or perform this action.

- Return Home + 403 +

الوصول غير مسموح

+

ليس لديك الصلاحيات اللازمة للوصول إلى هذه الصفحة أو تنفيذ هذا الإجراء.

+ العودة للرئيسية
diff --git a/resources/views/errors/404.php b/resources/views/errors/404.php index c9d6fea..6730a24 100644 --- a/resources/views/errors/404.php +++ b/resources/views/errors/404.php @@ -1,17 +1,21 @@ - + - Page Not Found - ScoutIQ + الصفحة غير موجودة - ScoutIQ + +
- 404 -

Page Not Found

-

The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

- Return Home + 404 +

الصفحة غير موجودة

+

الرابط الذي تحاول الوصول إليه قد يكون قد تمت إزالته، أو تم تغيير اسمه، أو أنه غير متاح حالياً.

+ العودة للرئيسية
diff --git a/resources/views/errors/500.php b/resources/views/errors/500.php index 4a06819..ed9865a 100644 --- a/resources/views/errors/500.php +++ b/resources/views/errors/500.php @@ -1,27 +1,31 @@ - + - Server Error - ScoutIQ + خطأ في النظام - ScoutIQ + +
- 500 -

System Server Error

-

+ 500 +

خطأ داخلي في الخادم

+

-
+            
 getMessage(), ENT_QUOTES, 'UTF-8') ?>
 in getFile(), ENT_QUOTES, 'UTF-8') ?>:getLine() ?>
 
 getTraceAsString(), ENT_QUOTES, 'UTF-8') ?>
             
- Return Home + العودة للرئيسية
NameURLTypeStatusActionsالاسمالرابطالنوعالحالةإجراءات
No data sources configured.
لا توجد مصادر بيانات مهيأة.
escape($source['type']) ?>escape($source['status']) ?> - Run - Edit - Delete + تشغيل + تعديل + حذف