plugin wip

This commit is contained in:
Joey Kimsey
2024-12-17 22:45:47 -05:00
parent 0955fb4175
commit e537771708
42 changed files with 1043 additions and 693 deletions

View File

@ -42,7 +42,7 @@ class Bookmarks extends DatabaseModel {
[ 'hiddenAt', 'int', '11' ],
[ 'order', 'int', '11' ],
[ 'linkType', 'varchar', '32' ],
[ 'uuid', 'char', '36' ],
[ 'uuid', 'uuid', '36' ],
];
/**
@ -132,6 +132,20 @@ class Bookmarks extends DatabaseModel {
return $this->filter( $bookmarks->results() );
}
public function unsafeByFolder( $id, $limit = null ) {
$whereClause = [ 'folderID', '=', $id ];
if ( empty( $limit ) ) {
$bookmarks = self::$db->get( $this->tableName, $whereClause );
} else {
$bookmarks = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
}
if ( !$bookmarks->count() ) {
Debug::info( 'No Bookmarks found.' );
return false;
}
return $this->filter( $bookmarks->results() );
}
public function byFolder( $id, $limit = null ) {
$whereClause = ['createdBy', '=', App::$activeUser->ID, 'AND'];
@ -349,34 +363,48 @@ class Bookmarks extends DatabaseModel {
$instance->iconHtml = '<img src="' . $base_url . ltrim( $instance->icon, '/' ) .'" />';
}
}
if ( $instance->privacy == 'private' ) {
$instance->privacyBadge = '<span class="mx-3 badge bg-success">Private</span>';
$instance->privacyBadge = '<span class="mx-2 translate-center badge bg-success rounded-pill">Private</span>';
} else {
$instance->privacyBadge = '<span class="mx-3 badge bg-danger">Public</span>';
$instance->privacyBadge = '<span class="mx-2 translate-center badge bg-danger rounded-pill">Public</span>';
}
if ( $instance->privacy == 'private' ) {
$instance->publish = '
<a href="{ROOT_URL}bookmarks/publish/'.$instance->ID.'" class="btn btn-sm btn-outline-danger">
<i class="fa fa-fw fa-lock"></i>
</a>';
} else {
$instance->publish = '
<a href="{ROOT_URL}bookmarks/retract/'.$instance->ID.'" class="btn btn-sm btn-outline-secondary">
<i class="fa fa-fw fa-lock"></i>
</a>';
}
if ( empty( $instance->hiddenAt ) ) {
$instance->hideBtn = '
<a href="{ROOT_URL}bookmarks/hideBookmark/'.$instance->ID.'" class="btn btn-sm btn-warning">
<a href="{ROOT_URL}bookmarks/hideBookmark/'.$instance->ID.'" class="btn btn-sm btn-outline-warning">
<i class="fa fa-fw fa-eye"></i>
</a>';
} else {
$instance->hideBtn = '
<a href="{ROOT_URL}bookmarks/showBookmark/'.$instance->ID.'" class="btn btn-sm btn-default">
<a href="{ROOT_URL}bookmarks/showBookmark/'.$instance->ID.'" class="btn btn-sm btn-outline-secondary">
<i class="fa fa-fw fa-eye"></i>
</a>';
}
if ( empty( $instance->archivedAt ) ) {
$instance->archiveBtn = '
<a href="{ROOT_URL}bookmarks/archiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-info">
<a href="{ROOT_URL}bookmarks/archiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-outline-info">
<i class="fa fa-fw fa-briefcase"></i>
</a>';
} else {
$instance->archiveBtn = '
<a href="{ROOT_URL}bookmarks/unarchiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-default">
<a href="{ROOT_URL}bookmarks/unarchiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-outline-secondary">
<i class="fa fa-fw fa-briefcase"></i>
</a>';
}
if ( ! empty( $instance->refreshedAt ) && time() < ( $instance->refreshedAt + ( 60 * 10 ) ) ) {
$instance->refreshBtn = '
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-danger">
@ -445,6 +473,7 @@ class Bookmarks extends DatabaseModel {
}
return true;
}
public function retract( $id ) {
if ( !Check::id( $id ) ) {
Debug::info( 'Bookmarks: illegal ID.' );
@ -461,7 +490,6 @@ class Bookmarks extends DatabaseModel {
return true;
}
public function archive( $id ) {
if ( !Check::id( $id ) ) {
Debug::info( 'Bookmarks: illegal ID.' );

View File

@ -25,10 +25,20 @@ class Bookmarkviews extends DatabaseModel {
[ 'title', 'varchar', '256' ],
[ 'description', 'text', '' ],
[ 'privacy', 'varchar', '48' ],
[ 'createdBy', 'int', '11' ],
[ 'createdAt', 'int', '11' ],
[ 'updatedAt', 'int', '11' ],
[ 'uuid', 'char', '36' ],
[ 'uuid', 'text', '' ],
];
/**

View File

@ -29,7 +29,7 @@ class Folders extends DatabaseModel {
[ 'folderID', 'int', '11' ],
[ 'createdBy', 'int', '11' ],
[ 'createdAt', 'int', '11' ],
[ 'uuid', 'char', '36' ],
[ 'uuid', 'text', '' ],
];
/**
@ -197,6 +197,13 @@ class Folders extends DatabaseModel {
// Real Work Starts Here
$instance->prettyPrivacy = ucfirst( $instance->privacy );
$instance->prettyTitle = ucfirst( $instance->title );
if ( $instance->privacy == 'private' ) {
$instance->privacyBadge = '<span class="mx-2 translate-center badge bg-success rounded-pill">Private</span>';
} else {
$instance->privacyBadge = '<span class="mx-2 translate-center badge rounded-pill bg-danger">Public</span>';
}
// Real Work Ends Here
$out[] = $instance;
if ( !empty( $end ) ) {