From c0e211eda7df86aba4c8d8a779196b51823bfa7d Mon Sep 17 00:00:00 2001 From: Joey Kimsey Date: Sat, 14 Dec 2024 06:10:01 -0500 Subject: [PATCH] plugin wip --- app/js/main.js | 64 +++++++++++++++++ .../controllers/api/bookmark_folders.php | 5 +- .../bookmarks/controllers/bookmarks.php | 11 ++- app/plugins/bookmarks/models/folders.php | 19 +++++ .../bookmarks/views/bookmarks/list.html | 7 +- .../bookmarks/views/bookmarks/listPage.html | 19 +++-- .../bookmarks/views/bookmarks/view.html | 2 +- .../views/components/bookmarkListPanel.html | 49 ++++++++----- .../views/components/bookmarkListRows.html | 14 ++-- .../views/components/folderPanelList.html | 10 --- app/plugins/bookmarks/views/dash.html | 21 +++--- app/plugins/bookmarks/views/folders/list.html | 16 +++-- .../bookmarks/views/folders/listPage.html | 9 +-- app/plugins/bookmarks/views/folders/view.html | 2 +- .../bookmarks/views/nav/folderTabs.html | 2 +- .../bookmarks/views/nav/userFolderTabs.html | 2 +- .../members/views/admin/products/view.html | 4 +- app/plugins/members/views/landing1.html | 8 +-- app/plugins/members/views/landing2.html | 8 +-- .../reviews/controllers/admin/reviews.php | 4 +- app/plugins/reviews/controllers/reviews.php | 8 +-- app/plugins/reviews/models/review.php | 2 +- ...reviewcategory.php => review_category.php} | 6 +- app/plugins/reviews/plugin.php | 2 +- .../reviews/views/admin/categoryList.html | 6 +- app/plugins/reviews/views/admin/review.html | 6 +- .../reviews/views/admin/reviewList.html | 6 +- app/plugins/reviews/views/index.html | 1 - app/plugins/reviews/views/list.html | 70 ++++++++++--------- app/plugins/suggestions/plugin.php | 2 +- app/plugins/suggestions/views/admin/list.html | 8 +-- app/plugins/suggestions/views/create.html | 44 ++++++++---- app/plugins/suggestions/views/list.html | 38 +++++----- app/plugins/wip/views/admin/list.html | 4 +- app/plugins/wip/views/wip.html | 36 +++++----- app/templates/default/default.tpl | 1 + 36 files changed, 319 insertions(+), 197 deletions(-) delete mode 100644 app/plugins/bookmarks/views/components/folderPanelList.html rename app/plugins/reviews/models/{reviewcategory.php => review_category.php} (95%) delete mode 100644 app/plugins/reviews/views/index.html diff --git a/app/js/main.js b/app/js/main.js index a41ce06..e3d297d 100644 --- a/app/js/main.js +++ b/app/js/main.js @@ -123,3 +123,67 @@ $(document).ready(function() { } }); }); + + document.addEventListener('DOMContentLoaded', () => { + // Initialize Masonry + const masonryContainer = document.querySelector('[data-masonry]'); + const masonryInstance = new Masonry(masonryContainer, { + // horizontalOrder: false, // Maintains natural order in DOM + columnHeight: '.accordion', + // columnWidth: '.card', // Use the card width as the column reference + percentPosition: true + }); + + + // const sortContainer = document.getElementById('bookmarkSort'); + // Sortable.create(masonryContainer, { + // // animation: 150, // Smooth animations + // sort: true, + // ghostClass: 'bg-primary', + // onEnd: () => { + // // Trigger Masonry layout after drag-and-drop + // masonryInstance.layout(); + // } + // }); + + // Function to trigger layout after any accordion change + const updateMasonryLayout = () => masonryInstance.layout(); + + // Listen for all accordion collapse/expand events + masonryContainer.addEventListener('hidden.bs.collapse', updateMasonryLayout); + masonryContainer.addEventListener('shown.bs.collapse', updateMasonryLayout); + + // Observe dynamic content changes (e.g., rows added/removed) + const observer = new MutationObserver(() => { + updateMasonryLayout(); + }); + + // Observe all cards for changes in the DOM + document.querySelectorAll('.card').forEach((card) => { + observer.observe(card, { childList: true, subtree: true }); + }); + + jQuery(function($) { + var panelList = $('#bookmarkSort'); + + panelList.sortable({ + // Only make the .panel-heading child elements support dragging. + // Omit this to make then entire
  • ...
  • draggable. + handle: '.card', + update: function() { + console.error( 'update' ); + $('.bookmark-card', panelList).each(function(index, elem) { + var $listItem = $(elem), + + newIndex = $listItem.index(); + masonryInstance.layout(); + console.error( $listItem ); + console.error( index ); + console.error( newIndex ); + + // Persist the new indices. + }); + } + }); + }); +}); \ No newline at end of file diff --git a/app/plugins/bookmarks/controllers/api/bookmark_folders.php b/app/plugins/bookmarks/controllers/api/bookmark_folders.php index 62a88f8..37dfa27 100644 --- a/app/plugins/bookmarks/controllers/api/bookmark_folders.php +++ b/app/plugins/bookmarks/controllers/api/bookmark_folders.php @@ -47,8 +47,8 @@ class BookmarkFolders extends ApiController { $responseType = 'error'; $response = 'There was an error creating your folder.'; } else { - $responseType = 'success'; - $response = 'success'; + $responseType = 'id'; + $response = $result; } Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]); } @@ -68,4 +68,3 @@ class BookmarkFolders extends ApiController { Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]); } } - diff --git a/app/plugins/bookmarks/controllers/bookmarks.php b/app/plugins/bookmarks/controllers/bookmarks.php index 3c1e1c5..490ba73 100644 --- a/app/plugins/bookmarks/controllers/bookmarks.php +++ b/app/plugins/bookmarks/controllers/bookmarks.php @@ -70,12 +70,11 @@ class Bookmarks extends Controller { $folderObject->title = $folder->title; $folderObject->color = $folder->color; $folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.bookmarkListRows', $folderObject->bookmarks ); - $panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] ); - $panelArray[] = $panel; + $panelArray[] = $folderObject; } } Components::set( 'foldersList', Views::simpleView( 'bookmarks.folders.list', $folders ) ); - Components::set( 'folderPanels', Views::simpleView( 'bookmarks.components.folderPanelList', $panelArray ) ); + Components::set( 'folderPanels', Views::simpleView( 'bookmarks.components.bookmarkListPanel', $panelArray ) ); Components::set( 'bookmarksList', Views::simpleView( 'bookmarks.bookmarks.list', $bookmarks ) ); return Views::view( 'bookmarks.dash' ); } @@ -121,8 +120,8 @@ class Bookmarks extends Controller { $folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.bookmarkListRows', $folderObject->bookmarks ); $panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] ); $panelArray[] = $panel; - - return Views::view( 'bookmarks.components.folderPanelList', $panelArray ); + + return Views::view( 'bookmarks.bookmarks.listPage', $panelArray ); } public function createBookmark( $id = null ) { @@ -227,7 +226,7 @@ class Bookmarks extends Controller { if ( $folder == false ) { $folders = self::$folders->byUser(); Components::set( 'foldersList', Views::simpleView( 'bookmarks.folders.list', $folders ) ); - return Views::view( 'bookmarks.folders.listPage', $folders ); + return Views::view( 'bookmarks.folders.listPage' ); } if ( $folder->createdBy != App::$activeUser->ID ) { Session::flash( 'error', 'You do not have permission to view this folder.' ); diff --git a/app/plugins/bookmarks/models/folders.php b/app/plugins/bookmarks/models/folders.php index 4fe4481..7591fbe 100644 --- a/app/plugins/bookmarks/models/folders.php +++ b/app/plugins/bookmarks/models/folders.php @@ -171,4 +171,23 @@ class Folders extends DatabaseModel { } return $out; } + + public function filter( $data, $params = [] ) { + foreach ( $data as $instance ) { + if ( !is_object( $instance ) ) { + $instance = $data; + $end = true; + } + // Real Work Starts Here + $instance->prettyPrivacy = ucfirst( $instance->privacy ); + $instance->prettyTitle = ucfirst( $instance->title ); + // Real Work Ends Here + $out[] = $instance; + if ( !empty( $end ) ) { + $out = $out[0]; + break; + } + } + return $out; + } } diff --git a/app/plugins/bookmarks/views/bookmarks/list.html b/app/plugins/bookmarks/views/bookmarks/list.html index 1fa2a6a..7384b8a 100644 --- a/app/plugins/bookmarks/views/bookmarks/list.html +++ b/app/plugins/bookmarks/views/bookmarks/list.html @@ -21,7 +21,7 @@ {privacy} - + {/LOOP} @@ -34,4 +34,7 @@ {/ALT} - Create \ No newline at end of file + +
    + Create +
    \ No newline at end of file diff --git a/app/plugins/bookmarks/views/bookmarks/listPage.html b/app/plugins/bookmarks/views/bookmarks/listPage.html index f975b06..45e81f0 100644 --- a/app/plugins/bookmarks/views/bookmarks/listPage.html +++ b/app/plugins/bookmarks/views/bookmarks/listPage.html @@ -1,8 +1,13 @@ - - -
    -
    +
    + {LOOP} Bookmark List - {bookmarksList} -
    -
    +
    + {panel} +
    + {/LOOP} + {ALT} +
    +

    no folders

    +
    + {/ALT} +
    \ 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 cb73a7f..6ab9258 100644 --- a/app/plugins/bookmarks/views/bookmarks/view.html +++ b/app/plugins/bookmarks/views/bookmarks/view.html @@ -100,7 +100,7 @@ {hideBtn} {archiveBtn} - Edit + Edit Delete diff --git a/app/plugins/bookmarks/views/components/bookmarkListPanel.html b/app/plugins/bookmarks/views/components/bookmarkListPanel.html index bfabdf8..a7f679f 100644 --- a/app/plugins/bookmarks/views/components/bookmarkListPanel.html +++ b/app/plugins/bookmarks/views/components/bookmarkListPanel.html @@ -1,21 +1,32 @@ -
    -
    - {title} -
    -
    -
    -
      - {bookmarkListRows} -
    -
    -
    +{/LOOP} +{ALT} +
    +

    no folders

    +
    +{/ALT} \ No newline at end of file diff --git a/app/plugins/bookmarks/views/components/bookmarkListRows.html b/app/plugins/bookmarks/views/components/bookmarkListRows.html index 8bd2e9f..9d83f3c 100644 --- a/app/plugins/bookmarks/views/components/bookmarkListRows.html +++ b/app/plugins/bookmarks/views/components/bookmarkListRows.html @@ -1,18 +1,18 @@ {LOOP} -
  • - {iconHtml} - {title} - +
  • + {iconHtml} + {title} + {hideBtn} {archiveBtn} - +
  • {/LOOP} {ALT} -
  • - No Bookmarks +
  • +

    No Bookmarks

  • {/ALT} \ No newline at end of file diff --git a/app/plugins/bookmarks/views/components/folderPanelList.html b/app/plugins/bookmarks/views/components/folderPanelList.html deleted file mode 100644 index 6e8c4a6..0000000 --- a/app/plugins/bookmarks/views/components/folderPanelList.html +++ /dev/null @@ -1,10 +0,0 @@ -{LOOP} -
    - {panel} -
    -{/LOOP} -{ALT} -
    -

    no folders

    -
    -{/ALT} \ No newline at end of file diff --git a/app/plugins/bookmarks/views/dash.html b/app/plugins/bookmarks/views/dash.html index 392423f..960fffd 100644 --- a/app/plugins/bookmarks/views/dash.html +++ b/app/plugins/bookmarks/views/dash.html @@ -1,17 +1,20 @@ -
    -
    - Unsorted Bookmarks +
    +
    + Unsorted Bookmarks {bookmarksList}
    -
    - Folders List +
    + Folders List {foldersList}
    -
    -
    - Bookmarks - {folderPanels} +
    +
    + Bookmarks +
    +
    + {folderPanels} +
    \ No newline at end of file diff --git a/app/plugins/bookmarks/views/folders/list.html b/app/plugins/bookmarks/views/folders/list.html index e5df19a..7fabceb 100644 --- a/app/plugins/bookmarks/views/folders/list.html +++ b/app/plugins/bookmarks/views/folders/list.html @@ -2,9 +2,9 @@ - - - + + + @@ -13,11 +13,11 @@ {LOOP} - - + + - + {/LOOP} @@ -30,4 +30,6 @@ {/ALT}
    TitlePrivacyDescriptionTitlePrivacyDescription
    {title}{privacy}{prettyTitle}{prettyPrivacy} {description}
    - Create \ No newline at end of file +
    + Create +
    \ No newline at end of file diff --git a/app/plugins/bookmarks/views/folders/listPage.html b/app/plugins/bookmarks/views/folders/listPage.html index e4f4a70..c6324f0 100644 --- a/app/plugins/bookmarks/views/folders/listPage.html +++ b/app/plugins/bookmarks/views/folders/listPage.html @@ -1,7 +1,8 @@ -
    -
    - Folders List +
    +
    + Folders List +
    {foldersList}
    -
    +
    \ 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 ee0fae0..2136b76 100644 --- a/app/plugins/bookmarks/views/folders/view.html +++ b/app/plugins/bookmarks/views/folders/view.html @@ -59,7 +59,7 @@ Bookmarks - Edit + Edit Delete diff --git a/app/plugins/bookmarks/views/nav/folderTabs.html b/app/plugins/bookmarks/views/nav/folderTabs.html index 20d76c2..d3e18d9 100644 --- a/app/plugins/bookmarks/views/nav/folderTabs.html +++ b/app/plugins/bookmarks/views/nav/folderTabs.html @@ -1,4 +1,4 @@ -