summaryrefslogtreecommitdiffstats
path: root/apps/bookmarks/js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/bookmarks/js')
-rw-r--r--apps/bookmarks/js/addBm.js17
-rw-r--r--apps/bookmarks/js/bookmarks.js42
2 files changed, 58 insertions, 1 deletions
diff --git a/apps/bookmarks/js/addBm.js b/apps/bookmarks/js/addBm.js
new file mode 100644
index 00000000000..7c914f2338a
--- /dev/null
+++ b/apps/bookmarks/js/addBm.js
@@ -0,0 +1,17 @@
+$(document).ready(function() {
+ $('#bookmark_add_submit').click(addBookmark);
+});
+
+function addBookmark(event) {
+ var url = $('#bookmark_add_url').val();
+ var title = $('#bookmark_add_title').val();
+ var description = $('#bookmark_add_description').val();
+ var tags = $('#bookmark_add_tags').val();
+ $.ajax({
+ url: 'ajax/addBookmark.php',
+ data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' + encodeURI(description) + '&tags=' + encodeURI(tags),
+ success: function(data){
+ location.href='index.php';
+ }
+ });
+} \ No newline at end of file
diff --git a/apps/bookmarks/js/bookmarks.js b/apps/bookmarks/js/bookmarks.js
index 04db8b42a79..ac87d967be8 100644
--- a/apps/bookmarks/js/bookmarks.js
+++ b/apps/bookmarks/js/bookmarks.js
@@ -1,6 +1,8 @@
var bookmarks_page = 0;
var bookmarks_loading = false;
+var bookmarks_sorting = 'bookmarks_sorting_recent';
+
$(document).ready(function() {
$('.bookmarks_addBtn').click(function(event){
$('.bookmarks_add').slideToggle();
@@ -9,6 +11,11 @@ $(document).ready(function() {
$('#bookmark_add_submit').click(addBookmark);
$(window).scroll(updateOnBottom);
+ $('#bookmark_add_url').focusout(getMetadata);
+ $('.' + bookmarks_sorting).addClass('bookmarks_sorting_active');
+
+ $('.bookmarks_sorting li').click(function(event){changeSorting(this)});
+
$('.bookmarks_list').empty();
getBookmarks();
});
@@ -18,9 +25,10 @@ function getBookmarks() {
//have patience :)
return;
}
+
$.ajax({
url: 'ajax/updateList.php',
- data: 'tag=' + encodeURI($('#bookmarkFilterTag').val()) + '&page=' + bookmarks_page,
+ data: 'tag=' + encodeURI($('#bookmarkFilterTag').val()) + '&page=' + bookmarks_page + '&sort=' + bookmarks_sorting,
success: function(bookmarks){
bookmarks_page += 1;
$('.bookmark_link').unbind('click', recordClick);
@@ -36,6 +44,30 @@ function getBookmarks() {
});
}
+function getMetadata() {
+ var url = encodeEntities($('#bookmark_add_url').val())
+ $.ajax({
+ url: 'ajax/getMeta.php',
+ data: 'url=' + encodeURIComponent(url),
+ success: function(pageinfo){
+ $('#bookmark_add_url').val(pageinfo.data.url);
+ $('#bookmark_add_description').val(pageinfo.data.description);
+ $('#bookmark_add_title').val(pageinfo.data.title);
+ }
+ });
+}
+
+function changeSorting(sortEl) {
+ $('.' + bookmarks_sorting).removeClass('bookmarks_sorting_active');
+ bookmarks_sorting = sortEl.className;
+ $('.' + bookmarks_sorting).addClass('bookmarks_sorting_active');
+
+ $('.bookmarks_list').empty();
+ bookmarks_page = 0;
+ bookmarks_loading = false;
+ getBookmarks();
+}
+
function addBookmark(event) {
var url = encodeEntities($('#bookmark_add_url').val())
var title = encodeEntities($('#bookmark_add_title').val())
@@ -80,6 +112,9 @@ function updateBookmarksList(bookmark) {
for ( var i=0, len=tags.length; i<len; ++i ){
taglist = taglist + '<a class="bookmark_tags" href="?tag=' + encodeURI(tags[i]) + '">' + tags[i] + '</a> ';
}
+ if(!hasProtocol(bookmark.url)) {
+ bookmark.url = 'http://' + bookmark.url;
+ }
$('.bookmarks_list').append(
'<div class="bookmark_single">' +
'<p class="bookmark_title"><a href="' + encodeEntities(bookmark.url) + '" target="_new" class="bookmark_link">' + encodeEntities(bookmark.title) + '</a></p>' +
@@ -113,3 +148,8 @@ function encodeEntities(s){
return "";
}
}
+
+function hasProtocol(url) {
+ var regexp = /(ftp|http|https|sftp)/;
+ return regexp.test(url);
+}