Skip to content

Commit f21c761

Browse files
author
nejc
committed
feat: make whats-new signature configurable via config and .env
1 parent c97213a commit f21c761

File tree

2 files changed

+118
-71
lines changed

2 files changed

+118
-71
lines changed

config/version-platform-manager.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,15 @@
9393
'enabled' => env('VERSION_NOTIFICATIONS_ENABLED', true),
9494
'channels' => ['mail', 'database'],
9595
],
96+
97+
/*
98+
|--------------------------------------------------------------------------
99+
| Whats New Style
100+
|--------------------------------------------------------------------------
101+
|
102+
| The style for the whats new modal. Options: 'tailwind', 'bootstrap'
103+
|
104+
*/
105+
'whats_new_style' => env('VERSION_WHATS_NEW_STYLE', 'tailwind'), // or 'bootstrap'
106+
'whats_new_signature' => env('VERSION_WHATS_NEW_SIGNATURE', 'Best regards, <br>Your Company Name'),
96107
];
Lines changed: 107 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,118 @@
1-
<div>
2-
@if(!session()->has('rdp_on'))
3-
<div id="whats-new-modal" class="fixed inset-0 z-50 overflow-y-auto {{ isset($autoShow) && $autoShow ? 'block' : 'hidden' }}" aria-labelledby="modal-title" role="dialog" aria-modal="true">
4-
<div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
5-
<!-- Background overlay -->
6-
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" aria-hidden="true"></div>
1+
@php
2+
$style = $style ?? config('version-platform-manager.whats_new_style', 'tailwind');
3+
@endphp
74

8-
<!-- Modal panel -->
9-
<div class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full">
10-
<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
11-
<div class="text-center">
12-
<div class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-green-100 mb-4">
13-
<svg class="h-6 w-6 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
14-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2l4 -4" />
15-
</svg>
16-
</div>
17-
18-
<h2 class="text-2xl font-bold text-gray-900 mb-6">
19-
{!! $title ?? '🎉 Exciting News: 🎉 <br> Major Updates to Improve Your Experience!' !!}
20-
</h2>
21-
22-
<div class="text-left mt-6 space-y-6">
23-
@if(isset($latestVersion) && $latestVersion)
24-
<!-- System Update -->
25-
<div class="bg-blue-50 border-l-4 border-blue-400 p-4 rounded">
26-
<h3 class="text-lg font-semibold text-blue-900 mb-2">
27-
System Update from Version {{ $userVersion->version ?? '1.0.0' }} to {{ $latestVersion->version }}
28-
</h3>
29-
<p class="text-blue-800">{{ $latestVersion->description ?: 'We\'ve made significant improvements to enhance your experience!' }}</p>
30-
</div>
31-
@endif
5+
@if ($style === 'bootstrap')
6+
{{-- Bootstrap 5 Modal --}}
7+
<div class="modal fade show" id="whatsNewModal" tabindex="-1" aria-labelledby="whatsNewModalLabel" style="display: block; background: rgba(0,0,0,0.5);" aria-modal="true" role="dialog">
8+
<div class="modal-dialog modal-dialog-centered">
9+
<div class="modal-content">
10+
<div class="modal-header">
11+
<h5 class="modal-title" id="whatsNewModalLabel">🎉 Exciting News: 🎉</h5>
12+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" onclick="closeModal()"></button>
13+
</div>
14+
<div class="modal-body">
15+
<strong>Major Updates to Improve Your Experience!</strong>
16+
<p>We're excited for you to experience these updates.<br>
17+
If you have any questions or comments, please don't hesitate to reach out.</p>
18+
<p class="mt-3 mb-0"><small>Best regards,<br>Kitio Internacional d.o.o.</small></p>
19+
</div>
20+
<div class="modal-footer">
21+
<button type="button" class="btn btn-primary" onclick="closeModal()">Got it!</button>
22+
</div>
23+
</div>
24+
</div>
25+
</div>
26+
<script>
27+
function closeModal() {
28+
document.getElementById('whatsNewModal').style.display = 'none';
29+
}
30+
</script>
31+
@else
32+
{{-- Tailwind Modal (existing code) --}}
33+
@if (!defined('TAILWIND_LOADED'))
34+
<script src="https://cdn.tailwindcss.com"></script>
35+
@php define('TAILWIND_LOADED', true); @endphp
36+
@endif
37+
<div>
38+
@if(!session()->has('rdp_on'))
39+
<div id="whats-new-modal" class="fixed inset-0 z-50 overflow-y-auto {{ isset($autoShow) && $autoShow ? 'block' : 'hidden' }}" aria-labelledby="modal-title" role="dialog" aria-modal="true">
40+
<div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
41+
<!-- Background overlay -->
42+
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" aria-hidden="true"></div>
3243

33-
@if(isset($whatsNew) && $whatsNew->isNotEmpty())
34-
@foreach($whatsNew->groupBy('platformVersion.version') as $version => $features)
35-
@if($version !== ($userVersion->version ?? '1.0.0'))
36-
<div class="bg-gray-50 p-4 rounded-lg">
37-
<h5 class="text-lg font-semibold text-gray-900 mb-3">🔒 What Does This Mean for You?</h5>
38-
<ul class="space-y-2">
39-
@foreach($features as $feature)
40-
<li class="flex items-start space-x-2">
41-
<span class="text-lg">{{ $feature->type_icon ?? '📝' }}</span>
42-
<div>
43-
<strong class="text-gray-900">{{ $feature->title }}:</strong>
44-
<span class="text-gray-700">{{ $feature->content }}</span>
45-
</div>
46-
</li>
47-
@endforeach
48-
</ul>
49-
</div>
44+
<!-- Modal panel -->
45+
<div class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full">
46+
<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
47+
<div class="text-center">
48+
<div class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-green-100 mb-4">
49+
<svg class="h-6 w-6 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
50+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2l4 -4" />
51+
</svg>
52+
</div>
53+
54+
<h2 class="text-2xl font-bold text-gray-900 mb-6">
55+
{!! $title ?? '🎉 Exciting News: 🎉 <br> Major Updates to Improve Your Experience!' !!}
56+
</h2>
57+
58+
<div class="text-left mt-6 space-y-6">
59+
@if(isset($latestVersion) && $latestVersion)
60+
<!-- System Update -->
61+
<div class="bg-blue-50 border-l-4 border-blue-400 p-4 rounded">
62+
<h3 class="text-lg font-semibold text-blue-900 mb-2">
63+
System Update from Version {{ $userVersion->version ?? '1.0.0' }} to {{ $latestVersion->version }}
64+
</h3>
65+
<p class="text-blue-800">{{ $latestVersion->description ?: 'We\'ve made significant improvements to enhance your experience!' }}</p>
66+
</div>
67+
@endif
68+
69+
@if(isset($whatsNew) && $whatsNew->isNotEmpty())
70+
@foreach($whatsNew->groupBy('platformVersion.version') as $version => $features)
71+
@if($version !== ($userVersion->version ?? '1.0.0'))
72+
<div class="bg-gray-50 p-4 rounded-lg">
73+
<h5 class="text-lg font-semibold text-gray-900 mb-3">🔒 What Does This Mean for You?</h5>
74+
<ul class="space-y-2">
75+
@foreach($features as $feature)
76+
<li class="flex items-start space-x-2">
77+
<span class="text-lg">{{ $feature->type_icon ?? '📝' }}</span>
78+
<div>
79+
<strong class="text-gray-900">{{ $feature->title }}:</strong>
80+
<span class="text-gray-700">{{ $feature->content }}</span>
81+
</div>
82+
</li>
83+
@endforeach
84+
</ul>
85+
</div>
5086

51-
@if(!$loop->last)
52-
<hr class="border-gray-200">
87+
@if(!$loop->last)
88+
<hr class="border-gray-200">
89+
@endif
5390
@endif
54-
@endif
55-
@endforeach
56-
@endif
91+
@endforeach
92+
@endif
5793

58-
<div class="bg-green-50 border-l-4 border-green-400 p-4 rounded">
59-
<p class="text-green-800 mb-2">We're excited for you to experience these updates.</p>
60-
<p class="text-green-800">If you have any questions or comments, please don't hesitate to reach out.</p>
61-
94+
<div class="bg-green-50 border-l-4 border-green-400 p-4 rounded">
95+
<p class="text-green-800 mb-2">We're excited for you to experience these updates.</p>
96+
<p class="text-green-800">If you have any questions or comments, please don't hesitate to reach out.</p>
97+
<p class="text-green-900 font-semibold mt-3">{!! config('version-platform-manager.whats_new_signature') !!}</p>
98+
</div>
6299
</div>
63100
</div>
64101
</div>
65-
</div>
66-
67-
<div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
68-
<button type="button" class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm" onclick="closeModal()">
69-
{{ __('Go to dashboard') }}
70-
</button>
102+
103+
<div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
104+
<button type="button" class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm" onclick="closeModal()">
105+
{{ __('Go to dashboard') }}
106+
</button>
107+
</div>
71108
</div>
72109
</div>
73110
</div>
74-
</div>
75-
@endif
76-
</div>
77-
78-
<script>
79-
function closeModal() {
80-
document.getElementById('whats-new-modal').classList.add('hidden');
81-
}
82-
</script>
111+
@endif
112+
</div>
113+
<script>
114+
function closeModal() {
115+
document.getElementById('whats-new-modal').classList.add('hidden');
116+
}
117+
</script>
118+
@endif

0 commit comments

Comments
 (0)