Merge branch 'staging' into dev

This commit is contained in:
Daniel Supernault 2022-05-18 03:15:24 -06:00
commit d48e6c5d67
53 changed files with 923 additions and 214 deletions

View File

@ -2,6 +2,9 @@
## [Unreleased](https://github.com/pixelfed/pixelfed/compare/v0.11.3...dev)
### New Features
- Custom content warnings/spoiler text ([d4864213](https://github.com/pixelfed/pixelfed/commit/d4864213))
### Breaking
- Replaced `predis` with `phpredis` as default redis driver due to predis being deprecated, install [phpredis](https://github.com/phpredis/phpredis/blob/develop/INSTALL.markdown) if you're still using predis.
@ -18,6 +21,7 @@
- Update exp config, enforce mastoapi compatibility by default ([a160b233](https://github.com/pixelfed/pixelfed/commit/a160b233))
- Update home timeline, redirect to /i/web unless force_old_ui is present ([5ff4730f](https://github.com/pixelfed/pixelfed/commit/5ff4730f))
- Update adminReportController, fix mail verification request 500 bug by changing filter precedence to catch deleted users that may still be cached in AccountService ([3f322e29](https://github.com/pixelfed/pixelfed/commit/3f322e29))
- Update AP Helpers, fix getSensitive and getScope missing parameters ([657c66c1](https://github.com/pixelfed/pixelfed/commit/657c66c1))
## [v0.11.3 (2022-05-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.2...v0.11.3)

View File

@ -2289,6 +2289,7 @@ class ApiV1Controller extends Controller
'media_ids' => 'sometimes|array|max:' . config_cache('pixelfed.max_album_length'),
'sensitive' => 'nullable',
'visibility' => 'string|in:private,unlisted,public',
'spoiler_text' => 'sometimes|string|max:140',
]);
if(config('costar.enabled') == true) {
@ -2338,6 +2339,8 @@ class ApiV1Controller extends Controller
$content = strip_tags($request->input('status'));
$rendered = Autolink::create()->autolink($content);
$cw = $user->profile->cw == true ? true : $request->input('sensitive', false);
$spoilerText = $cw && $request->filled('spoiler_text') ? $request->input('spoiler_text') : null;
if($in_reply_to_id) {
$parent = Status::findOrFail($in_reply_to_id);
@ -2348,7 +2351,8 @@ class ApiV1Controller extends Controller
$status->scope = $visibility;
$status->visibility = $visibility;
$status->profile_id = $user->profile_id;
$status->is_nsfw = $user->profile->cw == true ? true : $request->input('sensitive', false);
$status->is_nsfw = $cw;
$status->cw_summary = $spoilerText;
$status->in_reply_to_id = $parent->id;
$status->in_reply_to_profile_id = $parent->profile_id;
$status->save();
@ -2371,7 +2375,8 @@ class ApiV1Controller extends Controller
$status->rendered = $rendered;
$status->profile_id = $user->profile_id;
$status->scope = 'draft';
$status->is_nsfw = $user->profile->cw == true ? true : $request->input('sensitive', false);
$status->is_nsfw = $cw;
$status->cw_summary = $spoilerText;
$status->save();
}

View File

@ -453,6 +453,7 @@ class ComposeController extends Controller
'tagged' => 'nullable',
'license' => 'nullable|integer|min:1|max:16',
'collections' => 'sometimes|array|min:1|max:5',
'spoiler_text' => 'nullable|string|max:140',
// 'optimize_media' => 'nullable'
]);
@ -540,6 +541,10 @@ class ComposeController extends Controller
$status->comments_disabled = (bool) $request->input('comments_disabled');
}
if($request->filled('spoiler_text') && $cw) {
$status->cw_summary = $request->input('spoiler_text');
}
$status->caption = strip_tags($request->caption);
$status->rendered = Autolink::create()->autolink($status->caption);
$status->scope = 'draft';

View File

@ -208,7 +208,7 @@ class SettingsController extends Controller
$opencollective = Str::startsWith($opencollective, 'opencollective.com/') ? e($opencollective) : null;
if(empty($patreon) && empty($liberapay) && empty($opencollective)) {
return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');;
return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');
}
$res = [
@ -251,7 +251,7 @@ class SettingsController extends Controller
} else {
Redis::zrem('pf:tl:replies', $pid);
}
return redirect(route('settings'))->with('status', 'Timeline settings successfully updated!');;
return redirect(route('settings'))->with('status', 'Timeline settings successfully updated!');
}
public function mediaSettings(Request $request)

View File

@ -22,7 +22,7 @@ class HashidService {
while($id) {
$id = ($id - ($r = $id % $base)) / $base;
$shortcode = $cmap[$r] . $shortcode;
};
}
return $shortcode;
});
}

View File

@ -93,7 +93,7 @@ class CreateNote extends Fractal\TransformerAbstract
'object' => [
'id' => $status->url(),
'type' => 'Note',
'summary' => null,
'summary' => $status->is_nsfw ? $status->cw_summary : null,
'content' => $status->rendered ?? $status->caption,
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
'published' => $status->created_at->toAtomString(),

View File

@ -87,7 +87,7 @@ class Note extends Fractal\TransformerAbstract
],
'id' => $status->url(),
'type' => 'Note',
'summary' => null,
'summary' => $status->is_nsfw ? $status->cw_summary : null,
'content' => $status->rendered ?? $status->caption,
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
'published' => $status->created_at->toAtomString(),

View File

@ -455,8 +455,8 @@ class Helpers {
return DB::transaction(function() use($url, $profile, $activity, $reply_to, $id) {
$ts = self::pluckval($activity['published']);
$scope = self::getScope($activity);
$cw = self::getSensitive($activity);
$scope = self::getScope($activity, $url);
$cw = self::getSensitive($activity, $url);
$pid = is_object($profile) ? $profile->id : (is_array($profile) ? $profile['id'] : null);
if(!$pid) {
@ -493,7 +493,7 @@ class Helpers {
});
}
public static function getSensitive($activity)
public static function getSensitive($activity, $url)
{
$id = isset($activity['id']) ? self::pluckval($activity['id']) : self::pluckval($url);
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;
@ -527,7 +527,7 @@ class Helpers {
return $reply_to;
}
public static function getScope($activity)
public static function getScope($activity, $url)
{
$id = isset($activity['id']) ? self::pluckval($activity['id']) : self::pluckval($url);
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;

2
public/css/app.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
public/css/spa.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/compose-ojtjadoml.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/daci-ojtjadoml.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
public/js/direct.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/dmsg-ojtjadoml.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/home-ojtjadoml.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{"use strict";var e,r,o,t={},s={};function a(e){var r=s[e];if(void 0!==r)return r.exports;var o=s[e]={id:e,loaded:!1,exports:{}};return t[e].call(o.exports,o,o.exports,a),o.loaded=!0,o.exports}a.m=t,e=[],a.O=(r,o,t,s)=>{if(!o){var n=1/0;for(l=0;l<e.length;l++){for(var[o,t,s]=e[l],d=!0,i=0;i<o.length;i++)(!1&s||n>=s)&&Object.keys(a.O).every((e=>a.O[e](o[i])))?o.splice(i--,1):(d=!1,s<n&&(n=s));if(d){e.splice(l--,1);var c=t();void 0!==c&&(r=c)}}return r}s=s||0;for(var l=e.length;l>0&&e[l-1][2]>s;l--)e[l]=e[l-1];e[l]=[o,t,s]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var o in r)a.o(r,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,o)=>(a.f[o](e,r),r)),[])),a.u=e=>74===e?"js/home-mh8cayo8d.js":509===e?"js/compose-mh8cayo8d.js":357===e?"js/post-mh8cayo8d.js":779===e?"js/profile-mh8cayo8d.js":411===e?"js/dmym-mh8cayo8d.js":426===e?"js/dmyh-mh8cayo8d.js":1===e?"js/daci-mh8cayo8d.js":120===e?"js/dffc-mh8cayo8d.js":203===e?"js/dsfc-mh8cayo8d.js":130===e?"js/dssc-mh8cayo8d.js":902===e?"js/discover-mh8cayo8d.js":886===e?"js/notifications-mh8cayo8d.js":771===e?"js/dms-mh8cayo8d.js":401===e?"js/dmsg-mh8cayo8d.js":void 0,a.miniCssF=e=>({138:"css/spa",170:"css/app",242:"css/appdark",703:"css/admin",994:"css/landing"}[e]+".css"),a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o="pixelfed:",a.l=(e,t,s,n)=>{if(r[e])r[e].push(t);else{var d,i;if(void 0!==s)for(var c=document.getElementsByTagName("script"),l=0;l<c.length;l++){var u=c[l];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+s){d=u;break}}d||(i=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,a.nc&&d.setAttribute("nonce",a.nc),d.setAttribute("data-webpack",o+s),d.src=e),r[e]=[t];var f=(o,t)=>{d.onerror=d.onload=null,clearTimeout(p);var s=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),s&&s.forEach((e=>e(t))),o)return o(t)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=f.bind(null,d.onerror),d.onload=f.bind(null,d.onload),i&&document.head.appendChild(d)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/",(()=>{var e={929:0,242:0,170:0,138:0,703:0,994:0};a.f.j=(r,o)=>{var t=a.o(e,r)?e[r]:void 0;if(0!==t)if(t)o.push(t[2]);else if(/^(138|170|242|703|929|994)$/.test(r))e[r]=0;else{var s=new Promise(((o,s)=>t=e[r]=[o,s]));o.push(t[2]=s);var n=a.p+a.u(r),d=new Error;a.l(n,(o=>{if(a.o(e,r)&&(0!==(t=e[r])&&(e[r]=void 0),t)){var s=o&&("load"===o.type?"missing":o.type),n=o&&o.target&&o.target.src;d.message="Loading chunk "+r+" failed.\n("+s+": "+n+")",d.name="ChunkLoadError",d.type=s,d.request=n,t[1](d)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,o)=>{var t,s,[n,d,i]=o,c=0;if(n.some((r=>0!==e[r]))){for(t in d)a.o(d,t)&&(a.m[t]=d[t]);if(i)var l=i(a)}for(r&&r(o);c<n.length;c++)s=n[c],a.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return a.O(l)},o=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})()})();
(()=>{"use strict";var e,o,t,r={},s={};function a(e){var o=s[e];if(void 0!==o)return o.exports;var t=s[e]={id:e,loaded:!1,exports:{}};return r[e].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=r,e=[],a.O=(o,t,r,s)=>{if(!t){var n=1/0;for(j=0;j<e.length;j++){for(var[t,r,s]=e[j],d=!0,i=0;i<t.length;i++)(!1&s||n>=s)&&Object.keys(a.O).every((e=>a.O[e](t[i])))?t.splice(i--,1):(d=!1,s<n&&(n=s));if(d){e.splice(j--,1);var l=r();void 0!==l&&(o=l)}}return o}s=s||0;for(var j=e.length;j>0&&e[j-1][2]>s;j--)e[j]=e[j-1];e[j]=[t,r,s]},a.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return a.d(o,{a:o}),o},a.d=(e,o)=>{for(var t in o)a.o(o,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((o,t)=>(a.f[t](e,o),o)),[])),a.u=e=>319===e?"js/home-ojtjadoml.js":500===e?"js/compose-ojtjadoml.js":132===e?"js/post-ojtjadoml.js":620===e?"js/profile-ojtjadoml.js":566===e?"js/dmym-ojtjadoml.js":935===e?"js/dmyh-ojtjadoml.js":97===e?"js/daci-ojtjadoml.js":340===e?"js/dffc-ojtjadoml.js":575===e?"js/dsfc-ojtjadoml.js":545===e?"js/dssc-ojtjadoml.js":417===e?"js/discover-ojtjadoml.js":863===e?"js/notifications-ojtjadoml.js":888===e?"js/dms-ojtjadoml.js":43===e?"js/dmsg-ojtjadoml.js":void 0,a.miniCssF=e=>({138:"css/spa",170:"css/app",242:"css/appdark",703:"css/admin",994:"css/landing"}[e]+".css"),a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),o={},t="pixelfed:",a.l=(e,r,s,n)=>{if(o[e])o[e].push(r);else{var d,i;if(void 0!==s)for(var l=document.getElementsByTagName("script"),j=0;j<l.length;j++){var c=l[j];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==t+s){d=c;break}}d||(i=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,a.nc&&d.setAttribute("nonce",a.nc),d.setAttribute("data-webpack",t+s),d.src=e),o[e]=[r];var u=(t,r)=>{d.onerror=d.onload=null,clearTimeout(f);var s=o[e];if(delete o[e],d.parentNode&&d.parentNode.removeChild(d),s&&s.forEach((e=>e(r))),t)return t(r)},f=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),i&&document.head.appendChild(d)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/",(()=>{var e={929:0,242:0,170:0,138:0,703:0,994:0};a.f.j=(o,t)=>{var r=a.o(e,o)?e[o]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(138|170|242|703|929|994)$/.test(o))e[o]=0;else{var s=new Promise(((t,s)=>r=e[o]=[t,s]));t.push(r[2]=s);var n=a.p+a.u(o),d=new Error;a.l(n,(t=>{if(a.o(e,o)&&(0!==(r=e[o])&&(e[o]=void 0),r)){var s=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;d.message="Loading chunk "+o+" failed.\n("+s+": "+n+")",d.name="ChunkLoadError",d.type=s,d.request=n,r[1](d)}}),"chunk-"+o,o)}},a.O.j=o=>0===e[o];var o=(o,t)=>{var r,s,[n,d,i]=t,l=0;if(n.some((o=>0!==e[o]))){for(r in d)a.o(d,r)&&(a.m[r]=d[r]);if(i)var j=i(a)}for(o&&o(t);l<n.length;l++)s=n[l],a.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return a.O(j)},t=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];t.forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t))})()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
public/js/rempos.js vendored

File diff suppressed because one or more lines are too long

2
public/js/rempro.js vendored

File diff suppressed because one or more lines are too long

2
public/js/spa.js vendored

File diff suppressed because one or more lines are too long

2
public/js/status.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,10 +3,10 @@
"/js/activity.js": "/js/activity.js?id=d14e608dd1ecac4d900cd639f2199b62",
"/js/components.js": "/js/components.js?id=35beb0748dd5518371686a5f00348fbf",
"/js/discover.js": "/js/discover.js?id=0c98508635d6adae9bf8f76c9f5c918c",
"/js/profile.js": "/js/profile.js?id=a67847419ea0a9a5438f3232d3de1ac0",
"/js/status.js": "/js/status.js?id=39b7c5bad40b75724ab78fdbd744ada9",
"/js/timeline.js": "/js/timeline.js?id=34753780652d2133f84b005cdf116e62",
"/js/compose.js": "/js/compose.js?id=07a87bcfbf033c6abeaf073b2e96a83b",
"/js/profile.js": "/js/profile.js?id=00c33e6d25a12d9c84a78502fdcf7489",
"/js/status.js": "/js/status.js?id=795f84b21b8c470d4dc452ee7dcaaf43",
"/js/timeline.js": "/js/timeline.js?id=a6166efd95705f96fd952aa979c2dff0",
"/js/compose.js": "/js/compose.js?id=61b03caa8ae7827b689847c19fc99212",
"/js/compose-classic.js": "/js/compose-classic.js?id=f11c60795e27213e446054259fdc8b50",
"/js/search.js": "/js/search.js?id=4bb81cba317cf1ad35f2c98dce78fd9d",
"/js/developers.js": "/js/developers.js?id=dd22facb8cf2746992404468a9373ac5",
@ -15,31 +15,31 @@
"/js/collections.js": "/js/collections.js?id=12533dbfbe7a0bf7ef20fc57fb34e19a",
"/js/profile-directory.js": "/js/profile-directory.js?id=04ec970031e6bf15de5ade019147d53e",
"/js/story-compose.js": "/js/story-compose.js?id=afe8f35cf52d92ac48ee68a9916d218d",
"/js/direct.js": "/js/direct.js?id=fdc882e5cc91d890d70f7a5512da506e",
"/js/direct.js": "/js/direct.js?id=29127c125979e275afa50b47d692c892",
"/js/admin.js": "/js/admin.js?id=fd88b96423314b41cc763a0714554a04",
"/js/rempro.js": "/js/rempro.js?id=8095a2e0e824b8f8ffcf86b9f7600a44",
"/js/rempos.js": "/js/rempos.js?id=1b3f3259b7a1cdcde3c3f47d16aa8312",
"/js/spa.js": "/js/spa.js?id=5af9be4488c9127041fa343c0deb442e",
"/js/rempro.js": "/js/rempro.js?id=03810f85fc35fb2238c518a076fe6b34",
"/js/rempos.js": "/js/rempos.js?id=390eecb73b0e650f058df325985db938",
"/js/spa.js": "/js/spa.js?id=52d322d61711c604f97f4b86a21924b8",
"/js/stories.js": "/js/stories.js?id=814a25875cac8987d85c801dcb453114",
"/js/manifest.js": "/js/manifest.js?id=133d3b69419e344e17c064841753cfe8",
"/js/home-mh8cayo8d.js": "/js/home-mh8cayo8d.js?id=51c9c8bed36ba206730edb3112e0c9c9",
"/js/compose-mh8cayo8d.js": "/js/compose-mh8cayo8d.js?id=c0b9e6b47fbf73854bff902445bda8fe",
"/js/post-mh8cayo8d.js": "/js/post-mh8cayo8d.js?id=7a3514ecfa1bd47ab768fe39a0a4fff8",
"/js/profile-mh8cayo8d.js": "/js/profile-mh8cayo8d.js?id=52d8adafffcb70d6cd920d1ccd676268",
"/js/dmym-mh8cayo8d.js": "/js/dmym-mh8cayo8d.js?id=89cbe7d18c7c12639a0a3e56929fea4a",
"/js/dmyh-mh8cayo8d.js": "/js/dmyh-mh8cayo8d.js?id=00441ec9dafed13da783ff6620df589c",
"/js/daci-mh8cayo8d.js": "/js/daci-mh8cayo8d.js?id=0e05b7f0f9edc43b36aed87ea9a23852",
"/js/dffc-mh8cayo8d.js": "/js/dffc-mh8cayo8d.js?id=15ff880c0442cb4b5679db5f519f2c7d",
"/js/dsfc-mh8cayo8d.js": "/js/dsfc-mh8cayo8d.js?id=12b9c6897d959003875a6d169d53dd44",
"/js/dssc-mh8cayo8d.js": "/js/dssc-mh8cayo8d.js?id=38a8d0789c40f9b6a9a5f70ab0a63b3b",
"/js/discover-mh8cayo8d.js": "/js/discover-mh8cayo8d.js?id=67963c1377522084edeed5be81f1dd15",
"/js/notifications-mh8cayo8d.js": "/js/notifications-mh8cayo8d.js?id=807361eeb82680bb0da0d89d50e244a6",
"/js/dms-mh8cayo8d.js": "/js/dms-mh8cayo8d.js?id=4b6f07bd529143d2921301efd17999b5",
"/js/dmsg-mh8cayo8d.js": "/js/dmsg-mh8cayo8d.js?id=7d2de89710c165d0ef311929222283b6",
"/css/appdark.css": "/css/appdark.css?id=65bb8633bbd34c87111591cab68cf3dc",
"/css/app.css": "/css/app.css?id=f2e24fbb268e9946443459877f623d98",
"/css/spa.css": "/css/spa.css?id=f48c038aab4ee13016a125b625d40663",
"/js/manifest.js": "/js/manifest.js?id=b0ef97b4a0e9ee752c2eb3881efff18b",
"/js/home-ojtjadoml.js": "/js/home-ojtjadoml.js?id=69272e7c0c055896aae37f9ebb548151",
"/js/compose-ojtjadoml.js": "/js/compose-ojtjadoml.js?id=9b5cb17afea0b49605047cf4973cb089",
"/js/post-ojtjadoml.js": "/js/post-ojtjadoml.js?id=0e4e8e761635eb7073fd1050ab4bc2a9",
"/js/profile-ojtjadoml.js": "/js/profile-ojtjadoml.js?id=41bc6f10686cf5240fe71c39949b9438",
"/js/dmym-ojtjadoml.js": "/js/dmym-ojtjadoml.js?id=1aae0b19ccdd50bb8fb4d3e94c56169d",
"/js/dmyh-ojtjadoml.js": "/js/dmyh-ojtjadoml.js?id=1351e6da2369aaf40d010c106edaebf8",
"/js/daci-ojtjadoml.js": "/js/daci-ojtjadoml.js?id=8b78c4aa654141ff4c77ad75df152ead",
"/js/dffc-ojtjadoml.js": "/js/dffc-ojtjadoml.js?id=04a0d18dfd838e0d2b37fffa0b16e36d",
"/js/dsfc-ojtjadoml.js": "/js/dsfc-ojtjadoml.js?id=bdd463cae7ee27e08bf0bb92d13451aa",
"/js/dssc-ojtjadoml.js": "/js/dssc-ojtjadoml.js?id=a7dce2f9166901ad967bcfdcb9ad318d",
"/js/discover-ojtjadoml.js": "/js/discover-ojtjadoml.js?id=c0789a5495c786e11df7f3df649130f9",
"/js/notifications-ojtjadoml.js": "/js/notifications-ojtjadoml.js?id=c0e1a109c5e375729b1bbd7a473ee1d5",
"/js/dms-ojtjadoml.js": "/js/dms-ojtjadoml.js?id=d0319c4eda168b305b5599802c2a2c8c",
"/js/dmsg-ojtjadoml.js": "/js/dmsg-ojtjadoml.js?id=36a079d71cb4441d891fd1bdd8e83999",
"/css/appdark.css": "/css/appdark.css?id=b8ba36bb062ae3f600ab358f9f28f365",
"/css/app.css": "/css/app.css?id=7d00fff9bedc99dc27955a7ad3e88df7",
"/css/spa.css": "/css/spa.css?id=4c78f163c6ad4e0f25ced75c7dd624b6",
"/css/admin.css": "/css/admin.css?id=c370da65565066b3fbcf2808bd0a4468",
"/css/landing.css": "/css/landing.css?id=56100236f07142e041bb3716e64466a3",
"/css/landing.css": "/css/landing.css?id=1481d8b409a3e114d32a857db0bef4fd",
"/js/vendor.js": "/js/vendor.js?id=001124b36242eb5ae784f6532121219d"
}

View File

@ -432,15 +432,28 @@
</div>
</div>
</div>
<div class="border-bottom d-flex justify-content-between px-4 mb-0 py-2 ">
<div>
<div class="text-dark ">Contains NSFW Media</div>
</div>
<div>
<div class="custom-control custom-switch" style="z-index: 9999;">
<input type="checkbox" class="custom-control-input" id="asnsfw" v-model="nsfw">
<label class="custom-control-label" for="asnsfw"></label>
<div class="border-bottom px-4 mb-0 py-2">
<div class="d-flex justify-content-between">
<div>
<div class="text-dark ">Contains NSFW Media</div>
</div>
<div>
<div class="custom-control custom-switch" style="z-index: 9999;">
<input type="checkbox" class="custom-control-input" id="asnsfw" v-model="nsfw">
<label class="custom-control-label" for="asnsfw"></label>
</div>
</div>
</div>
<div v-if="nsfw">
<textarea
class="form-control mt-3"
placeholder="Add an optional content warning or spoiler text"
maxlength="140"
v-model="spoilerText">
</textarea>
<p class="help-text small text-right text-muted mb-0">{{ spoilerTextLength }}/140</p>
</div>
</div>
<div class="border-bottom">
@ -1009,6 +1022,13 @@ export default {
collectionsLoaded: false,
collectionsPage: 1,
collectionsCanLoadMore: false,
spoilerText: undefined,
}
},
computed: {
spoilerTextLength: function() {
return this.spoilerText ? this.spoilerText.length : 0;
}
},
@ -1248,7 +1268,8 @@ export default {
tagged: this.taggedUsernames,
optimize_media: this.optimizeMedia,
license: this.licenseId,
video: this.video
video: this.video,
spoiler_text: this.spoilerText,
};
if(this.collectionsSelected.length) {
@ -1503,7 +1524,7 @@ export default {
},
locationSearch(input) {
if (input.length < 1) { return []; };
if (input.length < 1) { return []; }
let results = [];
return axios.get('/api/compose/v0/search/location', {
params: {
@ -1650,7 +1671,7 @@ export default {
},
tagSearch(input) {
if (input.length < 1) { return []; };
if (input.length < 1) { return []; }
let self = this;
let results = [];
return axios.get('/api/compose/v0/search/tag', {

View File

@ -305,7 +305,7 @@ export default {
},
composeSearch(input) {
if (input.length < 1) { return []; };
if (input.length < 1) { return []; }
let self = this;
let results = [];
return axios.post('/api/direct/lookup', {

View File

@ -7,7 +7,7 @@
<p class="h4 font-weight-bold text-center">
Sensitive Content
</p>
<p class="text-center py-2">
<p class="text-center py-2 content-label-text">
{{ status.spoiler_text ? status.spoiler_text : 'This album may contain sensitive content.'}}
</p>
<p class="mb-0">

View File

@ -7,7 +7,7 @@
<p class="h4 font-weight-bold text-center">
Sensitive Content
</p>
<p class="text-center py-2">
<p class="text-center py-2 content-label-text">
{{ status.spoiler_text ? status.spoiler_text : 'This post may contain sensitive content.'}}
</p>
<p class="mb-0">

View File

@ -7,7 +7,7 @@
<p class="h4 font-weight-bold text-center">
Sensitive Content
</p>
<p class="text-center py-2">
<p class="text-center py-2 content-label-text">
{{ status.spoiler_text ? status.spoiler_text : 'This post may contain sensitive content.'}}
</p>
<p class="mb-0">

View File

@ -880,7 +880,7 @@ var UsersChart = (function() {
$chart.data('chart', usersChart);
};
}
// Events

View File

@ -652,3 +652,18 @@ details summary::-webkit-details-marker {
font-weight: bold;
}
}
.content-label {
&-wrapper {
div:not(.content-label) {
height: 100%;
}
}
&-text {
width: 80%;
@media (min-width: 768px) {
width: 50%;
}
}
}

View File

@ -291,3 +291,40 @@ span.twitter-typeahead .tt-suggestion:focus {
color: var(--body-color);
}
}
.ui-menu {
.btn-group {
.btn:first-child {
border-top-left-radius: 50rem;
border-bottom-left-radius: 50rem;
}
.btn:last-child {
border-top-right-radius: 50rem;
border-bottom-right-radius: 50rem;
}
.btn-primary {
font-weight: bold;
}
}
.b-custom-control-lg {
padding-bottom: 8px;
}
}
.content-label {
&-wrapper {
div:not(.content-label) {
height: 100%;
}
}
&-text {
width: 80%;
@media (min-width: 768px) {
width: 50%;
}
}
}

View File

@ -21,8 +21,8 @@ return [
'blockingAccounts' => 'Blokování účtů',
'safetyTips' => 'Tipy pro bezpečnost',
'reportSomething' => 'Nahlašování',
'dataPolicy' => 'Politika dat'
'dataPolicy' => 'Politika dat',
'taggingPeople' => 'Označování lidí'
];
]

View File

@ -3,7 +3,6 @@
@section('section')
<div class="title mb-4">
<h3 class="font-weight-bold">Diagnostics</h3>
<p class="lead mb-0">Instance diagnostics</p>
</div>
<div class="pb-3 border-bottom">
@ -11,30 +10,24 @@
Information
<span class="small text-primary ml-3 copy-information cursor-pointer text-uppercase font-weight-bold">Copy</span>
</p>
<ul class="information">
<div class="information">
<ul>
<p class="font-weight-bold text-muted">
Troubleshooting
</p>
<li>
<strong>APP_URL:</strong>
<span>{{config_cache('app.url')}}</span>
<strong>Bootstrap:</strong>
<span>{{is_writable(base_path('bootstrap/')) ? 'Writable ✅' : 'Not writable ❌'}}</span>
</li>
<li>
<strong>APP_DOMAIN:</strong>
<span>{{config_cache('pixelfed.domain.app')}}</span>
</li>
@if(function_exists('shell_exec'))
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}-{{ @shell_exec('git log --pretty="%h" -n1 HEAD') ?? 'unknown git commit' }}</span>
</li>
@else
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}</span>
</li>
@endif
<li>
<strong>PHP:</strong>
<span>{{phpversion()}}</span>
<strong>Storage:</strong>
<span>{{is_writable(base_path('storage/')) ? 'Writable ✅' : 'Not writable ❌'}}</span>
</li>
@foreach([
'bcmath',
'gd',
@ -47,109 +40,21 @@
'openssl',
'redis'
] as $ext)
@if(!extension_loaded($ext))
<li>
<strong>PHP-{{$ext}}:</strong>
<span>Not installed/loaded</span>
</li>
@endif
@if(!extension_loaded($ext))
<li>
<strong>PHP Module {{$ext}}:</strong>
<span>Not installed/Not loaded </span>
</li>
@endif
@endforeach
<li>
<strong>Database:</strong>
@php($v = explode(' ', DB::select('select version() as version')[0]->version))
<span>{{config('database.default')}} ({{count($v) == 1 ? $v[0] : $v[1]}})</span>
</li>
<li>
<strong>Bootstrap:</strong>
<span>{{is_writable(base_path('bootstrap/')) ? 'Writable' : 'Not writable'}}</span>
</li>
<li>
<strong>Storage:</strong>
<span>{{is_writable(base_path('storage/')) ? 'Writable' : 'Not writable'}}</span>
</li>
<li>
<strong>Image Driver:</strong>
<span>{{ config('image.driver') }}</span>
<strong><span class="badge badge-primary">DATABASE</span> Ping:</strong>
<span>{{ \DB::connection()->getPDO() ? 'Pong! Connected to DB "' . \DB::connection()->getDatabaseName() . '" ✅' : 'DB Not Responding ❌' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">REDIS</span> Ping:</strong>
<span>{{ \Illuminate\Support\Facades\Redis::command('ping') ? '✅' : '❌' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP</span> memory_limit:</strong>
<span>{{ ini_get('memory_limit') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP</span> post_max_size:</strong>
<span>{{ ini_get('post_max_size') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP</span> upload_max_filesize:</strong>
<span>{{ ini_get('upload_max_filesize') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Cache Driver:</strong>
<span>{{ config_cache('cache.default') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Mail Driver:</strong>
<span>{{ config_cache('mail.driver') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Mail Host:</strong>
<span>{{ config_cache('mail.host') ? substr(config_cache('mail.host'), 0, 5) . str_repeat('*', strlen(config_cache('mail.host')) - 5) : 'undefined' }}</span>
</li>
@if(config_cache('mail.driver') == 'mailgun')
<li>
<strong><span class="badge badge-primary">APP</span> Mailgun Domain:</strong>
<span>{{ config_cache('services.mailgun.domain') ?? 'undefined' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Mailgun Secret:</strong>
<span>{{ config_cache('services.mailgun.secret') ? str_repeat('*', strlen(config_cache('services.mailgun.secret'))) : 'undefined' }}</span>
</li>
@endif
@if(config_cache('mail.driver') == 'ses')
<li>
<strong><span class="badge badge-primary">APP</span> SES Key:</strong>
<span>{{ config_cache('services.ses.key') ? str_repeat('*', strlen(config_cache('services.ses.key'))) : 'undefined' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> SES Secret:</strong>
<span>{{ config_cache('services.ses.secret') ? str_repeat('*', strlen(config_cache('services.ses.secret'))) : 'undefined' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> SES Region:</strong>
<span>{{ config_cache('services.ses.region') ?? 'undefined' }}</span>
</li>
@endif
<li>
<strong><span class="badge badge-primary">APP</span> Queue Driver:</strong>
<span>{{ config_cache('queue.default') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Session Driver:</strong>
<span>{{ config_cache('session.driver') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Session Lifetime:</strong>
<span>{{ config_cache('session.lifetime') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Session Domain:</strong>
<span>{{ config_cache('session.domain') }}</span>
</li>
<li>
<div class="tt">
<strong><span class="badge badge-primary">CONFIG</span> pixelfed: </strong>
<span class="text-truncate">{!! json_encode(config_cache('pixelfed'), JSON_UNESCAPED_SLASHES) !!}</span>
</div>
</li>
<li>
<div class="tt">
<strong><span class="badge badge-primary">CONFIG</span> federation: </strong>
<span class="text-truncate">{!! json_encode(config_cache('federation'), JSON_UNESCAPED_SLASHES) !!}</span>
</div>
<span>{{ \Illuminate\Support\Facades\Redis::command('ping') ? 'Pong! Connected to Redis ✅' : 'Redis Not Responding ❌' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">ACTIVITYPUB</span> instance actor created: </strong>
@ -167,7 +72,6 @@
<strong><span class="badge badge-primary">OAUTH</span> token_expiration</strong>
<span>{{ config_cache('instance.oauth.token_expiration') }} days</span>
</li>
<li>
<strong><span class="badge badge-primary">OAUTH</span> public key exists: </strong>
<span>{{ file_exists(storage_path('oauth-public.key')) ? '✅' : '❌' }}</span>
@ -175,21 +79,739 @@
<li>
<strong><span class="badge badge-primary">OAUTH</span> private key exists: </strong>
<span>{{ file_exists(storage_path('oauth-private.key')) ? '✅' : '❌' }}</span>
</li>
<hr>
<p class="font-weight-bold text-muted">
Important Information
</p>
@if(function_exists('shell_exec'))
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}-{{ @shell_exec('git log --pretty="%h" -n1 HEAD') ?? 'unknown git commit' }}</span>
</li>
@else
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}</span>
</li>
@endif
<li>
<strong>Database:</strong>
@php($v = explode(' ', DB::select('select version() as version')[0]->version))
<span>{{config('database.default')}} ({{count($v) == 1 ? $v[0] : $v[1]}})</span>
</li>
<li>
<strong><span class="badge badge-primary">Storage</span> Cloud Storage: </strong>
<span>{{ config_cache('pixelfed.cloud_storage') ? '✅' : '❌' }}</span>
<strong>APP_URL:</strong>
<span>{{config_cache('app.url')}}</span>
</li>
<li>
<strong><span class="badge badge-primary">Storage</span> Filesystems default (local/s3/spaces): </strong>
<span>{{ config_cache('filesystems.default')}}</span>
<strong>APP_DOMAIN:</strong>
<span>{{config_cache('pixelfed.domain.app')}}</span>
</li>
<li>
<strong><span class="badge badge-primary">Network</span> TrustedProxy: </strong>
<span>{{ config('trustedproxy.proxies') }}</span>
<strong>ADMIN_DOMAIN:</strong>
<span>{{config_cache('pixelfed.domain.admin')}}</span>
</li>
<li>
<strong>SESSION_DOMAIN:</strong>
<span>{{config_cache('session.domain')}}</span>
</li>
</ul>
<hr>
<p class="font-weight-bold text-muted">
PHP Variables
</p>
<li>
<strong>PHP:</strong>
<span>{{phpversion()}}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> memory_limit:</strong>
<span>{{ ini_get('memory_limit') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> post_max_size:</strong>
<span>{{ ini_get('post_max_size') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> upload_max_filesize:</strong>
<span>{{ ini_get('upload_max_filesize') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> max_file_uploads:</strong>
<span>{{ ini_get('max_file_uploads') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> max_execution_time:</strong>
<span>{{ ini_get('max_execution_time') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> max_input_time:</strong>
<span>{{ ini_get('max_input_time') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> file_uploads:</strong>
<span>{{ ini_get('file_uploads') ? '✅' : '❌' }}</span>
</li>
<hr>
<p class="font-weight-bold text-muted">
Pixelfed Variables (No Secrets)
</p>
<table style="width:100%" class="table">
<thead class="bg-light">
<tr>
<th width="5%" scope="col" class="border-0 text-dark">CONFIG</th>
<th width="20%"scope="col" class="border-0 text-dark">Variable Name</th>
<th width="40%"scope="col" class="border-0 text-dark">Details</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_NAME</strong></td>
<td><span>"{{config_cache('app.name')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_ENV</strong></td>
<td><span>"{{config_cache('app.env')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_DEBUG</strong></td>
<td><span>{{config_cache('app.debug') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_URL</strong></td>
<td><span>"{{config_cache('app.url')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_LOCALE</strong></td>
<td><span>"{{config_cache('app.locale')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_FALLBACK_LOCALE</strong></td>
<td><span>"{{config_cache('app.fallback_locale')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">BROADCASTING</span></td>
<td><strong>BROADCAST_DRIVER</strong></td>
<td><span>"{{config_cache('broadcasting.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">CACHE</span></td>
<td><strong>CACHE_DRIVER</strong></td>
<td><span>"{{config_cache('cache.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">CAPTCHA</span></td>
<td><strong>CAPTCHA_ENABLED</strong></td>
<td><span>{{ config_cache('captcha.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">DATABASE</span></td>
<td><strong>DB_CONNECTION</strong></td>
<td><span>"{{config_cache('database.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">DATABASE</span></td>
<td><strong>REDIS_CLIENT</strong></td>
<td><span>"{{config_cache('database.redis.client')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_LC</strong></td>
<td><span>{{config_cache('exp.lc') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_TOP</strong></td>
<td><span>{{config_cache('exp.top') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_POLLS</strong></td>
<td><span>{{config_cache('exp.polls') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_CPT</strong></td>
<td><span>{{config_cache('exp.cached_public_timeline') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_GPS</strong></td>
<td><span>{{config_cache('exp.gps') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_EMC</strong></td>
<td><span>{{config_cache('exp.emc') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ACTIVITY_PUB</strong></td>
<td><span>{{config_cache('federation.activitypub.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_OUTBOX</strong></td>
<td><span>{{config_cache('federation.activitypub.outbox') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_INBOX</strong></td>
<td><span>{{config_cache('federation.activitypub.inbox') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_SHAREDINBOX</strong></td>
<td><span>{{config_cache('federation.activitypub.sharedInbox') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_REMOTE_FOLLOW</strong></td>
<td><span>{{config_cache('federation.activitypub.remoteFollow') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ACTIVITYPUB_DELIVERY_TIMEOUT</strong></td>
<td><span>"{{config_cache('federation.activitypub.delivery.timeout')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ACTIVITYPUB_DELIVERY_CONCURRENCY</strong></td>
<td><span>"{{config_cache('federation.activitypub.delivery.concurrency')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_LOGGER_ENABLED</strong></td>
<td><span>{{config_cache('federation.activitypub.delivery.logger.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ATOM_FEEDS</strong></td>
<td><span>{{config_cache('federation.atom.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>REMOTE_AVATARS</strong></td>
<td><span>{{config_cache('federation.avatars.store_local') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>NODEINFO</strong></td>
<td><span>{{config_cache('federation.nodeinfo.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>WEBFINGER</strong></td>
<td><span>{{config_cache('federation.webfinger.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>PF_NETWORK_TIMELINE</strong></td>
<td><span>{{config_cache('federation.network_timeline') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>CUSTOM_EMOJI</strong></td>
<td><span>{{config_cache('federation.custom_emoji.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>CUSTOM_EMOJI_MAX_SIZE</strong></td>
<td><span>"{{config_cache('federation.custom_emoji.max_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FILESYSTEMS</span></td>
<td><strong>FILESYSTEM_DRIVER</strong></td>
<td><span>"{{config_cache('filesystems.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FILESYSTEMS</span></td>
<td><strong>FILESYSTEM_CLOUD</strong></td>
<td><span>"{{config_cache('filesystems.cloud')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HASHING</span></td>
<td><strong>BCRYPT_COST</strong></td>
<td><span>"{{config_cache('hashing.bcrypt.rounds')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_PREFIX</strong></td>
<td><span>"{{config_cache('horizon.prefix')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_MEMORY_LIMIT</strong></td>
<td><span>"{{config_cache('horizon.memory_limit')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_BALANCE_STRATEGY</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.balance')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_MIN_PROCESSES</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.minProcesses')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_MAX_PROCESSES</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.maxProcesses')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_MEMORY</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.memory')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_TRIES</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.tries')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_NICE</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.nice')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_TIMEOUT</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.timeout')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_DARKMODE</strong></td>
<td><span>{{config_cache('horizon.darkmode') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">IMAGE</span></td>
<td><strong>IMAGE_DRIVER </strong></td>
<td><span>"{{config_cache('image.driver')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_DESCRIPTION</strong></td>
<td><span>"{{config_cache('instance.description')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_CONTACT_FORM</strong></td>
<td><span>{{config_cache('instance.contact.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_CONTACT_MAX_PER_DAY</strong></td>
<td><span>"{{config_cache('instance.contact.max_per_day')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_DISCOVER_PUBLIC</strong></td>
<td><span>{{config_cache('instance.discover.public') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>EXP_LOOPS</strong></td>
<td><span>{{config_cache('instance.discover.loops.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_PUBLIC_HASHTAGS</strong></td>
<td><span>{{config_cache('instance.discover.tags.is_public') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_CONTACT_EMAIL</strong></td>
<td><span>"{{config_cache('instance.email')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_PUBLIC_LOCAL_TIMELINE</strong></td>
<td><span>{{config_cache('instance.timeline.local.is_public') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_404_HEADER</strong></td>
<td><span>"{{config_cache('instance.page.404.header')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_404_BODY</strong></td>
<td><span>"{{config_cache('instance.page.404.body')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_503_HEADER</strong></td>
<td><span>"{{config_cache('instance.page.503.header')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_503_BODY</strong></td>
<td><span>"{{config_cache('instance.page.503.body')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>BANNED_USERNAMES</strong></td>
<td><span>"{{config_cache('instance.username.banned')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>USERNAME_REMOTE_FORMAT</strong></td>
<td><span>"{{config_cache('instance.username.remote.format')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>USERNAME_REMOTE_CUSTOM_TEXT</strong></td>
<td><span>"{{config_cache('instance.username.remote.custom')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>STORIES_ENABLED</strong></td>
<td><span>{{config_cache('instance.stories.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>RESTRICTED_INSTANCE</strong></td>
<td><span>{{config_cache('instance.restricted.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_TOKEN_DAYS</strong></td>
<td><span>"{{config_cache('instance.oauth.token_expiration')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_REFRESH_DAYS</strong></td>
<td><span>"{{config_cache('instance.oauth.refresh_expiration')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_PAT_ENABLED</strong></td>
<td><span>{{config_cache('instance.oauth.pat.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_PAT_ID</strong></td>
<td><span>"{{config_cache('instance.oauth.pat.id')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>ENABLE_COVID_LABEL</strong></td>
<td><span>{{config_cache('instance.label.covid.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>COVID_LABEL_URL</strong></td>
<td><span>"{{config_cache('instance.label.covid.url')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>COVID_LABEL_ORG</strong></td>
<td><span>"{{config_cache('instance.label.covid.org')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>ENABLE_CONFIG_CACHE</strong></td>
<td><span>{{config_cache('instance.enable_cc') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LDAP</span></td>
<td><strong>LDAP_CONNECTION</strong></td>
<td><span>"{{config_cache('ldap.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LDAP</span></td>
<td><strong>LDAP_LOGGING</strong></td>
<td><span>{{config_cache('ldap.logging') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LDAP</span></td>
<td><strong>LDAP_CACHE</strong></td>
<td><span>{{config_cache('ldap.cache.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LOGGING</span></td>
<td><strong>LOG_CHANNEL</strong></td>
<td><span>"{{config_cache('logging.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LOGGING</span></td>
<td><strong>LOG_LEVEL (stack)</strong></td>
<td><span>"{{config_cache('logging.channels.single.level')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_DRIVER</strong></td>
<td><span>"{{config_cache('mail.driver')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_HOST</strong></td>
<td><span>"{{config_cache('mail.host')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_PORT</strong></td>
<td><span>"{{config_cache('mail.port')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_FROM_ADDRESS</strong></td>
<td><span>"{{config_cache('mail.from.address')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_FROM_NAME</strong></td>
<td><span>"{{config_cache('mail.from.name')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_ENCRYPTION</strong></td>
<td><span>"{{config_cache('mail.encryption')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MEDIA</span></td>
<td><strong>MEDIA_EXIF_DATABASE</strong></td>
<td><span>{{config_cache('media.exif.batabase') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ADMIN_DOMAIN</strong></td>
<td><span>"{{config_cache('pixelfed.domain.admin')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>APP_DOMAIN</strong></td>
<td><span>"{{config_cache('pixelfed.domain.app')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MEMORY_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.memory_limit')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>OPEN_REGISTRATION</strong></td>
<td><span>{{config_cache('pixelfed.open_registration') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_ACCOUNT_SIZE (KB)</strong></td>
<td><span>"{{config_cache('pixelfed.max_account_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_PHOTO_SIZE (KB)</strong></td>
<td><span>"{{config_cache('pixelfed.max_photo_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_AVATAR_SIZE (KB)</strong></td>
<td><span>"{{config_cache('pixelfed.max_avatar_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_CAPTION_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_caption_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_BIO_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_bio_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_NAME_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_name_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MIN_PASSWORD_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.min_password_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_ALBUM_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_album_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ENFORCE_EMAIL_VERIFICATION</strong></td>
<td><span>{{config_cache('pixelfed.enforce_email_verification') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMAGE_QUALITY (1-100)</strong></td>
<td><span>"{{config_cache('pixelfed.image_quality')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ACCOUNT_DELETION</strong></td>
<td><span>{{config_cache('pixelfed.account_deletion') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ACCOUNT_DELETE_AFTER</strong></td>
<td><span>{{config_cache('pixelfed.account_delete_after') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_ENABLE_CLOUD</strong></td>
<td><span>{{config_cache('pixelfed.cloud_storage') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MAX_USERS</strong></td>
<td><span>{{config_cache('pixelfed.max_users') ? config('pixelfed.max_users') : '❌ false'}}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_OPTIMIZE_IMAGES</strong></td>
<td><span>{{config_cache('pixelfed.optimize_image') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_OPTIMIZE_VIDEOS</strong></td>
<td><span>{{config_cache('pixelfed.optimize_video') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES</strong></td>
<td><span>{{config_cache('pixelfed.user_invites.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES_TOTAL_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.user_invites.limit.total')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES_DAILY_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.user_invites.limit.daily')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES_MONTHLY_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.user_invites.limit.monthly')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MAX_COLLECTION_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_collection_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MEDIA_TYPES</strong></td>
<td><span>"{{config_cache('pixelfed.media_types')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>LIMIT_ACCOUNT_SIZE</strong></td>
<td><span>{{config_cache('pixelfed.enforce_account_limit') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMPORT_INSTAGRAM</strong></td>
<td><span>{{config_cache('pixelfed.import.instagram.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMPORT_INSTAGRAM_POST_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.import.instagram.limits.posts')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMPORT_INSTAGRAM_SIZE_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.import.instagram.limits.size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>OAUTH_ENABLED</strong></td>
<td><span>{{config_cache('pixelfed.oauth_enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_BOUNCER_ENABLED</strong></td>
<td><span>{{config_cache('pixelfed.bouncer.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MEDIA_FAST_PROCESS</strong></td>
<td><span>{{config_cache('pixelfed.media_fast_process') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MEDIA_MAX_ALTTEXT_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_altext_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PURIFY</span></td>
<td><strong>RESTRICT_HTML_TYPES</strong></td>
<td><span>BROKEN</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">QUEUE</span></td>
<td><strong>QUEUE_DRIVER</strong></td>
<td><span>"{{config_cache('queue.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">SESSION</span></td>
<td><strong>SESSION_DRIVER</strong></td>
<td><span>"{{config_cache('session.driver')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">SESSION</span></td>
<td><strong>SESSION_LIFETIME</strong></td>
<td><span>"{{config_cache('session.lifetime')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">SESSION</span></td>
<td><strong>SESSION_DOMAIN</strong></td>
<td><span>"{{config_cache('session.domain')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">TRUSTEDPROXY</span></td>
<td><strong>TRUST_PROXIES</strong></td>
<td><span>"{{config_cache('trustedproxy.proxies')}}"</span></td>
</tr>
</tbody>
</table>
</div>
</ul>
</div>
<div class="pb-3 border-bottom">
<div class="form-group mb-0">

View File

@ -261,7 +261,7 @@
}
if($(this).hasClass('row-check-all')) {
return;
};
}
if(el.checked == true) {
$(this).parents().eq(2).addClass('user-row-active');
$('.bulk-actions').removeClass('d-none');

View File

@ -68,7 +68,7 @@
swal.stopLoading();
swal.close();
return;
};
}
let msg = 'The URL you have entered is not valid, please try again.'
try {
let validator = new URL(val);
@ -77,7 +77,7 @@
swal.close();
swal('Invalid URL', msg, 'error');
return;
};
}
axios.post(window.location.href, {
domain: validator.href
}).then(res => {

View File

@ -82,7 +82,7 @@ $(document).ready(function() {
})
}
});
};
}
});
});
});