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 @@
-
+
{title}
@@ -9,12 +9,12 @@
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 \ 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 @@