Compare commits
17 Commits
9610acfd44
...
master
Author | SHA1 | Date |
---|---|---|
Aadil Ayub | 38974a8253 | |
Aadil Ayub | c95cba3389 | |
Aadil Ayub | 63aedc7bbe | |
Aadil Ayub | 45c2a01cac | |
Aadil Ayub | 8a1983b439 | |
Aadil Ayub | 2311b3c74e | |
Aadil Ayub | 690561d1a5 | |
Aadil Ayub | bbe1a96a61 | |
Aadil Ayub | 0ca9a3c06d | |
Aadil Ayub | abf00ad597 | |
Aadil Ayub | 63cac05f1a | |
Aadil Ayub | 2ebd7ba865 | |
Aadil Ayub | 866348e9b5 | |
Aadil Ayub | 7b4191c07c | |
Aadil Ayub | ddd5651243 | |
Aadil Ayub | 99765dc4f6 | |
Aadil Ayub | 980d3dff30 |
|
@ -1 +1,2 @@
|
|||
data/merveilles.town.php
|
||||
data/*.php
|
||||
php-error.log
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
Tasks:
|
||||
☐ Get rid of all inline css
|
||||
☐ Get rid of all floats
|
||||
☐ Replace icon set with feather icons
|
||||
☐ Replace font with Favorit
|
||||
☐ Style login page
|
||||
☐ Make site open to home timeline by default
|
||||
☐ Show login prompt when not logged in instead of showing federated timeline
|
||||
✔ Add cursor:pointer for all buttons @done(22-01-14 17:26)
|
||||
☐ Replace loading animation
|
||||
☐ Implement content warnings properly
|
|
@ -8,7 +8,6 @@ DashboardFE should work on a standard LAMP stack with the most common php extens
|
|||
|
||||
While the project works with a decent amount of stability, please note that it is still a work in progress, it can contain several not yet detected bugs or missing some features. The project it's in a constant state of change and improvement.
|
||||
|
||||
If you wanna test it first to see if you like it you can check the testing instance here: http://aadils.computer/fedi
|
||||
|
||||
# Installation
|
||||
|
||||
|
@ -35,4 +34,4 @@ Delete everything (except settings.php on root and /data folder) and reupload.
|
|||
# Contact
|
||||
If you wish to make bug reports or suggestions to the project, it is easier if you do them directly to me, writing a message to my current fediverse profile.
|
||||
|
||||
@hideki@gameliberty.club
|
||||
@aadil@merveilles.town
|
||||
|
|
|
@ -341,7 +341,7 @@ foreach($_GET as $key => $value){
|
|||
$post = api_get("statuses/".htmlentities($value));
|
||||
echo "<div class='notifContents' style='max-width:none;'>
|
||||
<div style='flex: 0 0 60px; background-size:cover; background-image:url(".$post['account']['avatar']."); border-radius:5px;'></div>
|
||||
<div style='flex: 1; padding-left:5px; padding-right:5px; word-break: break-all; overflow:hidden;'>
|
||||
<div style='flex: 1; padding-left:5px; padding-right:5px; word-break: break-word; overflow:hidden;'>
|
||||
<span><span style='font-size:12px; font-weight:bold;'><a class='link' style='font-size:12px;' href='?user=9hwsQhjN9oox1iSfK4'>".emojify($post['account']['display_name'],$post['account']['emojis'],20)."</a></span></span>
|
||||
<a style='text-decoration:none;' class='ldr' href='?thread=9nngbBWBRHvILwEoF6' target='_blank'><span style='display:block; opacity:1; font-size:10px; line-height:12px;'>".emojify(strip_tags($post['content'],'<br>'),$post['emojis'],20)."</span></a>
|
||||
</div>
|
||||
|
|
|
@ -110,7 +110,7 @@ textarea {
|
|||
display: inline-block;
|
||||
margin:0px !important;
|
||||
text-align: left;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
font-size:12px !important;
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ textarea {
|
|||
}
|
||||
|
||||
aside {
|
||||
margin-top: 5px;
|
||||
margin-top: 2rem;
|
||||
width: 280px;
|
||||
float: left;
|
||||
}
|
||||
|
@ -231,6 +231,10 @@ aside {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.profileheader {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.side_element li {
|
||||
font-family: fontello, sans-serif;
|
||||
height:30px;
|
||||
|
@ -240,6 +244,8 @@ aside {
|
|||
list-style-type: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* posts area elements */
|
||||
|
||||
.uploadedImage {
|
||||
|
@ -545,6 +551,7 @@ aside {
|
|||
|
||||
.postbody {
|
||||
margin: 15px;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.content {
|
||||
|
@ -552,7 +559,7 @@ aside {
|
|||
display: inline-block;
|
||||
margin:0px !important;
|
||||
text-align: left;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.post_footer {
|
||||
|
@ -711,3 +718,11 @@ aside {
|
|||
#loader {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.media > div {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
312
js/scripts.js
312
js/scripts.js
|
@ -1,66 +1,66 @@
|
|||
$('body').on('click', '.spoiler', function() {
|
||||
$('body').on('click', '.spoiler', function () {
|
||||
$(this).toggle();
|
||||
$(this).next('div').toggle();
|
||||
});
|
||||
|
||||
$('body').on('click', '.blur', function(e) {
|
||||
$('body').on('click', '.blur', function (e) {
|
||||
e.stopPropagation();
|
||||
$(this).prev().toggle();
|
||||
$(this).toggle();
|
||||
$(this).next('a').toggle();
|
||||
});
|
||||
|
||||
$('body').on('click', '.toggleblur', function(e) {
|
||||
$('body').on('click', '.toggleblur', function (e) {
|
||||
e.stopPropagation();
|
||||
$(this).toggle();
|
||||
$(this).next('a').next('a').toggle();
|
||||
$(this).next('a').toggle();
|
||||
});
|
||||
|
||||
$('body').on('click', '#emoji', function(e) {
|
||||
$('body').on('click', '#emoji', function (e) {
|
||||
$(this).closest(".element").find('.picker').toggle();
|
||||
$('#emojisearch').focus();
|
||||
});
|
||||
|
||||
$('body').on('click', '#contact', function(e) {
|
||||
$('body').on('click', '#contact', function (e) {
|
||||
$(this).closest(".element").find('.contactpicker').toggle();
|
||||
$('#contactsearch').focus();
|
||||
});
|
||||
|
||||
$('body').on('click', '.emoji', function(e) {
|
||||
$('body').on('click', '.emoji', function (e) {
|
||||
var code = $(this).attr("title");
|
||||
console.log(code);
|
||||
boxtxt = $(this).closest(".element").find("#status").val();
|
||||
$(this).closest(".element").find("#status").val(boxtxt + ":"+code+":");
|
||||
$(this).closest(".element").find("#status").val(boxtxt + ":" + code + ":");
|
||||
});
|
||||
|
||||
$('body').on('click', '.contact', function(e) {
|
||||
$('body').on('click', '.contact', function (e) {
|
||||
var code = $(this).attr("title");
|
||||
console.log(code);
|
||||
boxtxt = $(this).closest(".element").find("#status").val();
|
||||
$(this).closest(".element").find("#status").val(boxtxt + code+" ");
|
||||
$(this).closest(".element").find("#status").val(boxtxt + code + " ");
|
||||
});
|
||||
|
||||
$(document).on("change paste keyup","#emojisearch",function () {
|
||||
var val = $(this).val();
|
||||
var list = $(this).closest('.element').find('.emojilist');
|
||||
console.log(val);
|
||||
$.get("action.php?a=true&emoji=" + val, function(data) {
|
||||
$(document).on("change paste keyup", "#emojisearch", function () {
|
||||
var val = $(this).val();
|
||||
var list = $(this).closest('.element').find('.emojilist');
|
||||
console.log(val);
|
||||
$.get("action.php?a=true&emoji=" + val, function (data) {
|
||||
list.html(data);
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on("change paste keyup","#contactsearch",function () {
|
||||
var val = $(this).val();
|
||||
var list = $(this).closest('.element').find('.contactlist');
|
||||
console.log(val);
|
||||
$.get("action.php?a=true&contact=" + val, function(data) {
|
||||
$(document).on("change paste keyup", "#contactsearch", function () {
|
||||
var val = $(this).val();
|
||||
var list = $(this).closest('.element').find('.contactlist');
|
||||
console.log(val);
|
||||
$.get("action.php?a=true&contact=" + val, function (data) {
|
||||
list.html(data);
|
||||
});
|
||||
});
|
||||
|
||||
// Open Lightbox
|
||||
$('body').on('click', '.open-lightbox', function(e) {
|
||||
$('body').on('click', '.open-lightbox', function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var image = $(this).attr('href');
|
||||
|
@ -69,15 +69,15 @@ $('body').on('click', '.open-lightbox', function(e) {
|
|||
});
|
||||
|
||||
// Close Lightbox
|
||||
$('body').on('click', '.lightbox-opened', function() {
|
||||
$('body').on('click', '.lightbox-opened', function () {
|
||||
$('html').removeClass('no-scroll');
|
||||
$('.lightbox-opened').remove();
|
||||
});
|
||||
|
||||
window.addEventListener("scroll", function() {
|
||||
window.addEventListener("scroll", function () {
|
||||
onScrollDiv()
|
||||
});
|
||||
window.addEventListener("DOMContentLoaded", function() {
|
||||
window.addEventListener("DOMContentLoaded", function () {
|
||||
onScrollDiv()
|
||||
});
|
||||
|
||||
|
@ -96,40 +96,40 @@ function onScrollDiv() {
|
|||
}
|
||||
}
|
||||
|
||||
$('body').on('click', '.replies', function(e) {
|
||||
$('body').on('click', '.replies', function (e) {
|
||||
e.preventDefault;
|
||||
$(".reply").remove();
|
||||
$(".element").removeClass("element_pad");
|
||||
$(this).closest(".element").addClass("element_pad");
|
||||
/*$('.replies_container').html('');*/
|
||||
var id = $(this).parent().parent().attr('id');
|
||||
if($('#' + id+'.replies_container').find('.reply').length < 1){
|
||||
$('#' + id+'.replies_container').html("<p><img src='img/loading.gif'></p>");
|
||||
if ($('#' + id + '.replies_container').find('.reply').length < 1) {
|
||||
$('#' + id + '.replies_container').html("<p><img src='img/loading.gif'></p>");
|
||||
}
|
||||
$.get("action.php?a=true&replies=" + id, function(data) {
|
||||
$('#' + id+'.replies_container').html(data);
|
||||
$('#' + id+'.replies_container').delay(800).fadeIn(400);
|
||||
$.get("action.php?a=true&replies=" + id, function (data) {
|
||||
$('#' + id + '.replies_container').html(data);
|
||||
$('#' + id + '.replies_container').delay(800).fadeIn(400);
|
||||
$('#a' + id).html('');
|
||||
$('#' + id+".replies_container .ancestor").appendTo('#a' + id);
|
||||
$('#' + id + ".replies_container .ancestor").appendTo('#a' + id);
|
||||
});
|
||||
});
|
||||
|
||||
$.fn.isOnScreen = function(){
|
||||
$.fn.isOnScreen = function () {
|
||||
|
||||
var win = $(window);
|
||||
var win = $(window);
|
||||
|
||||
var viewport = {
|
||||
top : win.scrollTop(),
|
||||
left : win.scrollLeft()
|
||||
};
|
||||
viewport.right = viewport.left + win.width();
|
||||
viewport.bottom = viewport.top + win.height();
|
||||
var viewport = {
|
||||
top: win.scrollTop(),
|
||||
left: win.scrollLeft()
|
||||
};
|
||||
viewport.right = viewport.left + win.width();
|
||||
viewport.bottom = viewport.top + win.height();
|
||||
|
||||
var bounds = this.offset();
|
||||
bounds.right = bounds.left + this.outerWidth();
|
||||
bounds.bottom = bounds.top + this.outerHeight();
|
||||
var bounds = this.offset();
|
||||
bounds.right = bounds.left + this.outerWidth();
|
||||
bounds.bottom = bounds.top + this.outerHeight();
|
||||
|
||||
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
|
||||
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
|
||||
|
||||
};
|
||||
/*
|
||||
|
@ -178,13 +178,13 @@ $('body').on('click', '.postbody:not(a)', function(e) {
|
|||
});
|
||||
*/
|
||||
|
||||
$('body').on('click', '.ldr:not(.tlicon)', function(e) {
|
||||
$('.tlicon').each(function(a){
|
||||
$( this ).removeClass('tiselected')
|
||||
});
|
||||
$('body').on('click', '.ldr:not(.tlicon)', function (e) {
|
||||
$('.tlicon').each(function (a) {
|
||||
$(this).removeClass('tiselected')
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.ldr', function(e) {
|
||||
$('body').on('click', '.ldr', function (e) {
|
||||
e.preventDefault();
|
||||
location.hash = "#top";
|
||||
$('#loader').html('');
|
||||
|
@ -193,7 +193,7 @@ $('body').on('click', '.ldr', function(e) {
|
|||
var id = $(this).attr('id');
|
||||
localStorage.setItem("content", $('#content .element').detach());
|
||||
$('#content').html('<center><div class="loadingImage"></div></center>');
|
||||
$.get(url + "&ajax=1", function(data) {
|
||||
$.get(url + "&ajax=1", function (data) {
|
||||
$('#content').html(data);
|
||||
history.pushState({}, "Dashboard FE", url);
|
||||
var thread = getUrlParameter('thread');
|
||||
|
@ -201,7 +201,7 @@ $('body').on('click', '.ldr', function(e) {
|
|||
});
|
||||
|
||||
|
||||
$('body').on('click', '.gotop a', function(e) {
|
||||
$('body').on('click', '.gotop a', function (e) {
|
||||
e.preventDefault();
|
||||
$('html, body').animate({
|
||||
scrollTop: 0
|
||||
|
@ -209,8 +209,8 @@ $('body').on('click', '.gotop a', function(e) {
|
|||
return false;
|
||||
});
|
||||
|
||||
$('body').on('click', '.topbar:not(a)', function(e) {
|
||||
if(e.target !== e.currentTarget) return;
|
||||
$('body').on('click', '.topbar:not(a)', function (e) {
|
||||
if (e.target !== e.currentTarget) return;
|
||||
e.preventDefault();
|
||||
$('html, body').animate({
|
||||
scrollTop: 0
|
||||
|
@ -218,7 +218,7 @@ $('body').on('click', '.topbar:not(a)', function(e) {
|
|||
return false;
|
||||
});
|
||||
|
||||
$('body').on('click', '#loader', function() {
|
||||
$('body').on('click', '#loader', function () {
|
||||
var cnt = $("#loaded").contents();
|
||||
// $("#content").prepend(cnt);
|
||||
$('#content').find('.element').first().after(cnt);
|
||||
|
@ -226,9 +226,9 @@ $('body').on('click', '#loader', function() {
|
|||
$("#loader").html('');
|
||||
});
|
||||
|
||||
$('body').on('click', '.nsfw', function() {
|
||||
$('body').on('click', '.nsfw', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&nsfw=" + id, function(data) {
|
||||
$.get("action.php?a=true&nsfw=" + id, function (data) {
|
||||
if (data == '1') {
|
||||
$('#' + id + '.nsfw').toggleClass('nsfw unnsfw');
|
||||
$('#' + id + '.unnsfw').html('NSFW <span class="fontello"></span>');
|
||||
|
@ -236,9 +236,9 @@ $('body').on('click', '.nsfw', function() {
|
|||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.unnsfw', function() {
|
||||
$('body').on('click', '.unnsfw', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&nsfw=" + id, function(data) {
|
||||
$.get("action.php?a=true&nsfw=" + id, function (data) {
|
||||
if (data == '1') {
|
||||
$('#' + id + '.unnsfw').toggleClass('unnsfw nsfw');
|
||||
$('#' + id + '.nsfw').html('NSFW <span class="fontello"></span>');
|
||||
|
@ -246,41 +246,41 @@ $('body').on('click', '.unnsfw', function() {
|
|||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.block', function() {
|
||||
$('body').on('click', '.block', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&mode=true&block=" + id, function(data) {
|
||||
|
||||
$('#' + id + '.block').removeClass('block').addClass('unblock');
|
||||
$('#' + id + '.unblock').html('Unblock');
|
||||
|
||||
$.get("action.php?a=true&mode=true&block=" + id, function (data) {
|
||||
|
||||
$('#' + id + '.block').removeClass('block').addClass('unblock');
|
||||
$('#' + id + '.unblock').html('Unblock');
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.unblock', function() {
|
||||
$('body').on('click', '.unblock', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&mode=off&block=" + id, function(data) {
|
||||
|
||||
$('#' + id + '.unblock').removeClass('unblock').addClass('block');
|
||||
$('#' + id + '.block').html('Block');
|
||||
|
||||
$.get("action.php?a=true&mode=off&block=" + id, function (data) {
|
||||
|
||||
$('#' + id + '.unblock').removeClass('unblock').addClass('block');
|
||||
$('#' + id + '.block').html('Block');
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.autl', function() {
|
||||
$('body').on('click', '.autl', function () {
|
||||
var id = $(this).attr('id');
|
||||
var list = $(this).attr('list');
|
||||
$.get("action.php?a=true&mode=true&user=" + id + "&list=" + list, function(data) {
|
||||
|
||||
$.get("action.php?a=true&mode=true&user=" + id + "&list=" + list, function (data) {
|
||||
|
||||
$('#' + id + '.autl').removeClass('autl').addClass('rutl');
|
||||
/* $('#' + id + '.rutl li').html('Added'); */
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.rutl', function() {
|
||||
$('body').on('click', '.rutl', function () {
|
||||
var elem = $(this);
|
||||
var id = $(this).attr('id');
|
||||
var list = $(this).attr('list');
|
||||
$.get("action.php?a=true&mode=off&user=" + id + "&list=" + list, function(data) {
|
||||
$.get("action.php?a=true&mode=off&user=" + id + "&list=" + list, function (data) {
|
||||
$('#' + id + '.rutl').removeClass('rutl').addClass('autl');
|
||||
/* $(elem).find('li').html('Removed');*/
|
||||
});
|
||||
|
@ -288,45 +288,45 @@ $('body').on('click', '.rutl', function() {
|
|||
|
||||
|
||||
|
||||
$('body').on('click', '.hide', function() {
|
||||
$('body').on('click', '.hide', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&mode=true&hide=" + id, function(data) {
|
||||
$.get("action.php?a=true&mode=true&hide=" + id, function (data) {
|
||||
$('#' + id + '.hide').removeClass('hide').addClass('unhide');
|
||||
$('#' + id + '.unhide').html('Unhide Thread');
|
||||
console.log(data);
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.unhide', function() {
|
||||
$('body').on('click', '.unhide', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&mode=off&hide=" + id, function(data) {
|
||||
$.get("action.php?a=true&mode=off&hide=" + id, function (data) {
|
||||
$('#' + id + '.unhide').removeClass('unhide').addClass('hide');
|
||||
$('#' + id + '.hide').html('Hide Thread');
|
||||
console.log(data);
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.bookmark', function() {
|
||||
$('body').on('click', '.bookmark', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&mode=true&bookmark=" + id, function(data) {
|
||||
$.get("action.php?a=true&mode=true&bookmark=" + id, function (data) {
|
||||
$('#' + id + '.bookmark').removeClass('bookmark').addClass('unbookmark');
|
||||
$('#' + id + '.unbookmark').html('Unbookmark');
|
||||
console.log(data);
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.unbookmark', function() {
|
||||
$('body').on('click', '.unbookmark', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&mode=off&bookmark=" + id, function(data) {
|
||||
$.get("action.php?a=true&mode=off&bookmark=" + id, function (data) {
|
||||
$('#' + id + '.unbookmark').removeClass('unbookmark').addClass('bookmark');
|
||||
$('#' + id + '.bookmark').html('Bookmark');
|
||||
console.log(data);
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.follow', function() {
|
||||
$('body').on('click', '.follow', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&follow=" + id, function(data) {
|
||||
$.get("action.php?a=true&follow=" + id, function (data) {
|
||||
console.log(data);
|
||||
if (data == '1') {
|
||||
$('#' + id + '.follow').removeClass('follow').addClass('unfollow');
|
||||
|
@ -335,10 +335,10 @@ $('body').on('click', '.follow', function() {
|
|||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '.unfollow', function() {
|
||||
$('body').on('click', '.unfollow', function () {
|
||||
var id = $(this).attr('id');
|
||||
$.get("action.php?a=true&unfollow=" + id, function(data) {
|
||||
|
||||
$.get("action.php?a=true&unfollow=" + id, function (data) {
|
||||
|
||||
if (data == '1') {
|
||||
$('#' + id + '.unfollow').removeClass('unfollow').addClass('follow');
|
||||
$('#' + id + '.follow').html('Follow');
|
||||
|
@ -346,43 +346,43 @@ $('body').on('click', '.unfollow', function() {
|
|||
});
|
||||
});
|
||||
|
||||
$('.container').on('mouseenter', '.user', function(event) {
|
||||
$('.container').on('mouseenter', '.user', function (event) {
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
event.stopImmediatePropagation();
|
||||
var id = $(this).attr('id');
|
||||
console.log(id);
|
||||
$(this).append("<div class='userinfo' id='" + id + "'><img src='loading.gif'></div>");
|
||||
$.when($.get("action.php?a=true&userinfo=" + id, function(data) {
|
||||
$.when($.get("action.php?a=true&userinfo=" + id, function (data) {
|
||||
$('#' + id + '.userinfo').html(data);
|
||||
})).then(function(){
|
||||
})).then(function () {
|
||||
$('#' + id + '.userinfo').fadeIn();
|
||||
});
|
||||
});
|
||||
|
||||
$('.container').on('mouseleave', '.user', function(event) {
|
||||
$('.container').on('mouseleave', '.user', function (event) {
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
$(this).find('.userinfo').fadeOut(300, function() { $(this).remove(); });
|
||||
event.stopImmediatePropagation();
|
||||
$(this).find('.userinfo').fadeOut(300, function () { $(this).remove(); });
|
||||
});
|
||||
|
||||
|
||||
$('.container').on('mouseenter', '.preview', function(event) {
|
||||
$('.container').on('mouseenter', '.preview', function (event) {
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
event.stopImmediatePropagation();
|
||||
var id = $(this).attr('id');
|
||||
console.log(id);
|
||||
$(this).before("<div class='notif previewpost' id='" + id + "'></div>");
|
||||
$.when($.get("action.php?a=true&previewpost=" + id, function(data) {
|
||||
$.when($.get("action.php?a=true&previewpost=" + id, function (data) {
|
||||
$('#' + id + '.previewpost').html(data);
|
||||
})).then(function(){
|
||||
})).then(function () {
|
||||
$('#' + id + '.previewpost').fadeIn();
|
||||
});
|
||||
});
|
||||
|
||||
$('.container').on('mouseleave', '.preview', function(event) {
|
||||
$('.container').on('mouseleave', '.preview', function (event) {
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
$('.container').find('.previewpost').fadeOut(300, function() { $(this).remove(); });
|
||||
event.stopImmediatePropagation();
|
||||
$('.container').find('.previewpost').fadeOut(300, function () { $(this).remove(); });
|
||||
});
|
||||
|
||||
var getUrlParameter = function getUrlParameter(sParam) {
|
||||
|
@ -424,7 +424,7 @@ function getMode() {
|
|||
return "&mode=federated";
|
||||
};
|
||||
|
||||
function loadmore(){
|
||||
function loadmore() {
|
||||
var thread = getUrlParameter('thread');
|
||||
if (typeof thread !== 'undefined') {
|
||||
return false;
|
||||
|
@ -439,7 +439,7 @@ function loadmore(){
|
|||
pageMode = getMode();
|
||||
var id = $('.post').last().attr('pid');
|
||||
$('.loadmore').html("<img src='img/loading.gif'>")
|
||||
$.get("index.php?ajax=1&next=" + id + "" + pageMode, function(data) {
|
||||
$.get("index.php?ajax=1&next=" + id + "" + pageMode, function (data) {
|
||||
$('.loadmore').parent().before(data);
|
||||
$('.loadmore').html("Load More Posts")
|
||||
/*$('.loadmore').parent().detach();
|
||||
|
@ -451,20 +451,20 @@ function loadmore(){
|
|||
}
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
$(window).scroll(function () {
|
||||
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
|
||||
loadmore();
|
||||
}
|
||||
});
|
||||
|
||||
$('body').on('click', '.loadmore', function() {
|
||||
$('body').on('click', '.loadmore', function () {
|
||||
loadmore();
|
||||
});
|
||||
|
||||
function newPosts() {
|
||||
|
||||
|
||||
var url = window.location.href;
|
||||
|
||||
|
||||
var thread = getUrlParameter('thread');
|
||||
if (typeof thread !== 'undefined') {
|
||||
return false;
|
||||
|
@ -486,17 +486,18 @@ function newPosts() {
|
|||
if (typeof page !== 'undefined') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$.get("index.php?ajax=1&since=" + id + "" + pageMode, function(data) {
|
||||
|
||||
if (window.location.href !== url){
|
||||
|
||||
$.get("index.php?ajax=1&since=" + id + "" + pageMode, function (data) {
|
||||
|
||||
if (window.location.href !== url) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (data) {
|
||||
var scroll = $(window).scrollTop();
|
||||
if (scroll > 1000) {
|
||||
$('#loader').html("<div class='avatar' style='height:0px;'></div><div class='loader' style='display:table-cell; height:50px; line-height:50px;'><a class='link' style='margin:5px;' href='#'>Load Newer Posts</a></div>");
|
||||
$('#loader').html("<div class='avatar' style='height:0px;'></div><div class='loader' style='display:table-cell; height:50px; line-height:50px;'><a class='link' style='margin:5px;' href='#'>Load Newer Posts</a></div>");
|
||||
|
||||
if ($('#loaded').length) {
|
||||
$('#loaded').prepend(data);
|
||||
} else {
|
||||
|
@ -514,59 +515,58 @@ function newPosts() {
|
|||
});
|
||||
};
|
||||
|
||||
window.setInterval(function() {
|
||||
window.setInterval(function () {
|
||||
var timestamp;
|
||||
$('.postAge').each(function(a){
|
||||
timestamp = $(this).attr('id');
|
||||
$(this).html(timeSince(timestamp)+' ago');
|
||||
});
|
||||
$('.postAge').each(function (a) {
|
||||
timestamp = $(this).attr('id');
|
||||
$(this).html(timeSince(timestamp) + ' ago');
|
||||
});
|
||||
|
||||
newPosts();
|
||||
|
||||
}, 25000);
|
||||
|
||||
function themecheck(name){
|
||||
if(name.value == "custom"){
|
||||
$('#customtheme').css("display","block");
|
||||
}
|
||||
else{
|
||||
$('#customtheme').css("display","none");
|
||||
}
|
||||
function themecheck(name) {
|
||||
if (name.value == "custom") {
|
||||
$('#customtheme').css("display", "block");
|
||||
} else {
|
||||
$('#customtheme').css("display", "none");
|
||||
}
|
||||
};
|
||||
|
||||
function timeSince(date) {
|
||||
/* https://stackoverflow.com/questions/3177836/how-to-format-time-since-xxx-e-g-4-minutes-ago-similar-to-stack-exchange-site */
|
||||
|
||||
var seconds = Math.floor((new Date() - (date*1000)) / 1000);
|
||||
/* https://stackoverflow.com/questions/3177836/how-to-format-time-since-xxx-e-g-4-minutes-ago-similar-to-stack-exchange-site */
|
||||
|
||||
var interval = Math.floor(seconds / 31536000);
|
||||
var seconds = Math.floor((new Date() - (date * 1000)) / 1000);
|
||||
|
||||
if (interval >= 1) {
|
||||
return interval + " year"+(interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 2592000);
|
||||
if (interval >= 1) {
|
||||
return interval + " month"+(interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 604800);
|
||||
if (interval >= 1) {
|
||||
return interval + " week"+(interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 86400);
|
||||
if (interval >= 1) {
|
||||
return interval + " day"+(interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 3600);
|
||||
if (interval >= 1) {
|
||||
return interval + " hour"+(interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 60);
|
||||
if (interval >= 1) {
|
||||
return interval + " minute"+(interval > 1 ? "s" : "");
|
||||
}
|
||||
|
||||
if (interval < 0) {
|
||||
return " just now";
|
||||
}
|
||||
return Math.floor(seconds) + " seconds";
|
||||
var interval = Math.floor(seconds / 31536000);
|
||||
|
||||
if (interval >= 1) {
|
||||
return interval + " year" + (interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 2592000);
|
||||
if (interval >= 1) {
|
||||
return interval + " month" + (interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 604800);
|
||||
if (interval >= 1) {
|
||||
return interval + " week" + (interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 86400);
|
||||
if (interval >= 1) {
|
||||
return interval + " day" + (interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 3600);
|
||||
if (interval >= 1) {
|
||||
return interval + " hour" + (interval > 1 ? "s" : "");
|
||||
}
|
||||
interval = Math.floor(seconds / 60);
|
||||
if (interval >= 1) {
|
||||
return interval + " minute" + (interval > 1 ? "s" : "");
|
||||
}
|
||||
|
||||
if (interval < 0) {
|
||||
return " just now";
|
||||
}
|
||||
return Math.floor(seconds) + " seconds";
|
||||
}
|
||||
|
|
|
@ -242,7 +242,7 @@ $query = http_build_query(array_filter(array(
|
|||
}, 15000);
|
||||
|
||||
function notificaton(message){
|
||||
var notif = "<div class='notif error' style='border-left:3px solid red; background-color:pink;'> <div class='notifContents'> <div style='flex: 0 0 60px; background-size:cover; border-radius:5px;'></div> <div style='flex: 1; padding-left:5px; padding-right:5px; word-break: break-all; overflow:hidden;'> <span>"+message+"</span> </div> </div> </div>";
|
||||
var notif = "<div class='notif error' style='border-left:3px solid red; background-color:pink;'> <div class='notifContents'> <div style='flex: 0 0 60px; background-size:cover; border-radius:5px;'></div> <div style='flex: 1; padding-left:5px; padding-right:5px; word-break: break-word; overflow:hidden;'> <span>"+message+"</span> </div> </div> </div>";
|
||||
$('#hiddenside').append(notif);
|
||||
$('#hiddenside').children().each(function(index) {
|
||||
$(this).delay(4000 + (1000 * index)).fadeOut("slow");
|
||||
|
|
|
@ -356,7 +356,7 @@ if ((!isset($thread[0]['id']) && !empty($thread)) || !is_array($thread)) {
|
|||
else {
|
||||
if ($logedin){
|
||||
$post['template'] = themes("get","templates/post.txt");
|
||||
} else {
|
||||
} else {
|
||||
$post['template'] = themes("get","templates/post_logout.txt");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,36 +3,13 @@
|
|||
<div class='avatar' style='height:0px;'></div>
|
||||
<div class='post' style='text-align:left;'>
|
||||
<div style='padding:15px; text-align:left; display:inline-block;' id="settings">
|
||||
<h1><span class='fontello' style='font-size:inherit;'></span> About Dashboard FE</h1>
|
||||
<h1><span class='fontello' style='font-size:inherit;'></span> About Fedi Tumblr</h1>
|
||||
<br>
|
||||
<p>Dashboard FE (#DashFE for short) is a third-party client or fronted for Pleroma and Mastodon servers, writen in PHP, which design inspires on the look and feel of the Tumblr user dashboard. This frontend puts special emphasis on displaying posts with attached media, being images, video or music.</p>
|
||||
|
||||
<p>Currently a work in progress, #DashFE is being developed by <a href='https://gameliberty.club/@hideki' target='_blank' class='link' style='font-weight:bold;'>@hideki@gameliberty.club</a> and it's in a constant state of change, so features present may change or improve over time.</p>
|
||||
|
||||
<p>The source code of the project is currently being hosted at https://notabug.org/daisuke/DashboardFE</p>
|
||||
|
||||
<p>DashFE Key Features:
|
||||
<ul>
|
||||
<li>Emphasis on posts with media attachments</li>
|
||||
<li>Ability to mark all posts by an user as NSFW</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>DashFE Project Policies:
|
||||
<ul>
|
||||
<li>Keep things as simple as possible</li>
|
||||
<li>Keep dependencies on external libraries at a minimum</li>
|
||||
<li>Allow access to nojs users</li>
|
||||
<li>Keep the user in contol of their data</li>
|
||||
<li>Empower the user to create a custom fediverse experience</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>Known issues:
|
||||
<ul>
|
||||
<li>If after entering your user@instance on the login page you are returned to the main page of DashFE witouth having being loged in, check if you are currently logged in into your Pleroma's MastoFE GUI. Try logging out and then logging in here again.</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>Fedi Tumblr is a frontend for interacting with the fediverse that is meant to replicate the feel of Tumblr.</p>
|
||||
<br>
|
||||
<p>The source code for the project can be found <a href="https://git.autonomic.zone/aadil/fedi-tumblr">here</a>.</p>
|
||||
<br>
|
||||
<p>This project is a fork of <a href="https://notabug.org/daisuke/DashboardFE">Dashboard FE</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -7,7 +7,7 @@ $setting['appname'] = "Fedi Tumblr";
|
|||
$setting['url'] = "http://aadils.computer/fedi";
|
||||
|
||||
//Short description
|
||||
$setting['description'] = "<p>Dashboard FE (or DashFE if you like it) it's a third party client/frontend for Pleroma and Mastodon that tries to mimic the look and feel of the Tumblr user dashboard, putting big emphasis in a timeline filled by media of all types</p> <p>Currently a Work in Progress, DashFE can actually be used but it's very possible that there are still rough edges, missing features and stuff that needs to be corrected and/or optimized. Issues, suggestion or sugerences please contact <b>@hideki@gameliberty.club</b> via your favorite fediverse account.</p><p>Thank You</p>";
|
||||
$setting['description'] = "<br><p>A tumblr-like frontend for interacting with the fediverse.</p>";
|
||||
|
||||
//Locked Instance
|
||||
//If you prefer your instance of DashboardFE to be locked to a certain fediverse server (your own server, for example) and prevent it's use on another fediverse server, just uncomment the following line and put the url of the desired server
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class='post' id=':id:' pid=':pid:' mode="post">
|
||||
<div id='a:id:' class='ancestors'>:ancestors:</div>
|
||||
<div class='postHeader'>
|
||||
<div style='width:80%; margin:5px; margin-left:10px; display:block; float:left; line-height:30px;'>
|
||||
<div style='width:80%; margin:5px; margin-left:1em; display:block; float:left; line-height:30px;'>
|
||||
<img src=':avatar:' width=25 class='mobile' style='border-radius:10px; display:inline-block;'>
|
||||
<div style='max-width:50%; display:inline-block;' class='user' id=':uid:' title=':acct:'>
|
||||
<div style='white-space: nowrap; overflow: hidden; text-overflow: ellipsis;'>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class='post' id=':id:' pid=':pid:' mode="post">
|
||||
<div id='a:id:' class='ancestors'>:ancestors:</div>
|
||||
<div class='postHeader'>
|
||||
<div style='width:80%; margin:5px; margin-left:10px; display:block; float:left; line-height:30px;'>
|
||||
<div style='width:80%; margin:5px; margin-left:1em; display:block; float:left; line-height:30px;'>
|
||||
<img src=':avatar:' width=25 class='mobile' style='border-radius:10px; display:inline-block;'>
|
||||
<div style='max-width:50%; display:inline-block;' class='user' id=':uid:'>
|
||||
<div style='white-space: nowrap; overflow: hidden; text-overflow: ellipsis;'>
|
||||
|
|
Loading…
Reference in New Issue