Skip to content

Commit

Permalink
Add export subscriptions to JSON button
Browse files Browse the repository at this point in the history
  • Loading branch information
ellite committed Feb 14, 2024
1 parent c9135e1 commit f2ed357
Show file tree
Hide file tree
Showing 13 changed files with 73 additions and 1 deletion.
41 changes: 41 additions & 0 deletions endpoints/subscriptions/export.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

require_once '../../includes/connect_endpoint.php';

session_start();

require_once '../../includes/getdbkeys.php';

$query = "SELECT * FROM subscriptions";

$result = $db->query($query);
if ($result) {
$subscriptions = array();
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
// Map foreign keys to their corresponding values
$row['currency'] = $currencies[$row['currency_id']];
$row['payment_method'] = $payment_methods[$row['payment_method_id']];
$row['payer_user'] = $members[$row['payer_user_id']];
$row['category'] = $categories[$row['category_id']];
$row['cycle'] = $cycles[$row['cycle']];
$row['frequency'] = $frequencies[$row['frequency']];

$subscriptions[] = $row;
}

// Output JSON
$json = json_encode($subscriptions, JSON_PRETTY_PRINT);

// Set headers for file download
header('Content-Type: application/json');
header('Content-Disposition: attachment; filename="subscriptions.json"');
header('Pragma: no-cache');
header('Expires: 0');

// Output JSON for download
echo $json;
} else {
echo json_encode(array('error' => 'Failed to fetch subscriptions.'));
}

?>
2 changes: 2 additions & 0 deletions includes/i18n/de.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Test",
"add" => "Hinzufügen",
"save" => "Speichern",
"export_subscriptions" => "Abonnements exportieren",
"export_to_json" => "Nach JSON exportieren",
// Toast
"success" => "Erfolgreich",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/el.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Δοκιμή",
"add" => "Προσθήκη",
"save" => "Αποθήκευση",
"export_subscriptions" => "Εξαγωγή συνδρομών",
"export_to_json" => "Εξαγωγή σε JSON",
// Toast
"success" => "Επιτυχία",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/en.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Test",
"add" => "Add",
"save" => "Save",
"export_subscriptions" => "Export Subscriptions",
"export_to_json" => "Export to JSON",
// Toast
"success" => "Success",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/es.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Probar",
"add" => "Agregar",
"save" => "Guardar",
"export_subscriptions" => "Exportar suscripciones",
"export_to_json" => "Exportar a JSON",
// Toast
"success" => "Éxito",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/fr.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Test",
"add" => "Ajouter",
"save" => "Enregistrer",
"export_subscriptions" => "Exporter les abonnements",
"export_to_json" => "Exporter en JSON",
// Toast
"success" => "Succès",
// Réponses de l'API
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/jp.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "テスト",
"add" => "追加",
"save" => "保存",
"export_subscriptions" => "購読をエクスポート",
"export_to_json" => "JSONにエクスポート",
// Toast
"success" => "成功",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/pt.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Testar",
"add" => "Adicionar",
"save" => "Guardar",
"export_subscriptions" => "Exportar Subscrições",
"export_to_json" => "Exportar para JSON",
// Toast
"success" => "Sucesso",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/tr.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@
"test" => "Test Et",
"add" => "Ekle",
"save" => "Kaydet",
"export_subscriptions" => "Abonelikleri Dışa Aktar",
"export_to_json" => "JSON'a dışa aktar",
// Toast
"success" => "Başarılı",
// Endpoint responses
Expand Down
2 changes: 2 additions & 0 deletions includes/i18n/zh_cn.php
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,8 @@
"test" => "测试",
"add" => "添加",
"save" => "保存",
"export_subscriptions" => "导出订阅",
"export_to_json" => "导出为 JSON",

// Toast
"success" => "成功",
Expand Down
2 changes: 1 addition & 1 deletion includes/version.php
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<?php
$version = "v1.2.3";
$version = "v1.2.4";
?>
4 changes: 4 additions & 0 deletions scripts/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -608,4 +608,8 @@ function setRemoveBackgroundCookie() {
const removeBackgroundCheckbox = document.querySelector("#removebackground");
const value = removeBackgroundCheckbox.checked;
document.cookie = `removeBackground=${value}; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/`;
}

function exportToJson() {
window.location.href = "endpoints/subscriptions/export.php";
}
9 changes: 9 additions & 0 deletions settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,15 @@
</div>
</section>

<section class="account-section">
<header>
<h2><?= translate('export_subscriptions', $i18n) ?></h2>
</header>
<div>
<input type="button" class="button" value="<?= translate('export_to_json', $i18n) ?>" id="exportToJson" onClick="exportToJson()"/>
<div>
</section>

</section>
<script src="scripts/settings.js?<?= $version ?>"></script>

Expand Down

0 comments on commit f2ed357

Please sign in to comment.