diff --git a/ajax/delBookmark.php b/ajax/delBookmark.php index 2634bed0..0b568981 100755 --- a/ajax/delBookmark.php +++ b/ajax/delBookmark.php @@ -30,33 +30,10 @@ $RUNTIME_NOSETUPFS=true; OCP\JSON::checkLoggedIn(); OCP\JSON::checkAppEnabled('bookmarks'); -$params=array( - htmlspecialchars_decode($_GET["url"]), - OCP\USER::getUser() - ); +$id = $_GET['id']; +if (!OC_Bookmarks_Bookmarks::deleteUrl($id)){ + OC_JSON::error(); + exit(); +} -$query = OCP\DB::prepare(" - SELECT id FROM *PREFIX*bookmarks - WHERE url LIKE ? - AND user_id = ? - "); - -$id = $query->execute($params)->fetchOne(); - -$query = OCP\DB::prepare(" - DELETE FROM *PREFIX*bookmarks - WHERE id = $id - "); - -$result = $query->execute(); - - -$query = OCP\DB::prepare(" - DELETE FROM *PREFIX*bookmarks_tags - WHERE bookmark_id = $id - "); - -$result = $query->execute(); -// var_dump($params); - -OCP\JSON::success(array('data' => array())); +OCP\JSON::success(); diff --git a/js/bookmarks.js b/js/bookmarks.js index 38b8c43e..b1eebaa5 100644 --- a/js/bookmarks.js +++ b/js/bookmarks.js @@ -93,11 +93,13 @@ function delBookmark(event) { var record = $(this).parent().parent(); $.ajax({ url: OC.filePath('bookmarks', 'ajax', 'delBookmark.php'), - data: 'url=' + encodeURIComponent($(this).parent().parent().children('.bookmark_url:first').text()), + data: 'id=' + record.data('id'), success: function(data){ - record.remove(); - if($('.bookmarks_list').is(':empty')) { - $("#firstrun").show(); + if (data.status == 'success') { + record.remove(); + if($('.bookmarks_list').is(':empty')) { + $("#firstrun").show(); + } } } }); diff --git a/lib/bookmarks.php b/lib/bookmarks.php index 67b8e2f7..e0005968 100755 --- a/lib/bookmarks.php +++ b/lib/bookmarks.php @@ -113,5 +113,37 @@ class OC_Bookmarks_Bookmarks{ $bookmarks = $query->execute($params)->fetchAll(); return $bookmarks; } + + public static function deleteUrl($id) + { + $user = OCP\USER::getUser(); + + $query = OCP\DB::prepare(" + SELECT id FROM *PREFIX*bookmarks + WHERE id = ? + AND user_id = ? + "); + + $result = $query->execute(array($id, $user)); + $id = $result->fetchOne(); + if ($id === false) { + return false; + } + + $query = OCP\DB::prepare(" + DELETE FROM *PREFIX*bookmarks + WHERE id = $id + "); + + $result = $query->execute(); + + $query = OCP\DB::prepare(" + DELETE FROM *PREFIX*bookmarks_tags + WHERE bookmark_id = $id + "); + + $result = $query->execute(); + return true; + } } ?>