|
30 | 30 | echo ' |
31 | 31 | <div class="row"> |
32 | 32 | <div class="col-md-12 col-lg-6"> |
33 | | - <div class="row"> |
34 | | - <div class="col-12 mb-3"> |
35 | | - <div class="card card-primary card-outline"> |
36 | | - <div class="card-header"> |
37 | | - <div class="card-title"> |
38 | | - <i class="fa fa-cogs mr-2"></i>'.tr('Servizi OSMCloud').' |
39 | | - </div> |
40 | | - </div> |
| 33 | + <div class="card card-primary card-outline"> |
| 34 | + <div class="card-header"> |
| 35 | + <div class="card-title"> |
| 36 | + <i class="fa fa-cogs mr-2"></i>'.tr('Servizi OSMCloud').' |
| 37 | + </div> |
| 38 | + </div> |
41 | 39 |
|
42 | | - <div class="card-body p-0">'; |
| 40 | + <div class="card-body p-0">'; |
43 | 41 |
|
44 | 42 | // Recupero di tutti i servizi e risorse attivi |
45 | 43 | $servizi = Services::getServiziAttivi(true); |
|
71 | 69 | // Messaggi di avviso |
72 | 70 | if (!$servizi_scaduti->isEmpty()) { |
73 | 71 | echo ' |
74 | | - <div class="alert alert-danger m-3 mb-0"> |
75 | | - <i class="fa fa-exclamation-triangle mr-2"></i>'.tr('Attenzione, alcuni elementi sono scaduti o hanno esaurito i crediti: _NUM_', [ |
76 | | - '_NUM_' => $servizi_scaduti->count(), |
77 | | - ]).' |
78 | | - </div>'; |
| 72 | + <div class="alert alert-danger m-3 mb-0"> |
| 73 | + <i class="fa fa-exclamation-triangle mr-2"></i>'.tr('Attenzione, alcuni elementi sono scaduti o hanno esaurito i crediti: _NUM_', [ |
| 74 | + '_NUM_' => $servizi_scaduti->count(), |
| 75 | + ]).' |
| 76 | + </div>'; |
79 | 77 | } |
80 | 78 |
|
81 | 79 | if (!$servizi_in_scadenza->isEmpty()) { |
82 | 80 | echo ' |
83 | | - <div class="alert alert-warning m-3 mb-0"> |
84 | | - <i class="fa fa-clock-o mr-2"></i>'.tr('Attenzione, alcuni elementi sono in scadenza o stanno per esaurire i crediti: _NUM_', [ |
85 | | - '_NUM_' => $servizi_in_scadenza->count(), |
86 | | - ]).' |
87 | | - </div>'; |
| 81 | + <div class="alert alert-warning m-3 mb-0"> |
| 82 | + <i class="fa fa-clock-o mr-2"></i>'.tr('Attenzione, alcuni elementi sono in scadenza o stanno per esaurire i crediti: _NUM_', [ |
| 83 | + '_NUM_' => $servizi_in_scadenza->count(), |
| 84 | + ]).' |
| 85 | + </div>'; |
88 | 86 | } |
89 | 87 |
|
90 | 88 | echo ' |
91 | | - <table class="table table-hover table-striped table-sm mb-0"> |
92 | | - <thead> |
93 | | - <tr> |
94 | | - <th width="5%" class="text-center">'.tr('Stato').'</th> |
95 | | - <th width="35%">'.tr('Nome').'</th> |
96 | | - <th width="15%">'.tr('Tipo').'</th> |
97 | | - <th width="15%">'.tr('Crediti').'</th> |
98 | | - <th width="20%">'.tr('Scadenza').'</th> |
99 | | - <th width="10%" class="text-center">'.tr('#').'</th> |
100 | | - </tr> |
101 | | - </thead> |
102 | | -
|
103 | | - <tbody>'; |
| 89 | + <table class="table table-hover table-striped table-sm mb-0"> |
| 90 | + <thead> |
| 91 | + <tr> |
| 92 | + <th width="5%" class="text-center">'.tr('Stato').'</th> |
| 93 | + <th width="35%">'.tr('Nome').'</th> |
| 94 | + <th width="15%">'.tr('Tipo').'</th> |
| 95 | + <th width="15%">'.tr('Crediti').'</th> |
| 96 | + <th width="20%">'.tr('Scadenza').'</th> |
| 97 | + <th width="10%" class="text-center">'.tr('#').'</th> |
| 98 | + </tr> |
| 99 | + </thead> |
| 100 | +
|
| 101 | + <tbody>'; |
104 | 102 | foreach ($servizi as $elemento) { |
105 | 103 | // Verifica che $elemento sia un array e contenga i campi necessari |
106 | 104 | if (!is_array($elemento) || !isset($elemento['expiration_at'])) { |
|
131 | 129 | '<span class="text-muted">-</span>'; |
132 | 130 |
|
133 | 131 | echo ' |
134 | | - <tr class="'.$status_class.'"> |
135 | | - <td class="text-center">'.$status_icon.'</td> |
136 | | - <td><strong>'.$codice.'</strong><br><small class="text-muted">'.$nome.'</small></td> |
137 | | - <td><span class="badge badge-secondary">'.$tipo.'</span></td> |
138 | | - <td>'.$crediti_display.'</td> |
139 | | - <td>'.dateFormat($scadenza).' <br><small class="text-muted">'.$scadenza->diffForHumans().'</small></td> |
140 | | - <td class="text-center"> |
141 | | - <input type="checkbox" class="check_rinnova '.($is_expiring || $is_expired || $credits_warning || $credits_expired ? '' : 'hide').'" name="rinnova[]" value="'.$codice.'"> |
142 | | - </td> |
143 | | - </tr>'; |
| 132 | + <tr class="'.$status_class.'"> |
| 133 | + <td class="text-center">'.$status_icon.'</td> |
| 134 | + <td><strong>'.$codice.'</strong><br><small class="text-muted">'.$nome.'</small></td> |
| 135 | + <td><span class="badge badge-secondary">'.$tipo.'</span></td> |
| 136 | + <td>'.$crediti_display.'</td> |
| 137 | + <td>'.dateFormat($scadenza).' <br><small class="text-muted">'.$scadenza->diffForHumans().'</small></td> |
| 138 | + <td class="text-center"> |
| 139 | + <input type="checkbox" class="check_rinnova '.($is_expiring || $is_expired || $credits_warning || $credits_expired ? '' : 'hide').'" name="rinnova[]" value="'.$codice.'"> |
| 140 | + </td> |
| 141 | + </tr>'; |
144 | 142 | } |
145 | 143 |
|
146 | 144 | // Conteggio servizi e risorse |
147 | 145 | $count_servizi = $servizi->filter(fn ($item) => !isset($item['credits']))->count(); |
148 | 146 |
|
149 | 147 | echo ' |
150 | | - </tbody> |
151 | | - <tfoot> |
152 | | - <tr class="table-light"> |
153 | | - <td colspan="4"> |
154 | | - <strong>'.tr('Totale elementi: _NUM_', ['_NUM_' => $servizi->count()]).'</strong> |
155 | | - </td> |
156 | | - <td colspan="2" class="text-right">'; |
| 148 | + </tbody> |
| 149 | + <tfoot> |
| 150 | + <tr class="table-light"> |
| 151 | + <td colspan="4"> |
| 152 | + <strong>'.tr('Totale elementi: _NUM_', ['_NUM_' => $servizi->count()]).'</strong> |
| 153 | + </td> |
| 154 | + <td colspan="2" class="text-right">'; |
157 | 155 |
|
158 | 156 | if (!$servizi_in_scadenza->isEmpty() || !$servizi_scaduti->isEmpty()) { |
159 | 157 | echo '<a href="https://marketplace.devcode.it/" target="_blank" id="btn_rinnova" class="btn btn-sm btn-primary"><i class="fa fa-shopping-cart mr-1"></i>'.tr('Rinnova').'</a>'; |
160 | 158 | } |
161 | 159 |
|
162 | | - echo ' </td> |
163 | | - </tr> |
164 | | - </tfoot> |
165 | | - </table>'; |
| 160 | +echo ' </td> |
| 161 | + </tr> |
| 162 | + </tfoot> |
| 163 | + </table>'; |
166 | 164 |
|
167 | 165 | } else { |
168 | 166 | echo ' |
169 | | - <div class="alert alert-info m-3"> |
170 | | - <i class="fa fa-info-circle mr-2"></i>'.tr('Nessun servizio OSMCloud abilitato al momento').'. |
171 | | - </div>'; |
| 167 | + <div class="alert alert-info m-3"> |
| 168 | + <i class="fa fa-info-circle mr-2"></i>'.tr('Nessun servizio OSMCloud abilitato al momento').'. |
| 169 | + </div>'; |
172 | 170 | } |
173 | 171 |
|
174 | 172 | echo ' |
175 | | - </div> |
176 | | - </div> |
177 | 173 | </div> |
178 | | -
|
179 | | -
|
180 | 174 | </div> |
181 | 175 | </div> |
182 | 176 |
|
|
192 | 186 | <div class="card-title"> |
193 | 187 | <i class="fa fa-file-text-o mr-2"></i>'.tr('Statistiche FE').' |
194 | 188 | </div> |
195 | | - <div class="card-tools"> |
| 189 | + <div class="card-body"> |
196 | 190 | <button type="button" class="btn btn-tool" data-card-widget="collapse"> |
197 | 191 | <i class="fas fa-minus"></i> |
198 | 192 | </button> |
|
0 commit comments