diff --git a/README.md b/README.md index 4fc34cc..93da507 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ - - - Wallos + + + Wallos Wallos: Open-Source Personal Subscription Tracker diff --git a/endpoints/settings/colortheme.php b/endpoints/settings/colortheme.php new file mode 100644 index 0000000..516e9d7 --- /dev/null +++ b/endpoints/settings/colortheme.php @@ -0,0 +1,34 @@ + false, + "message" => translate('session_expired', $i18n) + ])); + } + + if ($_SERVER["REQUEST_METHOD"] === "POST") { + $postData = file_get_contents("php://input"); + $data = json_decode($postData, true); + + $color = $data['color']; + + $stmt = $db->prepare('UPDATE settings SET color_theme = :color'); + $stmt->bindParam(':color', $color, SQLITE3_TEXT); + + if ($stmt->execute()) { + die(json_encode([ + "success" => true, + "message" => translate("success", $i18n) + ])); + } else { + die(json_encode([ + "success" => false, + "message" => translate("error", $i18n) + ])); + } + } + +?> \ No newline at end of file diff --git a/endpoints/settings/customtheme.php b/endpoints/settings/customtheme.php new file mode 100644 index 0000000..a5c4be5 --- /dev/null +++ b/endpoints/settings/customtheme.php @@ -0,0 +1,41 @@ + false, + "message" => translate('session_expired', $i18n) + ])); + } + + if ($_SERVER["REQUEST_METHOD"] === "POST") { + $postData = file_get_contents("php://input"); + $data = json_decode($postData, true); + + $main_color = $data['mainColor']; + $accent_color = $data['accentColor']; + $hover_color = $data['hoverColor']; + + $stmt = $db->prepare('DELETE FROM custom_colors'); + $stmt->execute(); + + $stmt = $db->prepare('INSERT INTO custom_colors (main_color, accent_color, hover_color) VALUES (:main_color, :accent_color, :hover_color)'); + $stmt->bindParam(':main_color', $main_color, SQLITE3_TEXT); + $stmt->bindParam(':accent_color', $accent_color, SQLITE3_TEXT); + $stmt->bindParam(':hover_color', $hover_color, SQLITE3_TEXT); + + if ($stmt->execute()) { + die(json_encode([ + "success" => true, + "message" => translate("success", $i18n) + ])); + } else { + die(json_encode([ + "success" => false, + "message" => translate("error", $i18n) + ])); + } + } + +?> \ No newline at end of file diff --git a/endpoints/settings/resettheme.php b/endpoints/settings/resettheme.php new file mode 100644 index 0000000..df80499 --- /dev/null +++ b/endpoints/settings/resettheme.php @@ -0,0 +1,28 @@ + false, + "message" => translate('session_expired', $i18n) + ])); + } + + if ($_SERVER["REQUEST_METHOD"] === "DELETE") { + $stmt = $db->prepare('DELETE FROM custom_colors'); + + if ($stmt->execute()) { + die(json_encode([ + "success" => true, + "message" => translate("success", $i18n) + ])); + } else { + die(json_encode([ + "success" => false, + "message" => translate("error", $i18n) + ])); + } + } + +?> \ No newline at end of file diff --git a/endpoints/subscriptions/get.php b/endpoints/subscriptions/get.php index 8cc8940..1988b4a 100644 --- a/endpoints/subscriptions/get.php +++ b/endpoints/subscriptions/get.php @@ -14,6 +14,11 @@ $theme = $settings['theme']; } + $colorTheme = "blue"; + if (isset($settings['color_theme'])) { + $colorTheme = $settings['color_theme']; + } + if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) { $sort = "next_payment"; $order = "ASC"; @@ -63,7 +68,7 @@ } } - $defaultLogo = $theme == "light" ? "images/wallos.png" : "images/walloswhite.png"; + $defaultLogo = $theme == "light" ? "images/siteicons/" . $colorTheme . "/wallos.png" : "images/siteicons/" . $colorTheme . "/walloswhite.png"; foreach ($subscriptions as $subscription) { $id = $subscription['id']; $print[$id]['id'] = $id; @@ -97,7 +102,7 @@ } if (isset($print)) { - printSubscriptions($print, $sort, $categories, $members, $i18n); + printSubscriptions($print, $sort, $categories, $members, $i18n, $colorTheme); } if (count($subscriptions) == 0) { diff --git a/images/siteicons/category.png b/images/siteicons/blue/category.png similarity index 100% rename from images/siteicons/category.png rename to images/siteicons/blue/category.png diff --git a/images/siteicons/blue/check.png b/images/siteicons/blue/check.png new file mode 100644 index 0000000..972b25d Binary files /dev/null and b/images/siteicons/blue/check.png differ diff --git a/images/siteicons/delete.png b/images/siteicons/blue/delete.png similarity index 100% rename from images/siteicons/delete.png rename to images/siteicons/blue/delete.png diff --git a/images/siteicons/edit.png b/images/siteicons/blue/edit.png similarity index 100% rename from images/siteicons/edit.png rename to images/siteicons/blue/edit.png diff --git a/images/siteicons/notes.png b/images/siteicons/blue/notes.png similarity index 100% rename from images/siteicons/notes.png rename to images/siteicons/blue/notes.png diff --git a/images/siteicons/payment.png b/images/siteicons/blue/payment.png similarity index 100% rename from images/siteicons/payment.png rename to images/siteicons/blue/payment.png diff --git a/images/siteicons/save.png b/images/siteicons/blue/save.png similarity index 100% rename from images/siteicons/save.png rename to images/siteicons/blue/save.png diff --git a/images/siteicons/subscription.png b/images/siteicons/blue/subscription.png similarity index 100% rename from images/siteicons/subscription.png rename to images/siteicons/blue/subscription.png diff --git a/images/siteicons/blue/wallos.png b/images/siteicons/blue/wallos.png new file mode 100644 index 0000000..ecf4075 Binary files /dev/null and b/images/siteicons/blue/wallos.png differ diff --git a/images/siteicons/blue/walloswhite.png b/images/siteicons/blue/walloswhite.png new file mode 100644 index 0000000..fcba92e Binary files /dev/null and b/images/siteicons/blue/walloswhite.png differ diff --git a/images/siteicons/web.png b/images/siteicons/blue/web.png similarity index 100% rename from images/siteicons/web.png rename to images/siteicons/blue/web.png diff --git a/images/siteicons/websearch.png b/images/siteicons/blue/websearch.png similarity index 100% rename from images/siteicons/websearch.png rename to images/siteicons/blue/websearch.png diff --git a/images/siteicons/check.png b/images/siteicons/check.png deleted file mode 100644 index b0c241e..0000000 Binary files a/images/siteicons/check.png and /dev/null differ diff --git a/images/siteicons/green/category.png b/images/siteicons/green/category.png new file mode 100644 index 0000000..5bf004d Binary files /dev/null and b/images/siteicons/green/category.png differ diff --git a/images/siteicons/green/check.png b/images/siteicons/green/check.png new file mode 100644 index 0000000..05a8b33 Binary files /dev/null and b/images/siteicons/green/check.png differ diff --git a/images/siteicons/green/delete.png b/images/siteicons/green/delete.png new file mode 100644 index 0000000..6d07ebc Binary files /dev/null and b/images/siteicons/green/delete.png differ diff --git a/images/siteicons/green/edit.png b/images/siteicons/green/edit.png new file mode 100644 index 0000000..db60c93 Binary files /dev/null and b/images/siteicons/green/edit.png differ diff --git a/images/siteicons/green/notes.png b/images/siteicons/green/notes.png new file mode 100644 index 0000000..d28c2a2 Binary files /dev/null and b/images/siteicons/green/notes.png differ diff --git a/images/siteicons/green/payment.png b/images/siteicons/green/payment.png new file mode 100644 index 0000000..0f95e3a Binary files /dev/null and b/images/siteicons/green/payment.png differ diff --git a/images/siteicons/green/save.png b/images/siteicons/green/save.png new file mode 100644 index 0000000..c7e955c Binary files /dev/null and b/images/siteicons/green/save.png differ diff --git a/images/siteicons/green/subscription.png b/images/siteicons/green/subscription.png new file mode 100644 index 0000000..d113a6a Binary files /dev/null and b/images/siteicons/green/subscription.png differ diff --git a/images/siteicons/green/wallos.png b/images/siteicons/green/wallos.png new file mode 100644 index 0000000..3a57f9d Binary files /dev/null and b/images/siteicons/green/wallos.png differ diff --git a/images/siteicons/green/walloswhite.png b/images/siteicons/green/walloswhite.png new file mode 100644 index 0000000..d7ae6b4 Binary files /dev/null and b/images/siteicons/green/walloswhite.png differ diff --git a/images/siteicons/green/web.png b/images/siteicons/green/web.png new file mode 100644 index 0000000..3bc98f6 Binary files /dev/null and b/images/siteicons/green/web.png differ diff --git a/images/siteicons/green/websearch.png b/images/siteicons/green/websearch.png new file mode 100644 index 0000000..0e4640c Binary files /dev/null and b/images/siteicons/green/websearch.png differ diff --git a/images/siteicons/red/category.png b/images/siteicons/red/category.png new file mode 100644 index 0000000..74e4d20 Binary files /dev/null and b/images/siteicons/red/category.png differ diff --git a/images/siteicons/red/check.png b/images/siteicons/red/check.png new file mode 100644 index 0000000..6f963b6 Binary files /dev/null and b/images/siteicons/red/check.png differ diff --git a/images/siteicons/red/delete.png b/images/siteicons/red/delete.png new file mode 100644 index 0000000..405102b Binary files /dev/null and b/images/siteicons/red/delete.png differ diff --git a/images/siteicons/red/edit.png b/images/siteicons/red/edit.png new file mode 100644 index 0000000..31c472b Binary files /dev/null and b/images/siteicons/red/edit.png differ diff --git a/images/siteicons/red/notes.png b/images/siteicons/red/notes.png new file mode 100644 index 0000000..522f88e Binary files /dev/null and b/images/siteicons/red/notes.png differ diff --git a/images/siteicons/red/payment.png b/images/siteicons/red/payment.png new file mode 100644 index 0000000..074a09a Binary files /dev/null and b/images/siteicons/red/payment.png differ diff --git a/images/siteicons/red/save.png b/images/siteicons/red/save.png new file mode 100644 index 0000000..b39509d Binary files /dev/null and b/images/siteicons/red/save.png differ diff --git a/images/siteicons/red/subscription.png b/images/siteicons/red/subscription.png new file mode 100644 index 0000000..ea1df27 Binary files /dev/null and b/images/siteicons/red/subscription.png differ diff --git a/images/siteicons/red/wallos.png b/images/siteicons/red/wallos.png new file mode 100644 index 0000000..2480618 Binary files /dev/null and b/images/siteicons/red/wallos.png differ diff --git a/images/siteicons/red/walloswhite.png b/images/siteicons/red/walloswhite.png new file mode 100644 index 0000000..8aaff74 Binary files /dev/null and b/images/siteicons/red/walloswhite.png differ diff --git a/images/siteicons/red/web.png b/images/siteicons/red/web.png new file mode 100644 index 0000000..d394827 Binary files /dev/null and b/images/siteicons/red/web.png differ diff --git a/images/siteicons/red/websearch.png b/images/siteicons/red/websearch.png new file mode 100644 index 0000000..84aa150 Binary files /dev/null and b/images/siteicons/red/websearch.png differ diff --git a/images/siteicons/yellow/category.png b/images/siteicons/yellow/category.png new file mode 100644 index 0000000..84c80cc Binary files /dev/null and b/images/siteicons/yellow/category.png differ diff --git a/images/siteicons/yellow/check.png b/images/siteicons/yellow/check.png new file mode 100644 index 0000000..4e8f44c Binary files /dev/null and b/images/siteicons/yellow/check.png differ diff --git a/images/siteicons/yellow/delete.png b/images/siteicons/yellow/delete.png new file mode 100644 index 0000000..4e53c6f Binary files /dev/null and b/images/siteicons/yellow/delete.png differ diff --git a/images/siteicons/yellow/edit.png b/images/siteicons/yellow/edit.png new file mode 100644 index 0000000..85bdaf7 Binary files /dev/null and b/images/siteicons/yellow/edit.png differ diff --git a/images/siteicons/yellow/notes.png b/images/siteicons/yellow/notes.png new file mode 100644 index 0000000..a0aac11 Binary files /dev/null and b/images/siteicons/yellow/notes.png differ diff --git a/images/siteicons/yellow/payment.png b/images/siteicons/yellow/payment.png new file mode 100644 index 0000000..3069406 Binary files /dev/null and b/images/siteicons/yellow/payment.png differ diff --git a/images/siteicons/yellow/save.png b/images/siteicons/yellow/save.png new file mode 100644 index 0000000..971ecf5 Binary files /dev/null and b/images/siteicons/yellow/save.png differ diff --git a/images/siteicons/yellow/subscription.png b/images/siteicons/yellow/subscription.png new file mode 100644 index 0000000..41f811b Binary files /dev/null and b/images/siteicons/yellow/subscription.png differ diff --git a/images/siteicons/yellow/wallos.png b/images/siteicons/yellow/wallos.png new file mode 100644 index 0000000..7a8bf5f Binary files /dev/null and b/images/siteicons/yellow/wallos.png differ diff --git a/images/siteicons/yellow/walloswhite.png b/images/siteicons/yellow/walloswhite.png new file mode 100644 index 0000000..8f088e9 Binary files /dev/null and b/images/siteicons/yellow/walloswhite.png differ diff --git a/images/siteicons/yellow/web.png b/images/siteicons/yellow/web.png new file mode 100644 index 0000000..d2a6f98 Binary files /dev/null and b/images/siteicons/yellow/web.png differ diff --git a/images/siteicons/yellow/websearch.png b/images/siteicons/yellow/websearch.png new file mode 100644 index 0000000..8162e62 Binary files /dev/null and b/images/siteicons/yellow/websearch.png differ diff --git a/images/wallos.png b/images/wallos.png deleted file mode 100644 index 1885ae4..0000000 Binary files a/images/wallos.png and /dev/null differ diff --git a/images/walloswhite.png b/images/walloswhite.png deleted file mode 100644 index 7baa0f8..0000000 Binary files a/images/walloswhite.png and /dev/null differ diff --git a/includes/getsettings.php b/includes/getsettings.php index 421df17..3f1ae6d 100644 --- a/includes/getsettings.php +++ b/includes/getsettings.php @@ -7,9 +7,18 @@ if ($settings) { $cookieExpire = time() + (30 * 24 * 60 * 60); setcookie('theme', $settings['dark_theme'] ? 'dark': 'light', $cookieExpire); $settings['theme'] = $settings['dark_theme'] ? 'dark': 'light'; + $settings['color_theme'] = $settings['color_theme'] ? $settings['color_theme'] : "blue"; $settings['showMonthlyPrice'] = $settings['monthly_price'] ? 'true': 'false'; $settings['convertCurrency'] = $settings['convert_currency'] ? 'true': 'false'; $settings['removeBackground'] = $settings['remove_background'] ? 'true': 'false'; } +$query = "SELECT * FROM custom_colors"; +$result = $db->query($query); +$customColors = $result->fetchArray(SQLITE3_ASSOC); + +if ($customColors) { + $settings['customColors'] = $customColors; +} + ?> \ No newline at end of file diff --git a/includes/header.php b/includes/header.php index f710a86..a1baf32 100644 --- a/includes/header.php +++ b/includes/header.php @@ -23,6 +23,10 @@ $theme = $settings['theme']; } + $colorTheme = "blue"; + if (isset($settings['color_theme'])) { + $colorTheme = $settings['color_theme']; + } ?> @@ -34,8 +38,12 @@ + > + > + > + > @@ -43,11 +51,31 @@ + + + - +
- <?= translate('subscription', $i18n) ?> - <?= translate('paid_by', $i18n) ?> - <?= translate('category', $i18n) ?> + <?= translate('subscription', $i18n) ?> + <?= translate('paid_by', $i18n) ?> + <?= translate('category', $i18n) ?> - <?= translate('url', $i18n) ?> + <?= translate('url', $i18n) ?> @@ -135,7 +135,7 @@ ?>
- <?= translate('notes', $i18n) ?> + <?= translate('notes', $i18n) ?>
diff --git a/includes/version.php b/includes/version.php index 1196d01..1cd1250 100644 --- a/includes/version.php +++ b/includes/version.php @@ -1,3 +1,3 @@ diff --git a/index.php b/index.php index 5911095..b63b56d 100644 --- a/index.php +++ b/index.php @@ -37,7 +37,7 @@ } $headerClass = count($subscriptions) > 0 ? "main-actions" : "main-actions hidden"; - $defaultLogo = $theme == "light" ? "images/wallos.png" : "images/walloswhite.png"; + $defaultLogo = $theme == "light" ? "images/siteicons/" . $colorTheme . "/wallos.png" : "images/siteicons/" . $colorTheme . "/walloswhite.png"; ?>