A free, self-hostable aggregator…
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

229 lines
5.3 KiB

<?php if ($this->conf->displayPosts () == 'no') { ?>
var hide_posts = true;
<?php } else { ?>
var hide_posts = false;
<?php } ?>
<?php $s = $this->conf->shortcuts (); ?>
function redirect (url, new_tab) {
if (url) {
if (new_tab) {
window.open (url);
} else {
location.href = url;
}
}
}
function slide (new_active, old_active) {
old_active.removeClass ("active");
new_active.addClass ("active");
if (hide_posts) {
old_active.children (".content").slideUp (500);
new_active.children (".content").slideDown (500, function () {
$.smoothScroll({
offset: new_active.position ().top
});
});
} else {
$.smoothScroll({
offset: new_active.position ().top
});
}
}
function add_not_read (nb) {
span_not_read = $("#categories li.all span.nb_not_read");
html = span_not_read.html ();
regex = /(\d+)/;
nb_not_read = parseInt (regex.exec (html)[1]) + nb;
span_not_read.html (nb_not_read);
}
function mark_read (active) {
if (active[0] === undefined) {
return false;
}
url = active.find ("a.read").attr ("href");
if (url === undefined) {
return false;
}
$.ajax ({
type: 'POST',
url: url,
data : { ajax: true }
}).done (function (data) {
res = jQuery.parseJSON(data);
active.find ("a.read").attr ("href", res.url);
if (active.hasClass ("not_read")) {
active.removeClass ("not_read");
//active.find ("a.read").html ("Marquer comme non lu");
add_not_read (-1);
} else {
active.addClass ("not_read");
//active.find ("a.read").html ("J'ai fini de lire l'article");
add_not_read (1);
}
});
}
function mark_favorite (active) {
if (active[0] === undefined) {
return false;
}
url = active.find ("a.bookmark").attr ("href");
if (url === undefined) {
return false;
}
$.ajax ({
type: 'POST',
url: url,
data : { ajax: true }
}).done (function (data) {
res = jQuery.parseJSON(data);
active.find ("a.bookmark").attr ("href", res.url);
if (active.hasClass ("favorite")) {
active.removeClass ("favorite");
//active.find ("a.bookmark").html ("Ajouter l'article à mes favoris");
} else {
active.addClass ("favorite");
//active.find ("a.bookmark").html ("Retirer l'article de mes favoris");
}
});
}
function init_img () {
$(".flux .content img").each (function () {
if ($(this).width () > ($("#stream").width()) / 2) {
$(this).addClass("big");
}
});
}
function init_posts () {
init_img ();
if (hide_posts) {
$(".flux:not(.active) .content").slideUp ();
}
$(".flux").click (function () {
old_active = $(".flux.active");
new_active = $(this);
if (old_active[0] != new_active[0]) {
slide (new_active, old_active);
}
});
$(".flux a.read").click (function () {
active = $(this).parents (".flux");
mark_read (active);
return false;
});
$(".flux a.bookmark").click (function () {
active = $(this).parents (".flux");
mark_favorite (active);
return false;
});
$(".flux .content a").click (function () {
$(this).attr ('target', '_blank');
});
}
$(document).ready (function () {
init_posts ();
// Touches de manipulation
shortcut.add("<?php echo $s['mark_read']; ?>", function () {
// on marque comme lu ou non lu
active = $(".flux.active");
mark_read (active);
});
shortcut.add("shift+<?php echo $s['mark_read']; ?>", function () {
// on marque tout comme lu
url = $("#top a.read_all").attr ("href");
redirect (url, false);
});
shortcut.add("<?php echo $s['mark_favorite']; ?>", function () {
// on marque comme favori ou non favori
active = $(".flux.active");
mark_favorite (active);
});
// Touches de navigation
shortcut.add("<?php echo $s['prev_entry']; ?>", function () {
old_active = $(".flux.active");
last_active = $(".flux:last");
new_active = old_active.prev ();
if (new_active[0] instanceof HTMLDivElement) {
slide (new_active, old_active);
} else if (new_active[0] === undefined) {
slide (last_active, old_active);
}
});
shortcut.add("shift+<?php echo $s['prev_entry']; ?>", function () {
old_active = $(".flux.active");
first = $(".flux:first");
if (first[0] instanceof HTMLDivElement) {
slide (first, old_active);
}
});
shortcut.add("<?php echo $s['next_entry']; ?>", function () {
old_active = $(".flux.active");
first_active = $(".flux:first");
new_active = old_active.next ();
if (new_active[0] instanceof HTMLDivElement) {
slide (new_active, old_active);
} else if (new_active[0] === undefined) {
slide (first_active, old_active);
}
});
shortcut.add("shift+<?php echo $s['next_entry']; ?>", function () {
old_active = $(".flux.active");
last = $(".flux:last");
if (last[0] instanceof HTMLDivElement) {
slide (last, old_active);
}
});
shortcut.add("<?php echo $s['next_page']; ?>", function () {
url = $(".pager-next a").attr ("href");
redirect (url, false);
});
shortcut.add("shift+<?php echo $s['next_page']; ?>", function () {
url = $(".pager-last a").attr ("href");
redirect (url, false);
});
shortcut.add("<?php echo $s['prev_page']; ?>", function () {
url = $(".pager-previous a").attr ("href");
redirect (url, false);
});
shortcut.add("shift+<?php echo $s['prev_page']; ?>", function () {
url = $(".pager-first a").attr ("href");
redirect (url, false);
});
shortcut.add("<?php echo $s['go_website']; ?>", function () {
url = $(".flux.active .link a").attr ("href");
redirect (url, true);
});
});