Compare commits

...

2 Commits

Author SHA1 Message Date
f7902105de Bump VERSION to 0.9-rc58 2026-02-09 15:34:36 +02:00
b049d338d8 Expand support page help options 2026-02-09 15:34:31 +02:00
13 changed files with 225 additions and 3 deletions

View File

@@ -1 +1 @@
VERSION=0.9-rc57 VERSION=0.9-rc58

View File

@@ -16,7 +16,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [[ -f "$SCRIPT_DIR/VERSION" ]]; then if [[ -f "$SCRIPT_DIR/VERSION" ]]; then
JABALI_VERSION="$(sed -n 's/^VERSION=//p' "$SCRIPT_DIR/VERSION")" JABALI_VERSION="$(sed -n 's/^VERSION=//p' "$SCRIPT_DIR/VERSION")"
fi fi
JABALI_VERSION="${JABALI_VERSION:-0.9-rc57}" JABALI_VERSION="${JABALI_VERSION:-0.9-rc58}"
# Colors # Colors
RED='\033[0;31m' RED='\033[0;31m'

View File

@@ -220,6 +220,17 @@
"Display Name": "الاسم المعروض", "Display Name": "الاسم المعروض",
"Document Root": "المجلد الجذر", "Document Root": "المجلد الجذر",
"Documentation": "التوثيق", "Documentation": "التوثيق",
"Find answers in our docs.": "اعثر على إجابات في التوثيق.",
"Chat with our AI support bot.": "تحدث مع روبوت الدعم بالذكاء الاصطناعي.",
"GitHub Issues": "مشكلات GitHub",
"Report bugs or request features.": "أبلغ عن الأخطاء أو اطلب ميزات.",
"Open GitHub Issues": "فتح مشكلات GitHub",
"Paid Support": "دعم مدفوع",
"Get professional assistance.": "احصل على مساعدة احترافية.",
"View Support Plans": "عرض خطط الدعم",
"Response Time": "وقت الاستجابة",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "نستجيب عادة خلال 24-48 ساعة. للحالات العاجلة، فكّر في دعم الطوارئ.",
"Emergency Support": "دعم الطوارئ",
"Open Documentation": "فتح التوثيق", "Open Documentation": "فتح التوثيق",
"Support Chat": "دردشة الدعم", "Support Chat": "دردشة الدعم",
"Domain": "نطاق", "Domain": "نطاق",

View File

@@ -782,6 +782,17 @@
"Display Name": "Display Name", "Display Name": "Display Name",
"Document Root": "Document Root", "Document Root": "Document Root",
"Documentation": "Documentation", "Documentation": "Documentation",
"Find answers in our docs.": "Find answers in our docs.",
"Chat with our AI support bot.": "Chat with our AI support bot.",
"GitHub Issues": "GitHub Issues",
"Report bugs or request features.": "Report bugs or request features.",
"Open GitHub Issues": "Open GitHub Issues",
"Paid Support": "Paid Support",
"Get professional assistance.": "Get professional assistance.",
"View Support Plans": "View Support Plans",
"Response Time": "Response Time",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.",
"Emergency Support": "Emergency Support",
"Open Documentation": "Open Documentation", "Open Documentation": "Open Documentation",
"Support Chat": "Support Chat", "Support Chat": "Support Chat",
"Domain": "Domain", "Domain": "Domain",

View File

@@ -309,6 +309,17 @@
"Display Name": "Nombre para mostrar", "Display Name": "Nombre para mostrar",
"Document Root": "Raíz del documento", "Document Root": "Raíz del documento",
"Documentation": "Documentación", "Documentation": "Documentación",
"Find answers in our docs.": "Encuentra respuestas en nuestra documentación.",
"Chat with our AI support bot.": "Chatea con nuestro bot de soporte con IA.",
"GitHub Issues": "Issues de GitHub",
"Report bugs or request features.": "Reporta errores o solicita funciones.",
"Open GitHub Issues": "Abrir issues de GitHub",
"Paid Support": "Soporte de pago",
"Get professional assistance.": "Obtén asistencia profesional.",
"View Support Plans": "Ver planes de soporte",
"Response Time": "Tiempo de respuesta",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "Normalmente respondemos en 24-48 horas. Para casos urgentes, considera nuestro soporte de emergencia.",
"Emergency Support": "Soporte de emergencia",
"Open Documentation": "Abrir documentación", "Open Documentation": "Abrir documentación",
"Support Chat": "Chat de soporte", "Support Chat": "Chat de soporte",
"Domain": "Dominio", "Domain": "Dominio",

View File

@@ -221,6 +221,17 @@
"Display Name": "Nom d'affichage", "Display Name": "Nom d'affichage",
"Document Root": "Racine du document", "Document Root": "Racine du document",
"Documentation": "Documentation", "Documentation": "Documentation",
"Find answers in our docs.": "Trouvez des réponses dans notre documentation.",
"Chat with our AI support bot.": "Discutez avec notre bot de support IA.",
"GitHub Issues": "Issues GitHub",
"Report bugs or request features.": "Signalez des bugs ou demandez des fonctionnalités.",
"Open GitHub Issues": "Ouvrir les issues GitHub",
"Paid Support": "Support payant",
"Get professional assistance.": "Obtenez une assistance professionnelle.",
"View Support Plans": "Voir les plans de support",
"Response Time": "Délai de réponse",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "Nous répondons généralement sous 24-48 heures. Pour les urgences, consultez notre support d'urgence.",
"Emergency Support": "Support d'urgence",
"Open Documentation": "Ouvrir la documentation", "Open Documentation": "Ouvrir la documentation",
"Support Chat": "Chat de support", "Support Chat": "Chat de support",
"Domain": "Domaine", "Domain": "Domaine",

View File

@@ -220,6 +220,17 @@
"Display Name": "שם תצוגה", "Display Name": "שם תצוגה",
"Document Root": "תיקיית שורש", "Document Root": "תיקיית שורש",
"Documentation": "תיעוד", "Documentation": "תיעוד",
"Find answers in our docs.": "מצאו תשובות בתיעוד שלנו.",
"Chat with our AI support bot.": "שוחחו עם בוט התמיכה שלנו.",
"GitHub Issues": "Issues של GitHub",
"Report bugs or request features.": "דווחו על באגים או בקשו פיצ'רים.",
"Open GitHub Issues": "פתח Issues ב-GitHub",
"Paid Support": "תמיכה בתשלום",
"Get professional assistance.": "קבלו סיוע מקצועי.",
"View Support Plans": "צפו בתוכניות התמיכה",
"Response Time": "זמן תגובה",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "אנחנו בדרך כלל מגיבים תוך 24-48 שעות. למקרים דחופים, שקלו תמיכת חירום.",
"Emergency Support": "תמיכת חירום",
"Open Documentation": "פתח תיעוד", "Open Documentation": "פתח תיעוד",
"Support Chat": "צ'אט תמיכה", "Support Chat": "צ'אט תמיכה",
"Domain": "דומיין", "Domain": "דומיין",

View File

@@ -220,6 +220,17 @@
"Display Name": "Nome de Exibição", "Display Name": "Nome de Exibição",
"Document Root": "Raiz do Documento", "Document Root": "Raiz do Documento",
"Documentation": "Documentação", "Documentation": "Documentação",
"Find answers in our docs.": "Encontre respostas na nossa documentação.",
"Chat with our AI support bot.": "Converse com nosso bot de suporte com IA.",
"GitHub Issues": "Issues do GitHub",
"Report bugs or request features.": "Reporte bugs ou solicite recursos.",
"Open GitHub Issues": "Abrir issues do GitHub",
"Paid Support": "Suporte pago",
"Get professional assistance.": "Obtenha assistência profissional.",
"View Support Plans": "Ver planos de suporte",
"Response Time": "Tempo de resposta",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "Normalmente respondemos em 24-48 horas. Para casos urgentes, considere nosso suporte de emergência.",
"Emergency Support": "Suporte de emergência",
"Open Documentation": "Abrir documentação", "Open Documentation": "Abrir documentação",
"Support Chat": "Chat de suporte", "Support Chat": "Chat de suporte",
"Domain": "Domínio", "Domain": "Domínio",

View File

@@ -221,6 +221,17 @@
"Display Name": "Отображаемое имя", "Display Name": "Отображаемое имя",
"Document Root": "Корневая директория", "Document Root": "Корневая директория",
"Documentation": "Документация", "Documentation": "Документация",
"Find answers in our docs.": "Найдите ответы в нашей документации.",
"Chat with our AI support bot.": "Чат с нашим AI-ботом поддержки.",
"GitHub Issues": "GitHub Issues",
"Report bugs or request features.": "Сообщайте о багах или запрашивайте функции.",
"Open GitHub Issues": "Открыть GitHub Issues",
"Paid Support": "Платная поддержка",
"Get professional assistance.": "Получите профессиональную помощь.",
"View Support Plans": "Посмотреть планы поддержки",
"Response Time": "Время ответа",
"We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.": "Обычно отвечаем в течение 2448 часов. В экстренных случаях воспользуйтесь экстренной поддержкой.",
"Emergency Support": "Экстренная поддержка",
"Open Documentation": "Открыть документацию", "Open Documentation": "Открыть документацию",
"Support Chat": "Чат поддержки", "Support Chat": "Чат поддержки",
"Domain": "Домен", "Domain": "Домен",

View File

@@ -4,6 +4,7 @@
icon-color="primary" icon-color="primary"
> >
<x-slot name="heading">{{ __('Documentation') }}</x-slot> <x-slot name="heading">{{ __('Documentation') }}</x-slot>
<x-slot name="description">{{ __('Find answers in our docs.') }}</x-slot>
<x-filament::button <x-filament::button
tag="a" tag="a"
@@ -22,10 +23,71 @@
class="mt-6" class="mt-6"
> >
<x-slot name="heading">{{ __('Support Chat') }}</x-slot> <x-slot name="heading">{{ __('Support Chat') }}</x-slot>
<x-slot name="description">{{ __('Chat with our AI support bot.') }}</x-slot>
<div id="jabali-support-chat"></div> <div id="jabali-support-chat"></div>
</x-filament::section> </x-filament::section>
<x-filament::section
icon="heroicon-o-bug-ant"
icon-color="warning"
class="mt-6"
>
<x-slot name="heading">{{ __('GitHub Issues') }}</x-slot>
<x-slot name="description">{{ __('Report bugs or request features.') }}</x-slot>
<x-filament::button
tag="a"
href="https://github.com/shukiv/jabali-panel/issues"
target="_blank"
rel="noopener"
icon="heroicon-o-arrow-top-right-on-square"
color="gray"
>
{{ __('Open GitHub Issues') }}
</x-filament::button>
</x-filament::section>
<x-filament::section
icon="heroicon-o-lifebuoy"
icon-color="primary"
class="mt-6"
>
<x-slot name="heading">{{ __('Paid Support') }}</x-slot>
<x-slot name="description">{{ __('Get professional assistance.') }}</x-slot>
<x-filament::button
tag="a"
href="https://jabali-panel.com/support/"
target="_blank"
rel="noopener"
icon="heroicon-o-arrow-top-right-on-square"
>
{{ __('View Support Plans') }}
</x-filament::button>
</x-filament::section>
<x-filament::section
icon="heroicon-o-clock"
icon-color="gray"
class="mt-6"
compact
>
<x-slot name="heading">{{ __('Response Time') }}</x-slot>
<x-slot name="description">{{ __('We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.') }}</x-slot>
<x-filament::button
tag="a"
href="https://jabali-panel.com/emergency/"
target="_blank"
rel="noopener"
icon="heroicon-o-arrow-top-right-on-square"
color="warning"
>
{{ __('Emergency Support') }}
</x-filament::button>
</x-filament::section>
@script @script
<script src="https://portal.jabali-panel.com/js/support-widget.js?v=10" data-api-url="https://portal.jabali-panel.com" data-open="true"></script> <script src="https://portal.jabali-panel.com/js/support-widget.js?v=10" data-api-url="https://portal.jabali-panel.com" data-open="true"></script>
@endscript @endscript

View File

@@ -4,6 +4,7 @@
icon-color="primary" icon-color="primary"
> >
<x-slot name="heading">{{ __('Documentation') }}</x-slot> <x-slot name="heading">{{ __('Documentation') }}</x-slot>
<x-slot name="description">{{ __('Find answers in our docs.') }}</x-slot>
<x-filament::button <x-filament::button
tag="a" tag="a"
@@ -22,10 +23,71 @@
class="mt-6" class="mt-6"
> >
<x-slot name="heading">{{ __('Support Chat') }}</x-slot> <x-slot name="heading">{{ __('Support Chat') }}</x-slot>
<x-slot name="description">{{ __('Chat with our AI support bot.') }}</x-slot>
<div id="jabali-support-chat"></div> <div id="jabali-support-chat"></div>
</x-filament::section> </x-filament::section>
<x-filament::section
icon="heroicon-o-bug-ant"
icon-color="warning"
class="mt-6"
>
<x-slot name="heading">{{ __('GitHub Issues') }}</x-slot>
<x-slot name="description">{{ __('Report bugs or request features.') }}</x-slot>
<x-filament::button
tag="a"
href="https://github.com/shukiv/jabali-panel/issues"
target="_blank"
rel="noopener"
icon="heroicon-o-arrow-top-right-on-square"
color="gray"
>
{{ __('Open GitHub Issues') }}
</x-filament::button>
</x-filament::section>
<x-filament::section
icon="heroicon-o-lifebuoy"
icon-color="primary"
class="mt-6"
>
<x-slot name="heading">{{ __('Paid Support') }}</x-slot>
<x-slot name="description">{{ __('Get professional assistance.') }}</x-slot>
<x-filament::button
tag="a"
href="https://jabali-panel.com/support/"
target="_blank"
rel="noopener"
icon="heroicon-o-arrow-top-right-on-square"
>
{{ __('View Support Plans') }}
</x-filament::button>
</x-filament::section>
<x-filament::section
icon="heroicon-o-clock"
icon-color="gray"
class="mt-6"
compact
>
<x-slot name="heading">{{ __('Response Time') }}</x-slot>
<x-slot name="description">{{ __('We typically respond within 24-48 hours. For urgent issues, consider our Emergency Support.') }}</x-slot>
<x-filament::button
tag="a"
href="https://jabali-panel.com/emergency/"
target="_blank"
rel="noopener"
icon="heroicon-o-arrow-top-right-on-square"
color="warning"
>
{{ __('Emergency Support') }}
</x-filament::button>
</x-filament::section>
@script @script
<script src="https://portal.jabali-panel.com/js/support-widget.js?v=10" data-api-url="https://portal.jabali-panel.com" data-open="true"></script> <script src="https://portal.jabali-panel.com/js/support-widget.js?v=10" data-api-url="https://portal.jabali-panel.com" data-open="true"></script>
@endscript @endscript

View File

@@ -7,6 +7,7 @@ DEPLOY_HOST="${DEPLOY_HOST:-192.168.100.50}"
DEPLOY_USER="${DEPLOY_USER:-root}" DEPLOY_USER="${DEPLOY_USER:-root}"
DEPLOY_PATH="${DEPLOY_PATH:-/var/www/jabali}" DEPLOY_PATH="${DEPLOY_PATH:-/var/www/jabali}"
WWW_USER="${WWW_USER:-www-data}" WWW_USER="${WWW_USER:-www-data}"
NPM_CACHE_DIR="${NPM_CACHE_DIR:-}"
GITEA_REMOTE="${GITEA_REMOTE:-gitea}" GITEA_REMOTE="${GITEA_REMOTE:-gitea}"
GITEA_URL="${GITEA_URL:-}" GITEA_URL="${GITEA_URL:-}"
GITHUB_REMOTE="${GITHUB_REMOTE:-origin}" GITHUB_REMOTE="${GITHUB_REMOTE:-origin}"
@@ -50,7 +51,7 @@ Options:
-h, --help Show this help -h, --help Show this help
Environment overrides: Environment overrides:
DEPLOY_HOST, DEPLOY_USER, DEPLOY_PATH, WWW_USER, GITEA_REMOTE, GITEA_URL, GITHUB_REMOTE, GITHUB_URL, PUSH_BRANCH DEPLOY_HOST, DEPLOY_USER, DEPLOY_PATH, WWW_USER, NPM_CACHE_DIR, GITEA_REMOTE, GITEA_URL, GITHUB_REMOTE, GITHUB_URL, PUSH_BRANCH
EOF EOF
} }
@@ -253,6 +254,19 @@ remote_run_www() {
ssh -o StrictHostKeyChecking=no "$REMOTE" "bash -lc 'cd \"$DEPLOY_PATH\" && sudo -u \"$WWW_USER\" -H bash -lc \"$1\"'" ssh -o StrictHostKeyChecking=no "$REMOTE" "bash -lc 'cd \"$DEPLOY_PATH\" && sudo -u \"$WWW_USER\" -H bash -lc \"$1\"'"
} }
ensure_remote_permissions() {
local parent_dir
parent_dir="$(dirname "$DEPLOY_PATH")"
if [[ -z "$NPM_CACHE_DIR" ]]; then
NPM_CACHE_DIR="${parent_dir}/.npm"
fi
remote_run "mkdir -p \"$DEPLOY_PATH/storage\" \"$DEPLOY_PATH/bootstrap/cache\" \"$DEPLOY_PATH/public/build\" \"$DEPLOY_PATH/node_modules\" \"$DEPLOY_PATH/database\" \"$NPM_CACHE_DIR\""
remote_run "chown -R \"$WWW_USER\":\"$WWW_USER\" \"$DEPLOY_PATH/storage\" \"$DEPLOY_PATH/bootstrap/cache\" \"$DEPLOY_PATH/public\" \"$DEPLOY_PATH/public/build\" \"$DEPLOY_PATH/node_modules\" \"$DEPLOY_PATH/database\" \"$NPM_CACHE_DIR\""
remote_run "if [[ -f \"$DEPLOY_PATH/auth.json\" ]]; then chown \"$WWW_USER\":\"$WWW_USER\" \"$DEPLOY_PATH/auth.json\" && chmod 600 \"$DEPLOY_PATH/auth.json\"; fi"
}
echo "Deploying to ${REMOTE}:${DEPLOY_PATH}" echo "Deploying to ${REMOTE}:${DEPLOY_PATH}"
if [[ "$PUSH_GITEA" -eq 1 ]]; then if [[ "$PUSH_GITEA" -eq 1 ]]; then
@@ -279,6 +293,9 @@ if [[ "$DRY_RUN" -eq 1 ]]; then
exit 0 exit 0
fi fi
echo "Ensuring remote permissions..."
ensure_remote_permissions
if [[ "$SKIP_COMPOSER" -eq 0 ]]; then if [[ "$SKIP_COMPOSER" -eq 0 ]]; then
echo "Installing composer dependencies..." echo "Installing composer dependencies..."
remote_run_www "composer install --no-interaction --prefer-dist --optimize-autoloader" remote_run_www "composer install --no-interaction --prefer-dist --optimize-autoloader"

View File

@@ -24,6 +24,8 @@ class SupportPagesTest extends TestCase
Livewire::test(AdminSupport::class) Livewire::test(AdminSupport::class)
->assertStatus(200) ->assertStatus(200)
->assertSee('Open Documentation') ->assertSee('Open Documentation')
->assertSee('GitHub Issues')
->assertSee('Paid Support')
->assertSee('jabali-support-chat', false); ->assertSee('jabali-support-chat', false);
} }
@@ -36,6 +38,8 @@ class SupportPagesTest extends TestCase
Livewire::test(UserSupport::class) Livewire::test(UserSupport::class)
->assertStatus(200) ->assertStatus(200)
->assertSee('Open Documentation') ->assertSee('Open Documentation')
->assertSee('GitHub Issues')
->assertSee('Paid Support')
->assertSee('jabali-support-chat', false); ->assertSee('jabali-support-chat', false);
} }
} }