mirror of
https://github.com/pixelfed/pixelfed.git
synced 2025-03-15 08:29:12 +00:00
Merge branch 'dev' of https://github.com/dansup/pixelfed into dev
This commit is contained in:
commit
ff67d9e581
30 changed files with 220 additions and 87 deletions
32
.env.example
32
.env.example
|
@ -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}"
|
||||
|
|
78
README.md
78
README.md
|
@ -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
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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
2
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
12
public/img/pixelfed-icon-black.svg
Normal file
12
public/img/pixelfed-icon-black.svg
Normal 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
2
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
|
@ -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"
|
||||
}
|
|
@ -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);
|
||||
|
||||
|
|
16
resources/assets/sass/custom.scss
vendored
16
resources/assets/sass/custom.scss
vendored
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
13
resources/lang/de/navmenu.php
Normal file
13
resources/lang/de/navmenu.php
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'viewMyProfile' => 'Mein Profil anschauen',
|
||||
'myTimeline' => 'Meine Timeline',
|
||||
'publicTimeline' => 'Öffentliche Timeline',
|
||||
'remoteFollow' => 'Aus der Ferne folgen',
|
||||
'settings' => 'Einstellungen',
|
||||
'admin' => 'Administration',
|
||||
'logout' => 'Abmelden',
|
||||
|
||||
];
|
|
@ -5,5 +5,6 @@ return [
|
|||
'likedPhoto' => 'gefällt dein Foto.',
|
||||
'startedFollowingYou' => 'folgt dir nun.',
|
||||
'commented' => 'hat deinen Post kommentiert.',
|
||||
'mentionedYou' => 'hat dich erwähnt.'
|
||||
|
||||
];
|
|
@ -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 you’ve saved',
|
||||
];
|
||||
|
|
13
resources/lang/he/navmenu.php
Normal file
13
resources/lang/he/navmenu.php
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'viewMyProfile' => 'צפה בפרופיל שלי',
|
||||
'myTimeline' => 'ציר הזמן שלי',
|
||||
'publicTimeline' => 'ציר הזמן הציבורי',
|
||||
'remoteFollow' => 'עקיבה מרחוק',
|
||||
'settings' => 'הגדרות',
|
||||
'admin' => 'מנהל',
|
||||
'logout' => 'התנתק',
|
||||
|
||||
];
|
|
@ -5,5 +5,6 @@ return [
|
|||
'likedPhoto' => 'אהבו את התמונה שלך.',
|
||||
'startedFollowingYou' => 'התחיל לעקוב אחריך.',
|
||||
'commented' => 'הגיב על הפוסט שלך.',
|
||||
'mentionedYou' => 'הזכיר אותך.'
|
||||
|
||||
];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@extends('layouts.app',['title' => $profile->username . "'s followers"])
|
||||
@extends('layouts.app',['title' => $profile->username . "’s followers"])
|
||||
|
||||
@section('content')
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@extends('layouts.app',['title' => $profile->username . "'s follows"])
|
||||
@extends('layouts.app',['title' => $profile->username . "’s follows"])
|
||||
|
||||
@section('content')
|
||||
|
||||
|
|
|
@ -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
|
||||
I’m 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
|
||||
It’s 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
|
||||
It’s 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
|
||||
|
|
|
@ -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="What’s Fediverse">
|
||||
@endpush
|
||||
|
|
|
@ -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">We’re 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">
|
||||
|
|
|
@ -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 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.
|
||||
</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 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.
|
||||
</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 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>
|
||||
<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">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">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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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'))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue