From b575fe82aafdb0b8e48eab37baa0c14a49ddb59b Mon Sep 17 00:00:00 2001
From: Joey Kimsey
Date: Mon, 9 Dec 2024 19:59:59 -0500
Subject: [PATCH] plugin fixes
---
.../controllers/api/bookmark_folders.php | 71 +++++++++++++++++++
.../bookmarks/controllers/api/bookmarks.php | 17 ++---
app/plugins/bookmarks/models/bookmarks.php | 12 ++--
app/plugins/bookmarks/models/folders.php | 22 +++++-
.../bookmarks/views/bookmarks/list.html | 10 +--
.../bookmarks/views/bookmarks/view.html | 4 +-
.../views/components/bookmarkListPanel.html | 12 ++--
.../views/components/bookmarkListRows.html | 6 +-
app/plugins/bookmarks/views/folders/list.html | 8 +--
app/plugins/bookmarks/views/folders/view.html | 6 +-
.../members/models/membership_products.php | 5 ++
app/plugins/members/models/memberships.php | 2 +
.../members/views/admin/memberships/list.html | 4 +-
.../members/views/admin/products/list.html | 6 +-
app/plugins/members/views/cancel.html | 4 +-
app/plugins/members/views/landing1.html | 6 +-
app/plugins/members/views/landing2.html | 4 +-
app/plugins/members/views/manage.html | 6 +-
app/plugins/members/views/pause.html | 4 +-
19 files changed, 151 insertions(+), 58 deletions(-)
create mode 100644 app/plugins/bookmarks/controllers/api/bookmark_folders.php
diff --git a/app/plugins/bookmarks/controllers/api/bookmark_folders.php b/app/plugins/bookmarks/controllers/api/bookmark_folders.php
new file mode 100644
index 0000000..62a88f8
--- /dev/null
+++ b/app/plugins/bookmarks/controllers/api/bookmark_folders.php
@@ -0,0 +1,71 @@
+
+ * @link https://TheTempusProject.com
+ * @license https://opensource.org/licenses/MIT [MIT LICENSE]
+ */
+namespace TheTempusProject\Controllers\Api;
+
+use TheTempusProject\Models\User;
+use TheTempusProject\Classes\ApiController;
+use TheTempusProject\Houdini\Classes\Views;
+use TheTempusProject\Canary\Bin\Canary as Debug;
+use TheTempusProject\Bedrock\Functions\Input;
+use TheTempusProject\Models\Folders;
+
+class BookmarkFolders extends ApiController {
+ protected static $folders;
+
+ public function __construct() {
+ parent::__construct();
+ self::$folders = new Folders;
+ }
+
+ public function create() {
+ header('Access-Control-Allow-Origin: *');
+
+ $user = self::$authToken->createdBy;
+
+ $payload = @file_get_contents('php://input');
+ $payload = json_decode( $payload, true );
+
+ $result = self::$folders->create(
+ $payload['name'],
+ $payload['folder'] ?? 0,
+ $payload['notes'] ?? '',
+ $payload['color'] ?? 'default',
+ $payload['privacy'] ?? 'private',
+ $user
+ );
+
+ if ( ! $result ) {
+ $responseType = 'error';
+ $response = 'There was an error creating your folder.';
+ } else {
+ $responseType = 'success';
+ $response = 'success';
+ }
+ Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
+ }
+
+ public function list( $id = '' ) {
+ header('Access-Control-Allow-Origin: *');
+ $user = self::$authToken->createdBy;
+ $folders = self::$folders->bySpecificUser( $user );
+
+ if ( ! $folders ) {
+ $responseType = 'error';
+ $response = 'There was an error creating your folder.';
+ } else {
+ $responseType = 'folders';
+ $response = $folders;
+ }
+ Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
+ }
+}
+
diff --git a/app/plugins/bookmarks/controllers/api/bookmarks.php b/app/plugins/bookmarks/controllers/api/bookmarks.php
index fbbfc32..663b709 100644
--- a/app/plugins/bookmarks/controllers/api/bookmarks.php
+++ b/app/plugins/bookmarks/controllers/api/bookmarks.php
@@ -33,25 +33,22 @@ class Bookmarks extends ApiController {
$payload = @file_get_contents('php://input');
$payload = json_decode( $payload, true );
- Debug::error($payload['name']);
$result = self::$bookmarks->create(
$payload['name'],
$payload['url'],
- 0,
- $payload['notes'],
- 'default',
- 'private',
- 'external',
- $user
+ $payload['folder'] ?? 0,
+ $payload['notes'] ?? '',
+ $payload['color'] ?? 'default',
+ $payload['privacy'] ?? 'private',
);
if ( ! $result ) {
$responseType = 'error';
- $response = 'There was an error creating your bookmark.';
+ $response = 'There was an error creating your folder.';
} else {
- $responseType = 'success';
- $response = 'success';
+ $responseType = 'data';
+ $response = $result;
}
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
}
diff --git a/app/plugins/bookmarks/models/bookmarks.php b/app/plugins/bookmarks/models/bookmarks.php
index b40b9f8..3ad8c84 100644
--- a/app/plugins/bookmarks/models/bookmarks.php
+++ b/app/plugins/bookmarks/models/bookmarks.php
@@ -320,34 +320,34 @@ class Bookmarks extends DatabaseModel {
}
if ( empty( $instance->hiddenAt ) ) {
$instance->hideBtn = '
-
+
';
} else {
$instance->hideBtn = '
-
+
';
}
if ( empty( $instance->archivedAt ) ) {
$instance->archiveBtn = '
-
+
';
} else {
$instance->archiveBtn = '
-
+
';
}
if ( ! empty( $instance->refreshedAt ) && time() < ( $instance->refreshedAt + ( 60 * 10 ) ) ) {
$instance->refreshBtn = '
-
+
';
} else {
$instance->refreshBtn = '
-
+
';
}
diff --git a/app/plugins/bookmarks/models/folders.php b/app/plugins/bookmarks/models/folders.php
index 62a6367..4fe4481 100644
--- a/app/plugins/bookmarks/models/folders.php
+++ b/app/plugins/bookmarks/models/folders.php
@@ -38,7 +38,10 @@ class Folders extends DatabaseModel {
parent::__construct();
}
- public function create( $title, $folderID = 0, $description = '', $color = 'default', $privacy = 'private' ) {
+ public function create( $title, $folderID = 0, $description = '', $color = 'default', $privacy = 'private', $user = null ) {
+ if ( empty( $user ) ) {
+ $user = App::$activeUser->ID;
+ }
if ( ! Check::dataTitle( $title ) ) {
Debug::info( 'Folders: illegal title.' );
return false;
@@ -48,9 +51,10 @@ class Folders extends DatabaseModel {
'description' => $description,
'color' => $color,
'privacy' => $privacy,
- 'createdBy' => App::$activeUser->ID,
+ 'createdBy' => $user,
'createdAt' => time(),
];
+
if ( !empty( $folderID ) ) {
$fields['folderID'] = $folderID;
}
@@ -102,6 +106,20 @@ class Folders extends DatabaseModel {
return $this->filter( $folders->results() );
}
+ public function bySpecificUser( $userID, $limit = null ) {
+ $whereClause = ['createdBy', '=', $userID];
+ if ( empty( $limit ) ) {
+ $folders = self::$db->get( $this->tableName, $whereClause );
+ } else {
+ $folders = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
+ }
+ if ( !$folders->count() ) {
+ Debug::info( 'No Folders found.' );
+ return false;
+ }
+ return $this->filter( $folders->results() );
+ }
+
public function getName( $id ) {
$folder = self::findById( $id );
if (false == $folder) {
diff --git a/app/plugins/bookmarks/views/bookmarks/list.html b/app/plugins/bookmarks/views/bookmarks/list.html
index 16dd9f1..7a25ff4 100644
--- a/app/plugins/bookmarks/views/bookmarks/list.html
+++ b/app/plugins/bookmarks/views/bookmarks/list.html
@@ -13,16 +13,16 @@
{LOOP}
-
+
{title}
{privacy}
-
-
-
+
+
+
{/LOOP}
{ALT}
@@ -34,4 +34,4 @@
{/ALT}
-Create
\ No newline at end of file
+Create
\ No newline at end of file
diff --git a/app/plugins/bookmarks/views/bookmarks/view.html b/app/plugins/bookmarks/views/bookmarks/view.html
index 6459c69..48f080d 100644
--- a/app/plugins/bookmarks/views/bookmarks/view.html
+++ b/app/plugins/bookmarks/views/bookmarks/view.html
@@ -76,8 +76,8 @@
{refreshBtn}
{hideBtn}
{archiveBtn}
-
-
+
+
diff --git a/app/plugins/bookmarks/views/components/bookmarkListPanel.html b/app/plugins/bookmarks/views/components/bookmarkListPanel.html
index 29a4c05..bfabdf8 100644
--- a/app/plugins/bookmarks/views/components/bookmarkListPanel.html
+++ b/app/plugins/bookmarks/views/components/bookmarkListPanel.html
@@ -1,5 +1,5 @@
-
diff --git a/app/plugins/bookmarks/views/components/bookmarkListRows.html b/app/plugins/bookmarks/views/components/bookmarkListRows.html
index 034f4fa..8bd2e9f 100644
--- a/app/plugins/bookmarks/views/components/bookmarkListRows.html
+++ b/app/plugins/bookmarks/views/components/bookmarkListRows.html
@@ -1,13 +1,13 @@
{LOOP}
- {iconHtml}
+ {iconHtml}
{title}
{hideBtn}
{archiveBtn}
-
-
+
+
{/LOOP}
diff --git a/app/plugins/bookmarks/views/folders/list.html b/app/plugins/bookmarks/views/folders/list.html
index df2c0e5..2961af9 100644
--- a/app/plugins/bookmarks/views/folders/list.html
+++ b/app/plugins/bookmarks/views/folders/list.html
@@ -16,9 +16,9 @@
{title}
{privacy}
{description}
-
-
-
+
+
+
{/LOOP}
{ALT}
@@ -30,4 +30,4 @@
{/ALT}
-
Create
\ No newline at end of file
+
Create
\ No newline at end of file
diff --git a/app/plugins/bookmarks/views/folders/view.html b/app/plugins/bookmarks/views/folders/view.html
index 7840b7e..e337328 100644
--- a/app/plugins/bookmarks/views/folders/view.html
+++ b/app/plugins/bookmarks/views/folders/view.html
@@ -38,9 +38,9 @@
diff --git a/app/plugins/members/models/membership_products.php b/app/plugins/members/models/membership_products.php
index 5f74bd4..b0e5f86 100644
--- a/app/plugins/members/models/membership_products.php
+++ b/app/plugins/members/models/membership_products.php
@@ -36,6 +36,9 @@ class MembershipProducts extends DatabaseModel {
public function __construct() {
parent::__construct();
+
+
+
if ( ! self::$loaded ) {
$api_key = Config::getValue( 'memberships/stripeSecret' );
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
@@ -45,6 +48,8 @@ class MembershipProducts extends DatabaseModel {
}
self::$loaded = true;
}
+
+
}
public function create( $name, $description, $monthly_price, $yearly_price ) {
diff --git a/app/plugins/members/models/memberships.php b/app/plugins/members/models/memberships.php
index 43e5916..9c7f853 100644
--- a/app/plugins/members/models/memberships.php
+++ b/app/plugins/members/models/memberships.php
@@ -49,6 +49,8 @@ class Memberships extends DatabaseModel {
}
self::$loaded = true;
}
+
+
}
public function filter( $postArray, $params = [] ) {
diff --git a/app/plugins/members/views/admin/memberships/list.html b/app/plugins/members/views/admin/memberships/list.html
index a535a6f..15a006e 100644
--- a/app/plugins/members/views/admin/memberships/list.html
+++ b/app/plugins/members/views/admin/memberships/list.html
@@ -24,8 +24,8 @@
{prettyPrice}
{DTC}{current_period_start}{/DTC}
{DTC}{current_period_end}{/DTC}
-
-
+
+
diff --git a/app/plugins/members/views/admin/products/list.html b/app/plugins/members/views/admin/products/list.html
index 1832b33..1093f8f 100644
--- a/app/plugins/members/views/admin/products/list.html
+++ b/app/plugins/members/views/admin/products/list.html
@@ -20,8 +20,8 @@
{name}
{monthly_price}
{yearly_price}
-
-
+
+
@@ -36,6 +36,6 @@
{/ALT}
- Create
+ Create
Delete
\ No newline at end of file
diff --git a/app/plugins/members/views/cancel.html b/app/plugins/members/views/cancel.html
index 579b488..cddbe15 100644
--- a/app/plugins/members/views/cancel.html
+++ b/app/plugins/members/views/cancel.html
@@ -10,10 +10,10 @@
diff --git a/app/plugins/members/views/landing1.html b/app/plugins/members/views/landing1.html
index 83a4d32..172c7f0 100644
--- a/app/plugins/members/views/landing1.html
+++ b/app/plugins/members/views/landing1.html
@@ -27,7 +27,7 @@
Basic bookmark storage
No import/export
Completely free
- Sign Up
+ Sign Up
@@ -40,7 +40,7 @@
Import/export bookmarks
Advanced curation tools
{prettyPriceMonthly}/month
- Sign Up
+ Sign Up
@@ -53,7 +53,7 @@
Save with annual billing
All features included
{prettyPriceYearly}/year
- Sign Up
+ Sign Up
diff --git a/app/plugins/members/views/landing2.html b/app/plugins/members/views/landing2.html
index defd4c3..710d7bc 100644
--- a/app/plugins/members/views/landing2.html
+++ b/app/plugins/members/views/landing2.html
@@ -20,7 +20,7 @@
{prettyPriceMonthly}/month
All pro features unlocked
-
Get Started
+
Get Started
@@ -30,7 +30,7 @@
{prettyPriceYearly}/year
Save {prettySavings} annually!
-
Sign Up
+
Sign Up
diff --git a/app/plugins/members/views/manage.html b/app/plugins/members/views/manage.html
index a71143a..13ecb38 100644
--- a/app/plugins/members/views/manage.html
+++ b/app/plugins/members/views/manage.html
@@ -19,8 +19,8 @@
{prettyPrice}
{DTC=date}{current_period_start}{/DTC}
{DTC=date}{current_period_end}{/DTC}
-
-
+
+
{/LOOP}
{ALT}
@@ -32,4 +32,4 @@
{/ALT}
-Manage Payment Method
\ No newline at end of file
+Manage Payment Method
\ No newline at end of file
diff --git a/app/plugins/members/views/pause.html b/app/plugins/members/views/pause.html
index ec667e1..db3f84a 100644
--- a/app/plugins/members/views/pause.html
+++ b/app/plugins/members/views/pause.html
@@ -10,10 +10,10 @@