feat: allow to disable subscriptions (#144)
This commit is contained in:
parent
91e53a48e4
commit
50056d9f03
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "Zuletzt hinzugefügt",
|
||||
'price' => "Preis",
|
||||
'next_payment' => "Nächste Zahlung",
|
||||
'inactive' => "Deaktiviertes Abonnement",
|
||||
'inactive' => "Abonnement deaktivieren",
|
||||
'member' => "Mitglied",
|
||||
'category' => "Kategorie",
|
||||
'payment_method' => "Zahlungsmethode",
|
||||
|
||||
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "Τελευταία προσθήκη",
|
||||
'price' => "Τιμή",
|
||||
'next_payment' => "Επόμενη πληρωμή",
|
||||
'inactive' => "Ανενεργή συνδρομή",
|
||||
'inactive' => "Απενεργοποίηση συνδρομής",
|
||||
'member' => "Χρήστης",
|
||||
'category' => "Κατηγορία",
|
||||
'payment_method' => "Τρόπος πληρωμής",
|
||||
|
||||
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "Last Added",
|
||||
'price' => "Price",
|
||||
'next_payment' => "Next Payment",
|
||||
'inactive' => "Disabled Subscription",
|
||||
'inactive' => "Disable Subscription",
|
||||
'member' => "Member",
|
||||
'category' => "Category",
|
||||
'payment_method' => "Payment Method",
|
||||
|
||||
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "Última Añadida",
|
||||
'price' => "Precio",
|
||||
'next_payment' => "Próximo Pago",
|
||||
'inactive' => "Suscripción desactivada",
|
||||
'inactive' => "Desactivar Suscripción",
|
||||
'member' => "Miembro",
|
||||
'category' => "Categoría",
|
||||
'payment_method' => "Método de Pago",
|
||||
|
||||
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "Dernier ajouté",
|
||||
'price' => "Prix",
|
||||
'next_payment' => "Prochain paiement",
|
||||
'inactive' => "Abonnement désactivé",
|
||||
'inactive' => "Désactiver l'abonnement",
|
||||
'member' => "Membre",
|
||||
'category' => "Catégorie",
|
||||
'payment_method' => "Méthode de paiement",
|
||||
|
||||
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "最終追加日",
|
||||
'price' => "金額",
|
||||
'next_payment' => "次回支払い",
|
||||
'inactive' => "無効なサブスクリプション",
|
||||
'inactive' => "サブスクリプションを無効にする",
|
||||
'member' => "メンバー",
|
||||
'category' => "カテゴリ",
|
||||
'payment_method' => "支払い方法",
|
||||
|
||||
@ -33,7 +33,7 @@ $i18n = [
|
||||
'last_added' => "Última Adicionada",
|
||||
'price' => "Preço",
|
||||
'next_payment' => "Próximo Pagamento",
|
||||
'inactive' => "Subscrição desactivada",
|
||||
'inactive' => "Desactivar Subscrição",
|
||||
'member' => "Membro",
|
||||
'category' => "Categoria",
|
||||
'payment_method' => "Metodo de Pagamento",
|
||||
|
||||
@ -33,6 +33,7 @@ $i18n = [
|
||||
'last_added' => "Son Eklenen",
|
||||
'price' => "Fiyat",
|
||||
'next_payment' => "Sonraki Ödeme",
|
||||
'inactive' => "Aboneliği Devre Dışı Bırak",
|
||||
'member' => "Üye",
|
||||
'category' => "Kategori",
|
||||
'payment_method' => "Ödeme Yöntemi",
|
||||
@ -70,6 +71,7 @@ $i18n = [
|
||||
// Statistics page
|
||||
'general_statistics' => "Genel İstatistikler",
|
||||
'active_subscriptions' => "Aktif Abonelikler",
|
||||
'inactive_subscriptions' => "Aktif Olmayan Abonelikler",
|
||||
'monthly_cost' => "Aylık Maliyet",
|
||||
'yearly_cost' => "Yıllık Maliyet",
|
||||
'average_monthly' => "Ortalama Aylık Abonelik Maliyeti",
|
||||
|
||||
@ -36,7 +36,7 @@ $i18n = [
|
||||
'last_added' => "创建时间",
|
||||
'price' => "价格",
|
||||
'next_payment' => "下次支付时间",
|
||||
'inactive' => "禁用订阅",
|
||||
'inactive' => "停用订阅",
|
||||
'member' => "成员",
|
||||
'category' => "分类",
|
||||
'payment_method' => "支付方式",
|
||||
|
||||
@ -36,6 +36,7 @@ $i18n = [
|
||||
'last_added' => "建立時間",
|
||||
'price' => "價格",
|
||||
'next_payment' => "下次付款時間",
|
||||
'inactive' => "停用訂閱",
|
||||
'member' => "成員",
|
||||
'category' => "分類",
|
||||
'payment_method' => "付款方式",
|
||||
@ -75,6 +76,7 @@ $i18n = [
|
||||
// 統計頁面
|
||||
'general_statistics' => "整體統計",
|
||||
'active_subscriptions' => "訂閱中",
|
||||
'inactive_subscriptions' => "停用訂閱",
|
||||
'monthly_cost' => "每月費用",
|
||||
'yearly_cost' => "每年費用",
|
||||
'average_monthly' => "平均每月訂閱費用",
|
||||
|
||||
@ -63,13 +63,6 @@
|
||||
});
|
||||
}
|
||||
|
||||
usort($subscriptions, function ($a, $b) {
|
||||
if ($a['inactive'] == $b['inactive']) {
|
||||
return 0;
|
||||
}
|
||||
return $a['inactive'] ? 1 : -1;
|
||||
});
|
||||
|
||||
$currentCategory = 0;
|
||||
$currentPayerUserId = 0;
|
||||
$currentPaymentMethodId = 0;
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
<?php
|
||||
$version = "v1.4.1";
|
||||
$version = "v1.5.0";
|
||||
?>
|
||||
10
index.php
10
index.php
@ -195,11 +195,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group-inline">
|
||||
<input type="checkbox" id="inactive" name="inactive">
|
||||
<label for="inactive"><?= translate('inactive', $i18n) ?></label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="payment_method"><?= translate('payment_method', $i18n) ?></label>
|
||||
<select id="payment_method" name="payment_method_id">
|
||||
@ -252,6 +247,11 @@
|
||||
<input type="text" id="notes" name="notes" placeholder="<?= translate('notes', $i18n) ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group-inline">
|
||||
<input type="checkbox" id="inactive" name="inactive">
|
||||
<label for="inactive"><?= translate('inactive', $i18n) ?></label>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if ($notificationsEnabled) {
|
||||
?>
|
||||
|
||||
19
stats.php
19
stats.php
@ -90,14 +90,6 @@ $result = $stmt->execute();
|
||||
$row = $result->fetchArray(SQLITE3_ASSOC);
|
||||
$activeSubscriptions = $row['active_subscriptions'];
|
||||
|
||||
// Calculate inactive subscriptions
|
||||
$query = "SELECT COUNT(*) AS inactive_subscriptions FROM subscriptions WHERE inactive = 1";
|
||||
$stmt = $db->prepare($query);
|
||||
$stmt->bindParam(':inactive', $inactive, SQLITE3_INTEGER);
|
||||
$result = $stmt->execute();
|
||||
$row = $result->fetchArray(SQLITE3_ASSOC);
|
||||
$inactiveSubscriptions = $row['inactive_subscriptions'];
|
||||
|
||||
// Calculate total monthly price
|
||||
$mostExpensiveSubscription = 0;
|
||||
$amountDueThisMonth = 0;
|
||||
@ -163,6 +155,7 @@ if ($result) {
|
||||
}
|
||||
}
|
||||
|
||||
$numberOfElements = 6;
|
||||
?>
|
||||
<section class="contain">
|
||||
<h2><?= translate('general_statistics', $i18n) ?></h2>
|
||||
@ -171,15 +164,6 @@ if ($result) {
|
||||
<span><?= $activeSubscriptions ?></span>
|
||||
<div class="title"><?= translate('active_subscriptions', $i18n) ?></div>
|
||||
</div>
|
||||
<?php if ($inactiveSubscriptions > 0) {
|
||||
?>
|
||||
<div class="statistic">
|
||||
<span><?= $inactiveSubscriptions ?></span>
|
||||
<div class="title"><?= translate('inactive_subscriptions', $i18n) ?></div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="statistic">
|
||||
<span><?= CurrencyFormatter::format($totalCostPerMonth, $code) ?></span>
|
||||
<div class="title"><?= translate('monthly_cost', $i18n) ?></div>
|
||||
@ -201,7 +185,6 @@ if ($result) {
|
||||
<div class="title"><?= translate('amount_due', $i18n) ?></div>
|
||||
</div>
|
||||
<?php
|
||||
$numberOfElements = 6;
|
||||
if (($numberOfElements + 1) % 3 == 0) {
|
||||
?>
|
||||
<div class="statistic empty"></div>
|
||||
|
||||
@ -202,10 +202,11 @@ main > .contain {
|
||||
}
|
||||
|
||||
.subscription.inactive {
|
||||
color: #808080;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.subscription.inactive span.price {
|
||||
text-decoration: line-through;
|
||||
font-style: italic;
|
||||
background-color: #F8F8FF;
|
||||
}
|
||||
|
||||
.subscription-main {
|
||||
@ -955,6 +956,7 @@ input[type="checkbox"] {
|
||||
display: none;
|
||||
width: 144px;
|
||||
width: max-content;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
@media (max-width: 380px) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user