1
0
Fork 1
mirror of https://github.com/pixelfed/pixelfed.git synced 2025-03-15 08:29:12 +00:00
This commit is contained in:
Pierre Jaury 2018-06-20 22:50:37 +02:00
commit ff67d9e581
30 changed files with 220 additions and 87 deletions

View file

@ -1,46 +1,50 @@
APP_NAME=Laravel
APP_NAME="PixelFed Test"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
ADMIN_DOMAIN="localhost"
APP_DOMAIN="localhost"
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
CACHE_DRIVER=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
QUEUE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_DRIVER=log
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
SESSION_DOMAIN=".pixelfed.dev"
SESSION_DOMAIN="${APP_DOMAIN}"
SESSION_SECURE_COOKIE=true
API_BASE="/api/1/"
API_SEARCH="/api/search"
OPEN_REGISTRATION=true
RECAPTCHA_ENABLED=false
ENFORCE_EMAIL_VERIFICATION=true
MAX_PHOTO_SIZE=15000
MAX_CAPTION_LENGTH=150
MAX_ALBUM_LENGTH=4
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

View file

@ -1,4 +1,76 @@
# PixelFed
Federated Image Sharing
# PixelFed: Federated Image Sharing
> This project is still in active development and not yet ready for use.
PixelFed is a federated social image sharing platform, similar to instagram.
Federation is done using the [ActivityPub](https://activitypub.rocks/) protocol,
which is used by [Mastodon](http://joinmastodon.org/), [PeerTube](https://joinpeertube.org/en/),
[Pleroma](https://pleroma.social/), and more. Through ActivityPub PixelFed can share
and interact with these platforms, as well as other instances of PixelFed.
**_Please note this is alpha software, not recommended for production use,
and federation is not supported yet._**
PixelFed is very early into the development stage. If you would like to have a
permanent instance with minimal breakage, **do not use this software until
there is a stable release**. The following setup instructions are intended for
testing and development.
## Requirements
- PHP >= 7.1.3 (7.2+ recommended for stable version)
- MySQL, Postgres (MariaDB and sqlite are not supported yet)
- Redis
- Composer
- GD or ImageMagick
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- JpegOptim
- Optipng
- Pngquant 2
- SVGO
- Gifsicle
## Installation
This guide assumes you have NGINX/Apache installed, along with the dependencies.
Those will not be covered in these early docs.
```bash
git clone https://github.com/dansup/pixelfed.git
cd pixelfed
composer install
cp .env.example .env
```
**Edit .env file with proper values**
```bash
php artisan key:generate
```
```bash
php artisan storage:link
php artisan migrate
php artisan horizon
php artisan serve --host=localhost --port=80
```
Check your browser at http://localhost
## Communication
The ways you can communicate on the project are below. Before interacting, please
read through the [Code Of Conduct](CODE_OF_CONDUCT.md).
* IRC: #pixelfed on irc.freenode.net ([#freenode_#pixelfed:matrix.org through
Matrix](https://matrix.to/#/#freenode_#pixelfed:matrix.org)
* Project on Mastodon: [@pixelfed@mastodon.social](https://mastodon.social/@pixelfed)
* E-mail: [hello@pixelfed.org](mailto:hello@pixelfed.org)
## Support
The lead maintainer is on Patreon! You can become a Patron at
https://www.patreon.com/dansup

View file

@ -34,7 +34,7 @@ class CommentController extends Controller
$reply = new Status();
$reply->profile_id = $profile->id;
$reply->caption = e(strip_tags($comment));
$reply->caption = e($comment);
$reply->rendered = $comment;
$reply->in_reply_to_id = $status->id;
$reply->in_reply_to_profile_id = $status->profile_id;
@ -44,7 +44,7 @@ class CommentController extends Controller
CommentPipeline::dispatch($status, $reply);
if($request->ajax()) {
$response = ['code' => 200, 'msg' => 'Comment saved', 'username' => $profile->username, 'url' => $reply->url(), 'profile' => $profile->url()];
$response = ['code' => 200, 'msg' => 'Comment saved', 'username' => $profile->username, 'url' => $reply->url(), 'profile' => $profile->url(), 'comment' => $reply->caption];
} else {
$response = redirect($status->url());
}

View file

@ -65,7 +65,7 @@ return [
|
*/
'timezone' => 'UTC',
'timezone' => env('APP_TIMEZONE', 'UTC'),
/*
|--------------------------------------------------------------------------
@ -78,7 +78,7 @@ return [
|
*/
'locale' => 'en',
'locale' => env('APP_LOCALE', 'en'),
/*
|--------------------------------------------------------------------------
@ -91,7 +91,7 @@ return [
|
*/
'fallback_locale' => 'en',
'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
/*
|--------------------------------------------------------------------------

2
public/css/app.css vendored

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 50.2 (55047) - http://www.bohemiancoding.com/sketch -->
<title>04/icon/black/svg/pixelfed-icon-black</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon-copy-6" fill="#000000">
<path d="M26.1989752,16.1654164 C26.1191375,15.6717246 25.9970712,15.1834955 25.8327784,14.7064947 C25.4032698,13.4577487 24.7071549,12.3267513 23.7688167,11.3882121 L18.8200906,6.43842552 C18.6286052,6.24689918 18.4253978,6.0651186 18.2059577,5.88739016 C18.9457319,2.7779446 21.7493666,0.5 25.0056862,0.5 C28.4355286,0.5 31.3631553,3.02718742 31.9058524,6.39134335 C31.9709938,6.7962157 32.0040616,7.15536036 32.0040616,7.499875 L32.0040616,14.49975 C32.0040616,15.3777768 31.8350727,16.2367131 31.511582,17.0488633 C30.4438253,16.4852131 29.2225744,16.1654164 27.9252137,16.1654164 L26.1989752,16.1654164 Z M23.8073996,31.046185 C23.5834161,32.4635947 23.7071641,33.9247757 24.178594,35.2935053 C24.6081026,36.5422513 25.3042175,37.6732487 26.2425556,38.6117879 L31.1921829,43.5624744 C31.3833579,43.7531345 31.5862081,43.9343531 31.8055418,44.112075 C31.065962,47.2217942 28.2621925,49.5 25.0056862,49.5 C21.5757888,49.5 18.6481233,46.9727317 18.1054939,43.6084951 C18.0403874,43.2038799 18.0073108,42.8446855 18.0073108,42.500125 L18.0073108,35.50025 C18.0073108,35.4938387 18.0073198,35.4874284 18.0073378,35.4810192 L22.6056081,31.046185 L23.8073996,31.046185 Z M35.1468104,25.8777977 C35.1968412,25.8615612 35.2467562,25.8448643 35.2965488,25.8277069 C36.5465838,25.396568 37.6766493,24.7009751 38.6141205,23.763303 L43.5628467,18.8135164 C43.7543612,18.6219608 43.9361291,18.4186771 44.1138454,18.1991515 C47.2222774,18.9383789 49.5,21.7431301 49.5,25.0004375 C49.5,28.4310698 46.9732731,31.3593627 43.6097572,31.9021084 C43.2052287,31.9672288 42.8461113,32.0003125 42.5016246,32.0003125 L35.5032492,32.0003125 C34.4465015,32.0003125 33.4174129,31.75537 32.4642879,31.2907626 C31.9585449,31.0442436 31.4866999,30.7388098 31.0577027,30.3834131 C32.9917905,29.5211241 34.4916783,27.8849489 35.1468104,25.8777977 Z M32.9818651,18.0619641 C33.4869192,16.9416136 33.7536554,15.736333 33.7536554,14.49975 L33.7536554,7.499875 C33.7536554,7.22965928 33.7384248,6.95788037 33.7088174,6.67629632 C36.4300225,5.000963 40.0234106,5.37310623 42.325648,7.67579129 C44.7509518,10.1024315 45.0347176,13.9597464 43.0399586,16.7217074 C42.8019022,17.0521235 42.5708139,17.3300572 42.325697,17.5752267 L37.3769708,22.5250133 C36.8285828,23.0735188 36.1967915,23.5184213 35.5026804,23.8530318 C35.505411,23.7709507 35.506787,23.6885334 35.506787,23.6058007 C35.506787,21.4032822 34.5316098,19.4242869 32.9818651,18.0619641 Z M29.1180777,30.9546188 C29.8495788,31.7387598 30.723016,32.3887119 31.6978107,32.8638651 C32.8860975,33.4431037 34.176657,33.7502812 35.5032492,33.7502812 L42.5016246,33.7502812 C42.7718182,33.7502812 43.043575,33.7350433 43.3251385,33.7054219 C45.0005544,36.4268542 44.6282644,40.021099 42.325697,42.3241597 C39.9008053,44.7495711 36.0434832,45.0332243 33.2816352,43.0384785 C32.9514226,42.8004669 32.6735484,42.5693291 32.4284315,42.3241597 L27.4797053,37.3743731 C26.7330644,36.6275722 26.1784347,35.7261305 25.8326956,34.723272 C25.4247205,33.5387745 25.3418769,32.266466 25.5842066,31.046185 L27.9252137,31.046185 C28.3310733,31.046185 28.7294844,31.0148879 29.1180777,30.9546188 Z M18.0361092,17.005126 C16.9498565,16.5196511 15.7507833,16.2505937 14.4967508,16.2505937 L7.49837538,16.2505937 C7.232029,16.2505937 6.96418507,16.2653384 6.68632324,16.2940088 C5.0111787,13.5720997 5.38321091,9.97879809 7.68567533,7.67584029 C10.1105671,5.25042891 13.9678891,4.96677571 16.7297371,6.96152155 C17.0599498,7.19953306 17.337824,7.43067088 17.5829409,7.67584029 L22.5316124,12.6264472 C23.2782947,13.3732895 23.8329179,14.2747125 24.1786584,15.2775495 C24.2790442,15.5688604 24.3597451,15.8655119 24.4207608,16.1654164 L20.6352393,16.1654164 C19.6618729,16.1654164 18.7627665,16.4774398 18.0361092,17.005126 Z M16.2612547,35.2537259 C16.258899,35.3357513 16.257717,35.4179313 16.257717,35.50025 L16.257717,42.500125 C16.257717,42.7703407 16.2729476,43.0421196 16.3025549,43.3237037 C13.5813306,44.9990489 9.98791079,44.6268885 7.68567533,42.3241597 C5.26078356,39.8987483 4.97719112,36.0405997 6.97150962,33.2781599 C7.20947014,32.9478765 7.44055844,32.6699428 7.68567533,32.4247733 L12.6344015,27.4749867 C13.3810424,26.7281858 14.282291,26.1734373 15.2849346,25.8276241 C15.6048854,25.7173766 15.9312445,25.6308666 16.2612547,25.5680951 L16.2612547,35.2537259 Z M16.2612547,23.7931301 C15.7377606,23.8724201 15.2199939,23.9990983 14.7148236,24.1731681 C13.4647886,24.604307 12.334723,25.2998999 11.3972518,26.237572 L6.44852566,31.1873586 C6.25392808,31.3819979 6.06939348,31.588746 5.88894736,31.812338 C2.78032488,31.0741675 0.5,28.2622334 0.5,25.0004375 C0.5,21.5662743 3.03179045,18.6360332 6.40961211,18.0974198 C6.55156249,18.0732434 7.23969074,18.0005625 7.49837538,18.0005625 L14.4967508,18.0005625 C15.2999569,18.0005625 16.0753514,18.1390919 16.7989258,18.3943464 C16.4561913,19.0066903 16.2612547,19.7099771 16.2612547,20.4579458 L16.2612547,23.7931301 Z" id="Combined-Shape"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

2
public/js/app.js vendored

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{
"/js/app.js": "/js/app.js?id=10b2b118e1aa4607622d",
"/css/app.css": "/css/app.css?id=d8339100d1c73fdb7957",
"/js/app.js": "/js/app.js?id=4c2440700c647b915b2e",
"/css/app.css": "/css/app.css?id=a7c64d139bb04ef8e290",
"/js/timeline.js": "/js/timeline.js?id=d9a3145c0cd21ca09172",
"/js/activity.js": "/js/activity.js?id=723dfb98bbbc96a9d39f"
}

View file

@ -21,6 +21,7 @@ $(document).ready(function() {
var username = res.data.username;
var permalink = res.data.url;
var profile = res.data.profile;
var reply = res.data.comment;
if($('.status-container').length == 1) {
var comments = el.parents().eq(3).find('.comments');
@ -28,7 +29,7 @@ $(document).ready(function() {
var comments = el.parents().eq(1).find('.comments');
}
var comment = '<p class="mb-0"><span class="font-weight-bold pr-1"><bdi><a class="text-dark" href="' + profile + '">' + username + '</a></bdi></span><span class="comment-text">'+ commenttext + '</span><span class="float-right"><a href="' + permalink + '" class="text-dark small font-weight-bold">1s</a></span></p>';
var comment = '<p class="mb-0"><span class="font-weight-bold pr-1"><bdi><a class="text-dark" href="' + profile + '">' + username + '</a></bdi></span><span class="comment-text">'+ reply + '</span><span class="float-right"><a href="' + permalink + '" class="text-dark small font-weight-bold">1s</a></span></p>';
comments.prepend(comment);

View file

@ -193,6 +193,13 @@ body, button, input, textarea {
}
}
@media (max-width: map-get($grid-breakpoints, "sm")) {
.card-md-rounded-0 {
border-width: 1px 0;
border-radius:0 !important;
}
}
@keyframes loading-bar {
from { background-position: 0 0; }
to { background-position: 100vw 0; }
@ -235,6 +242,12 @@ body, button, input, textarea {
background-position: 50%;
}
.status-photo img {
object-fit: contain;
max-height: calc(100vh - (6rem));
}
@keyframes fadeInDown {
0% {
opacity: 0;
@ -248,4 +261,5 @@ body, button, input, textarea {
.details-animated[open] {
animation-name: fadeInDown;
animation-duration: 0.5s;
}
}

View file

@ -0,0 +1,13 @@
<?php
return [
'viewMyProfile' => 'Mein Profil anschauen',
'myTimeline' => 'Meine Timeline',
'publicTimeline' => '&Ouml;ffentliche Timeline',
'remoteFollow' => 'Aus der Ferne folgen',
'settings' => 'Einstellungen',
'admin' => 'Administration',
'logout' => 'Abmelden',
];

View file

@ -5,5 +5,6 @@ return [
'likedPhoto' => 'gef&auml;llt dein Foto.',
'startedFollowingYou' => 'folgt dir nun.',
'commented' => 'hat deinen Post kommentiert.',
'mentionedYou' => 'hat dich erw&auml;hnt.'
];

View file

@ -4,5 +4,5 @@ return [
'emptyTimeline' => 'This user has no posts yet!',
'emptyFollowers' => 'This user has no followers yet!',
'emptyFollowing' => 'This user is not following anyone yet!',
'savedWarning' => 'Only you can see what you\'ve saved',
];
'savedWarning' => 'Only you can see what youve saved',
];

View file

@ -0,0 +1,13 @@
<?php
return [
'viewMyProfile' => 'צפה בפרופיל שלי',
'myTimeline' => 'ציר הזמן שלי',
'publicTimeline' => 'ציר הזמן הציבורי',
'remoteFollow' => 'עקיבה מרחוק',
'settings' => 'הגדרות',
'admin' => 'מנהל',
'logout' => 'התנתק',
];

View file

@ -5,5 +5,6 @@ return [
'likedPhoto' => 'אהבו את התמונה שלך.',
'startedFollowingYou' => 'התחיל לעקוב אחריך.',
'commented' => 'הגיב על הפוסט שלך.',
'mentionedYou' => 'הזכיר אותך.'
];

View file

@ -5,9 +5,9 @@
<div class="error-page py-5 my-5">
<div class="card mx-5">
<div class="card-body p-5">
<h1 class="text-center">403 - Forbidden</h1>
<h1 class="text-center">403 Forbidden</h1>
</div>
</div>
</div>
</div>
@endsection
@endsection

View file

@ -5,9 +5,9 @@
<div class="error-page py-5 my-5">
<div class="card mx-5">
<div class="card-body p-5">
<h1 class="text-center">404 - Page Not Found</h1>
<h1 class="text-center">404 Page Not Found</h1>
</div>
</div>
</div>
</div>
@endsection
@endsection

View file

@ -5,10 +5,10 @@
<div class="error-page py-5 my-5">
<div class="card mx-5">
<div class="card-body p-5 text-center">
<h1>503 - Service Unavailable</h1>
<h1>503 Service Unavailable</h1>
<p class="lead mb-0">Our services are overloaded at the moment, please try again later.</p>
</div>
</div>
</div>
</div>
@endsection
@endsection

View file

@ -1,8 +1,8 @@
<nav class="navbar navbar-expand navbar-light navbar-laravel sticky-top">
<div class="container">
<a class="navbar-brand d-flex align-items-center" href="{{ url('/timeline') }}" title="Logo">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mr-2"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"></path><circle cx="12" cy="13" r="4"></circle></svg>
<strong class="font-weight-bold">{{ config('app.name', 'Laravel') }}</strong>
<img src="/img/pixelfed-icon-black.svg" height="60px" class="p-2">
<span class="h4 font-weight-bold mb-0">{{ config('app.name', 'Laravel') }}</span>
</a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">

View file

@ -1,4 +1,4 @@
@extends('layouts.app',['title' => $profile->username . "'s followers"])
@extends('layouts.app',['title' => $profile->username . "s followers"])
@section('content')

View file

@ -1,4 +1,4 @@
@extends('layouts.app',['title' => $profile->username . "'s follows"])
@extends('layouts.app',['title' => $profile->username . "s follows"])
@section('content')

View file

@ -22,12 +22,12 @@
<div class="row">
<div class="col-12 col-md-8 offset-md-2 my-3">
<p><a class="btn btn-light btn-block p-4 font-weight-bold" disabled>
I'm not interested in this content
Im not interested in this content
</a></p>
</div>
<div class="col-12 col-md-8 offset-md-2 my-3">
<p><a class="btn btn-light btn-block p-4 font-weight-bold">
It's spam
Its spam
</a></p>
</div>
<div class="col-12 col-md-8 offset-md-2 my-3">
@ -37,7 +37,7 @@
</div>
<div class="col-12 col-md-8 offset-md-2 my-3">
<p><a class="btn btn-light btn-block p-4 font-weight-bold">
It's abusive or harmful
Its abusive or harmful
</a></p>
</div>
<div class="col-12 col-md-8 offset-md-2 my-3">
@ -51,4 +51,4 @@
</div>
</div>
@endsection
@endsection

View file

@ -7,15 +7,15 @@
</div>
<hr>
<section>
<p class="lead">Fediverse is a portmanteau of "federation" and "universe". It is a common, informal name for a somewhat broad federation of social network servers.</p>
<p class="lead">Fediverse is a portmanteau of “federation” and “universe”. It is a common, informal name for a somewhat broad federation of social network servers.</p>
<p class="lead font-weight-bold text-muted mt-4">Supported Fediverse Projects</p>
<ul class="lead pl-4">
<li><a href="https://joinmastodon.org" rel="nofollow noopener">Mastodon</a> - A federated twitter alternative.</li>
<li><a href="https://pleroma.social" rel="nofollow noopener">Pleroma</a> - A federated twitter alternative.</li>
<li><a href="https://joinmastodon.org" rel="nofollow noopener">Mastodon</a> A federated twitter alternative.</li>
<li><a href="https://pleroma.social" rel="nofollow noopener">Pleroma</a> A federated twitter alternative.</li>
</ul>
</section>
@endsection
@push('meta')
<meta property="og:description" content="What's Fediverse">
<meta property="og:description" content="Whats Fediverse">
@endpush

View file

@ -6,7 +6,7 @@
<h3 class="font-weight-bold">Language</h3>
</div>
<hr>
<div class="alert alert-info font-weight-bold">We're still working on localization support!</div>
<div class="alert alert-info font-weight-bold">Were still working on localization support!</div>
<p class="lead">Current Locale: <span class="font-weight-bold">{{App::getLocale()}}</span></p>
<p class="lead">Select from one of the supported languages:</p>
<ul class="list-group">

View file

@ -16,7 +16,7 @@
Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
</li>
<li>
Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over PixelFed.
Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore its important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over PixelFed.
</li>
<li>
IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
@ -27,7 +27,7 @@
<p class="lead">Any of the information we collect from you may be used in the following ways:</p>
<ul class="lead pl-4">
<li>
To provide the core functionality of PixelFed. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
To provide the core functionality of PixelFed. You can only interact with other peoples content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
</li>
<li>
To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
@ -57,7 +57,7 @@
<p class="lead">You may irreversibly delete your account at any time.</p>
<h4 class="font-weight-bold">Do we use cookies?</h4>
<p class="lead">Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
<p class="lead">Yes. Cookies are small files that a site or its service provider transfers to your computers hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
</p>
<p class="lead">We use cookies to understand and save your preferences for future visits.</p>
@ -66,8 +66,8 @@
<p class="lead">Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.</p>
<p class="lead">When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.</p>
<h4 class="font-weight-bold">Children's Online Privacy Protection Act Compliance</h4>
<p class="lead">Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.</p>
<h4 class="font-weight-bold">Childrens Online Privacy Protection Act Compliance</h4>
<p class="lead">Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (Childrens Online Privacy Protection Act) do not use this site.</p>
<h4 class="font-weight-bold">Changes to our Privacy Policy</h4>
<p class="lead">If we decide to change our privacy policy, we will post those changes on this page.</p>

View file

@ -3,7 +3,7 @@
@section('content')
<div class="container px-0 mt-md-4">
<div class="card status-container orientation-{{$status->firstMedia()->orientation ?? 'unknown'}}">
<div class="card card-md-rounded-0 status-container orientation-{{$status->firstMedia()->orientation ?? 'unknown'}}">
<div class="row mx-0">
<div class="d-flex d-md-none align-items-center justify-content-between card-header bg-white w-100">
<div class="d-flex align-items-center status-username">
@ -87,23 +87,23 @@
</div>
</div>
<div class="card-body flex-grow-0 py-1">
<div class="reactions h3 mb-0">
<div class="reactions my-1">
<form class="d-inline-flex like-form pr-3" method="post" action="/i/like" style="display: inline;" data-id="{{$status->id}}" data-action="like">
@csrf
<input type="hidden" name="item" value="{{$status->id}}">
<button class="btn btn-link text-dark btn-lg p-0" type="submit" title="Like!">
<span class="far fa-heart fa-lg mb-0"></span>
<button class="btn btn-link text-dark p-0 border-0" type="submit" title="Like!">
<h3 class="far fa-heart m-0"></h3>
</button>
</form>
<span class="far fa-comment pt-1 pr-3" title="Comment"></span>
<h3 class="far fa-comment pr-3 m-0" title="Comment"></h3>
@if(Auth::check())
@if(Auth::user()->profile->id === $status->profile->id || Auth::user()->is_admin == true)
<form method="post" action="/i/delete" class="d-inline-flex">
@csrf
<input type="hidden" name="type" value="post">
<input type="hidden" name="item" value="{{$status->id}}">
<button type="submit" class="btn btn-link btn-lg text-dark p-0" title="Remove">
<span class="far fa-trash-alt fa-lg mb-0"></span>
<button type="submit" class="btn btn-link text-dark p-0 border-0" title="Remove">
<h3 class="far fa-trash-alt m-0"></h3>
</button>
</form>
@endif
@ -112,8 +112,8 @@
<form class="d-inline-flex bookmark-form" method="post" action="/i/bookmark" style="display: inline;" data-id="{{$status->id}}" data-action="bookmark">
@csrf
<input type="hidden" name="item" value="{{$status->id}}">
<button class="btn btn-link text-dark p-0 btn-lg" type="submit" title="Save">
<span class="far fa-bookmark fa-lg mb-0"></span>
<button class="btn btn-link text-dark p-0 border-0" type="submit" title="Save">
<h3 class="far fa-bookmark m-0"></h3>
</button>
</form>
</span>

View file

@ -1,4 +1,4 @@
<div class="card my-4 status-card">
<div class="card my-4 status-card card-md-rounded-0">
<div class="card-header d-inline-flex align-items-center bg-white">
<img src="{{$item->profile->avatarUrl()}}" width="32px" height="32px" style="border-radius: 32px;">
<a class="username font-weight-bold pl-2 text-dark" href="{{$item->profile->url()}}">
@ -44,20 +44,22 @@
</a>
@endif
<div class="card-body">
<div class="reactions h3">
<form class="like-form pr-3" method="post" action="/i/like" style="display: inline;" data-id="{{$item->id}}" data-action="like" data-count="{{$item->likes_count}}">
<div class="reactions my-1">
<form class="d-inline-flex like-form pr-3" method="post" action="/i/like" style="display: inline;" data-id="{{$item->id}}" data-action="like" data-count="{{$item->likes_count}}">
@csrf
<input type="hidden" name="item" value="{{$item->id}}">
<button class="btn btn-link text-dark p-0" type="submit" title=""Like!>
<span class="far fa-heart status-heart fa-2x"></span>
<h3 class="far fa-heart status-heart m-0"></h3>
</button>
</form>
<span class="far fa-comment status-comment-focus" title="Comment"></span>
<h3 class="far fa-comment status-comment-focus" title="Comment"></h3>
<span class="float-right">
<form class="bookmark-form" method="post" action="/i/bookmark" style="display: inline;" data-id="{{$item->id}}" data-action="bookmark">
<form class="d-inline-flex bookmark-form" method="post" action="/i/bookmark" style="display: inline;" data-id="{{$item->id}}" data-action="bookmark">
@csrf
<input type="hidden" name="item" value="{{$item->id}}">
<button class="btn btn-link text-dark p-0" type="submit" title="Save"><span class="far fa-bookmark" style="font-size:25px;"></span></button>
<button class="btn btn-link text-dark p-0 border-0" type="submit" title="Save">
<h3 class="far fa-bookmark m-0"></h3>
</button>
</form>
</span>
</div>
@ -103,7 +105,7 @@
<form class="comment-form" method="post" action="/i/comment" data-id="{{$item->id}}" data-truncate="true">
@csrf
<input type="hidden" name="item" value="{{$item->id}}">
<input class="form-control status-reply-input" name="comment" placeholder="Add a comment...">
<input class="form-control status-reply-input" name="comment" placeholder="Add a comment">
</form>
</div>
</div>

View file

@ -1,4 +1,4 @@
<div class="card">
<div class="card card-md-rounded-0">
<div class="card-header font-weight-bold">New Post</div>
<div class="card-body" id="statusForm">
@if (session('error'))

View file

@ -6,8 +6,8 @@
@section('content')
<div class="container">
<div class="col-12 col-md-8 offset-md-2 pt-4">
<div class="container p-0">
<div class="col-md-10 col-lg-8 mx-auto pt-4 px-0">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@ -27,7 +27,7 @@
@endforeach
@if($timeline->count() == 0)
<div class="card">
<div class="card card-md-rounded-0">
<div class="card-body py-5">
<div class="d-flex justify-content-center align-items-center">
<p class="lead font-weight-bold mb-0">{{ __('timeline.emptyPersonalTimeline') }}</p>
@ -37,11 +37,11 @@
@endif
</div>
<div class="page-load-status">
<div class="infinite-scroll-request">
<div class="d-none fixed-top loading-page"></div>
<div class="page-load-status" style="display: none;">
<div class="infinite-scroll-request" style="display: none;">
<div class="fixed-top loading-page"></div>
</div>
<div class="infinite-scroll-last">
<div class="infinite-scroll-last" style="display: none;">
<h3>No more content</h3>
<p class="text-muted">
Maybe you could try
@ -49,7 +49,7 @@
more people you can follow.
</p>
</div>
<div class="infinite-scroll-error">
<div class="infinite-scroll-error" style="display: none;">
<h3>Whoops, an error</h3>
<p class="text-muted">
Try reloading the page

View file

@ -6,8 +6,8 @@
@section('content')
<div class="container">
<div class="col-12 col-md-8 offset-md-2 pt-4">
<div class="container px-0">
<div class="col-md-10 col-lg-8 mx-auto pt-4 px-0">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@ -28,11 +28,11 @@
@endforeach
</div>
<div class="page-load-status">
<div class="infinite-scroll-request">
<div class="d-none fixed-top loading-page"></div>
<div class="page-load-status" style="display: none;">
<div class="infinite-scroll-request" style="display: none;">
<div class="fixed-top loading-page"></div>
</div>
<div class="infinite-scroll-last">
<div class="infinite-scroll-last" style="display: none;">
<h3>No more content</h3>
<p class="text-muted">
Maybe you could try
@ -40,7 +40,7 @@
more people you can follow.
</p>
</div>
<div class="infinite-scroll-error">
<div class="infinite-scroll-error" style="display: none;">
<h3>Whoops, an error</h3>
<p class="text-muted">
Try reloading the page