kopia lustrzana https://github.com/pixelfed/pixelfed
commit
57df06a0b6
43
CHANGELOG.md
43
CHANGELOG.md
|
@ -19,6 +19,49 @@
|
|||
- Update SiteController, add curatedOnboarding method that gracefully falls back to open registration when applicable ([95199843](https://github.com/pixelfed/pixelfed/commit/95199843))
|
||||
- Update AP transformers, add DeleteActor activity ([bcce1df6](https://github.com/pixelfed/pixelfed/commit/bcce1df6))
|
||||
- Update commands, add user account delete cli command to federate account deletion ([4aa0e25f](https://github.com/pixelfed/pixelfed/commit/4aa0e25f))
|
||||
- Update web-api popular accounts route to its own method to remove the breaking oauth scope bug ([a4bc5ce3](https://github.com/pixelfed/pixelfed/commit/a4bc5ce3))
|
||||
- Update config cache ([5e4d4eff](https://github.com/pixelfed/pixelfed/commit/5e4d4eff))
|
||||
- Update Config, use config_cache ([7785a2da](https://github.com/pixelfed/pixelfed/commit/7785a2da))
|
||||
- Update ApiV1Dot1Controller, use config_cache for in-app registration ([b0cb4456](https://github.com/pixelfed/pixelfed/commit/b0cb4456))
|
||||
- Update captcha, use config_cache helper ([8a89e3c9](https://github.com/pixelfed/pixelfed/commit/8a89e3c9))
|
||||
- Update custom emoji, add config_cache support ([481314cd](https://github.com/pixelfed/pixelfed/commit/481314cd))
|
||||
- Update ProfileController, fix permalink redirect bug ([75081e60](https://github.com/pixelfed/pixelfed/commit/75081e60))
|
||||
- Update admin css, use font-display:swap for nucleo icons ([8a0c456e](https://github.com/pixelfed/pixelfed/commit/8a0c456e))
|
||||
- Update PixelfedDirectoryController, fix boolean cast bug ([f08aab22](https://github.com/pixelfed/pixelfed/commit/f08aab22))
|
||||
- Update PixelfedDirectoryController, use cached stats ([f2f2a809](https://github.com/pixelfed/pixelfed/commit/f2f2a809))
|
||||
- Update AdminDirectoryController, fix type casting ([ad506e90](https://github.com/pixelfed/pixelfed/commit/ad506e90))
|
||||
- Update image pipeline, use config_cache ([a72188a7](https://github.com/pixelfed/pixelfed/commit/a72188a7))
|
||||
- Update cloud storage, use config_cache ([665581d8](https://github.com/pixelfed/pixelfed/commit/665581d8))
|
||||
- Update pixelfed.max_album_length, use config_cache ([fecbe189](https://github.com/pixelfed/pixelfed/commit/fecbe189))
|
||||
- Update media_types, use config_cache ([d670de17](https://github.com/pixelfed/pixelfed/commit/d670de17))
|
||||
- Update landing settings, use config_cache ([40478f25](https://github.com/pixelfed/pixelfed/commit/40478f25))
|
||||
- Update activitypub setting, use config_cache ([5071aaf4](https://github.com/pixelfed/pixelfed/commit/5071aaf4))
|
||||
- Update oauth setting, use config_cache ([ce228f7f](https://github.com/pixelfed/pixelfed/commit/ce228f7f))
|
||||
- Update stories config, use config_cache ([d1adb109](https://github.com/pixelfed/pixelfed/commit/d1adb109))
|
||||
- Update ig import, use config_cache ([da0e0ffa](https://github.com/pixelfed/pixelfed/commit/da0e0ffa))
|
||||
- Update autospam config, use config_cache ([a76cb5f4](https://github.com/pixelfed/pixelfed/commit/a76cb5f4))
|
||||
- Update app.name config, use config_cache ([911446c0](https://github.com/pixelfed/pixelfed/commit/911446c0))
|
||||
- Update UserObserver, fix type casting ([949e9979](https://github.com/pixelfed/pixelfed/commit/949e9979))
|
||||
- Update user_filters, use config_cache ([6ce513f8](https://github.com/pixelfed/pixelfed/commit/6ce513f8))
|
||||
- Update filesystems config, add to config_cache ([087b2791](https://github.com/pixelfed/pixelfed/commit/087b2791))
|
||||
- Update web-admin routes, add setting api routes ([828a456f](https://github.com/pixelfed/pixelfed/commit/828a456f))
|
||||
- Update hashtag component ([cee979ed](https://github.com/pixelfed/pixelfed/commit/cee979ed))
|
||||
- Update AdminReadMore component, add .prevent to click action ([704e7b12](https://github.com/pixelfed/pixelfed/commit/704e7b12))
|
||||
- Update admin dashboard, add admin settings partials ([eb487123](https://github.com/pixelfed/pixelfed/commit/eb487123))
|
||||
- Update admin settings, refactor to vue component ([674e560f](https://github.com/pixelfed/pixelfed/commit/674e560f))
|
||||
- Update ConfigCacheService, encrypt keys at rest ([3628b462](https://github.com/pixelfed/pixelfed/commit/3628b462))
|
||||
- Update RemoteFollowImportRecent, use MediaPathService ([5162c070](https://github.com/pixelfed/pixelfed/commit/5162c070))
|
||||
- Update AdminSettingsController, add user filter max limit settings ([ac1f0748](https://github.com/pixelfed/pixelfed/commit/ac1f0748))
|
||||
- Update AdminSettingsController, add AdminSettingsService ([dcc5f416](https://github.com/pixelfed/pixelfed/commit/dcc5f416))
|
||||
- Update AdminSettings component, fix user settings ([aba1e13d](https://github.com/pixelfed/pixelfed/commit/aba1e13d))
|
||||
- Update AdminInstances component ([ec2fdd61](https://github.com/pixelfed/pixelfed/commit/ec2fdd61))
|
||||
- Update AdminSettings, add max_account_size support ([2dcbc1d5](https://github.com/pixelfed/pixelfed/commit/2dcbc1d5))
|
||||
- Update AdminSettings, use better validation for user integer settings ([d946afcc](https://github.com/pixelfed/pixelfed/commit/d946afcc))
|
||||
- Update spa sass, fix timestamp dark mode bug ([4147f7c5](https://github.com/pixelfed/pixelfed/commit/4147f7c5))
|
||||
- Update relationships view, fix unfollow hashtag bug. Fixes #5008 ([8c693640](https://github.com/pixelfed/pixelfed/commit/8c693640))
|
||||
- Update PrivacySettings controller, refresh RelationshipService when unmute/unblocking ([b7322b68](https://github.com/pixelfed/pixelfed/commit/b7322b68))
|
||||
- Update ApiV1Controller, improve refresh relations logic when (un)muting or (un)blocking ([b8e96a5f](https://github.com/pixelfed/pixelfed/commit/b8e96a5f))
|
||||
- Update context menu, add mute/block/unfollow actions and update relationship store accordingly ([81d1e0fd](https://github.com/pixelfed/pixelfed/commit/81d1e0fd))
|
||||
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
||||
|
||||
## [v0.11.13 (2024-03-05)](https://github.com/pixelfed/pixelfed/compare/v0.11.12...v0.11.13)
|
||||
|
|
|
@ -1200,8 +1200,8 @@ class ApiV1Controller extends Controller
|
|||
if ($filter) {
|
||||
$filter->delete();
|
||||
UserFilterService::unblock($pid, $profile->id);
|
||||
RelationshipService::refresh($pid, $id);
|
||||
}
|
||||
RelationshipService::refresh($pid, $id);
|
||||
|
||||
$resource = new Fractal\Resource\Item($profile, new RelationshipTransformer());
|
||||
$res = $this->fractal->createData($resource)->toArray();
|
||||
|
@ -2207,9 +2207,10 @@ class ApiV1Controller extends Controller
|
|||
if ($filter) {
|
||||
$filter->delete();
|
||||
UserFilterService::unmute($pid, $profile->id);
|
||||
RelationshipService::refresh($pid, $id);
|
||||
}
|
||||
|
||||
RelationshipService::refresh($pid, $id);
|
||||
|
||||
$resource = new Fractal\Resource\Item($profile, new RelationshipTransformer());
|
||||
$res = $this->fractal->createData($resource)->toArray();
|
||||
|
||||
|
|
|
@ -2,23 +2,17 @@
|
|||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\AccountLog;
|
||||
use App\EmailVerification;
|
||||
use App\Instance;
|
||||
use App\Follower;
|
||||
use App\Media;
|
||||
use App\Profile;
|
||||
use App\User;
|
||||
use App\Services\RelationshipService;
|
||||
use App\UserFilter;
|
||||
use App\Util\Lexer\PrettyNumber;
|
||||
use App\Util\ActivityPub\Helpers;
|
||||
use Auth, Cache, DB;
|
||||
use Auth;
|
||||
use Cache;
|
||||
use DB;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\UserDomainBlock;
|
||||
|
||||
trait PrivacySettings
|
||||
{
|
||||
|
||||
public function privacy()
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
@ -97,6 +91,7 @@ trait PrivacySettings
|
|||
Cache::forget('pf:acct-trans:hideFollowers:'.$pid);
|
||||
Cache::forget('pfc:cached-user:wt:'.strtolower($profile->username));
|
||||
Cache::forget('pfc:cached-user:wot:'.strtolower($profile->username));
|
||||
|
||||
return redirect(route('settings.privacy'))->with('status', 'Settings successfully updated!');
|
||||
}
|
||||
|
||||
|
@ -105,13 +100,14 @@ trait PrivacySettings
|
|||
$pid = Auth::user()->profile->id;
|
||||
$ids = (new UserFilter())->mutedUserIds($pid);
|
||||
$users = Profile::whereIn('id', $ids)->simplePaginate(15);
|
||||
|
||||
return view('settings.privacy.muted', compact('users'));
|
||||
}
|
||||
|
||||
public function mutedUsersUpdate(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'profile_id' => 'required|integer|min:1'
|
||||
'profile_id' => 'required|integer|min:1',
|
||||
]);
|
||||
$fid = $request->input('profile_id');
|
||||
$pid = Auth::user()->profile->id;
|
||||
|
@ -123,6 +119,8 @@ trait PrivacySettings
|
|||
->firstOrFail();
|
||||
$filter->delete();
|
||||
});
|
||||
RelationshipService::refresh($pid, $fid);
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
|
@ -131,14 +129,14 @@ trait PrivacySettings
|
|||
$pid = Auth::user()->profile->id;
|
||||
$ids = (new UserFilter())->blockedUserIds($pid);
|
||||
$users = Profile::whereIn('id', $ids)->simplePaginate(15);
|
||||
|
||||
return view('settings.privacy.blocked', compact('users'));
|
||||
}
|
||||
|
||||
|
||||
public function blockedUsersUpdate(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'profile_id' => 'required|integer|min:1'
|
||||
'profile_id' => 'required|integer|min:1',
|
||||
]);
|
||||
$fid = $request->input('profile_id');
|
||||
$pid = Auth::user()->profile->id;
|
||||
|
@ -150,6 +148,8 @@ trait PrivacySettings
|
|||
->firstOrFail();
|
||||
$filter->delete();
|
||||
});
|
||||
RelationshipService::refresh($pid, $fid);
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
|
@ -211,7 +211,7 @@ trait PrivacySettings
|
|||
break;
|
||||
|
||||
default:
|
||||
# code...
|
||||
// code...
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -221,6 +221,7 @@ trait PrivacySettings
|
|||
$settings->save();
|
||||
$profile->save();
|
||||
Cache::forget('profiles:private');
|
||||
|
||||
return [200];
|
||||
}
|
||||
}
|
||||
|
|
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
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
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
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
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
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
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 +1 @@
|
|||
(()=>{"use strict";var e,r,n,o={},t={};function a(e){var r=t[e];if(void 0!==r)return r.exports;var n=t[e]={id:e,loaded:!1,exports:{}};return o[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=o,e=[],a.O=(r,n,o,t)=>{if(!n){var d=1/0;for(l=0;l<e.length;l++){for(var[n,o,t]=e[l],i=!0,c=0;c<n.length;c++)(!1&t||d>=t)&&Object.keys(a.O).every((e=>a.O[e](n[c])))?n.splice(c--,1):(i=!1,t<d&&(d=t));if(i){e.splice(l--,1);var s=o();void 0!==s&&(r=s)}}return r}t=t||0;for(var l=e.length;l>0&&e[l-1][2]>t;l--)e[l]=e[l-1];e[l]=[n,o,t]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var n in r)a.o(r,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,n)=>(a.f[n](e,r),r)),[])),a.u=e=>"js/"+{1179:"daci.chunk",1240:"discover~myhashtags.chunk",1645:"profile~following.bundle",2156:"dms.chunk",2966:"discover~hashtag.bundle",3688:"discover~serverfeed.chunk",4951:"home.chunk",6250:"discover~settings.chunk",6535:"discover.chunk",6740:"discover~memories.chunk",7399:"dms~message.chunk",7413:"error404.bundle",7521:"discover~findfriends.chunk",7744:"notifications.chunk",8087:"profile.chunk",8119:"i18n.bundle",8408:"post.chunk",8977:"profile~followers.bundle",9124:"compose.chunk",9919:"changelog.bundle"}[e]+"."+{1179:"34dc7bad3a0792cc",1240:"8886fc0d4736d819",1645:"7ca7cfa5aaae75e2",2156:"2b55effc0e8ba89f",2966:"a0f00fc7df1f313c",3688:"262bf7e3bce843c3",4951:"264eeb47bfac56c1",6250:"65d6f3cbe5323ed4",6535:"c2229e1d15bd3ada",6740:"37e0c325f900e163",7399:"976f7edaa6f71137",7413:"b397483e3991ab20",7521:"b1858bea66d9723b",7744:"0c5151643e4534aa",8087:"a2234f891ba86efd",8119:"93a02e275ac1a708",8408:"9184101a2b809af1",8977:"5d796e79f32d066c",9124:"a0cfdf07f5062445",9919:"bf44edbbfa14bd53"}[e]+".js",a.miniCssF=e=>({2305:"css/portfolio",2540:"css/landing",3364:"css/admin",6952:"css/appdark",8252:"css/app",8759:"css/spa"}[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={},n="pixelfed:",a.l=(e,o,t,d)=>{if(r[e])r[e].push(o);else{var i,c;if(void 0!==t)for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var f=s[l];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==n+t){i=f;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.setAttribute("data-webpack",n+t),i.src=e),r[e]=[o];var u=(n,o)=>{i.onerror=i.onload=null,clearTimeout(b);var t=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),t&&t.forEach((e=>e(o))),n)return n(o)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),c&&document.head.appendChild(i)}},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={461:0,6952:0,8252:0,2305:0,3364:0,2540:0,8759:0};a.f.j=(r,n)=>{var o=a.o(e,r)?e[r]:void 0;if(0!==o)if(o)n.push(o[2]);else if(/^((69|82)52|2305|2540|3364|461|8759)$/.test(r))e[r]=0;else{var t=new Promise(((n,t)=>o=e[r]=[n,t]));n.push(o[2]=t);var d=a.p+a.u(r),i=new Error;a.l(d,(n=>{if(a.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var t=n&&("load"===n.type?"missing":n.type),d=n&&n.target&&n.target.src;i.message="Loading chunk "+r+" failed.\n("+t+": "+d+")",i.name="ChunkLoadError",i.type=t,i.request=d,o[1](i)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,n)=>{var o,t,[d,i,c]=n,s=0;if(d.some((r=>0!==e[r]))){for(o in i)a.o(i,o)&&(a.m[o]=i[o]);if(c)var l=c(a)}for(r&&r(n);s<d.length;s++)t=d[s],a.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return a.O(l)},n=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))})(),a.nc=void 0})();
|
||||
(()=>{"use strict";var e,r,n,o={},t={};function a(e){var r=t[e];if(void 0!==r)return r.exports;var n=t[e]={id:e,loaded:!1,exports:{}};return o[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=o,e=[],a.O=(r,n,o,t)=>{if(!n){var c=1/0;for(l=0;l<e.length;l++){for(var[n,o,t]=e[l],i=!0,d=0;d<n.length;d++)(!1&t||c>=t)&&Object.keys(a.O).every((e=>a.O[e](n[d])))?n.splice(d--,1):(i=!1,t<c&&(c=t));if(i){e.splice(l--,1);var s=o();void 0!==s&&(r=s)}}return r}t=t||0;for(var l=e.length;l>0&&e[l-1][2]>t;l--)e[l]=e[l-1];e[l]=[n,o,t]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var n in r)a.o(r,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,n)=>(a.f[n](e,r),r)),[])),a.u=e=>"js/"+{1179:"daci.chunk",1240:"discover~myhashtags.chunk",1645:"profile~following.bundle",2156:"dms.chunk",2966:"discover~hashtag.bundle",3688:"discover~serverfeed.chunk",4951:"home.chunk",6250:"discover~settings.chunk",6535:"discover.chunk",6740:"discover~memories.chunk",7399:"dms~message.chunk",7413:"error404.bundle",7521:"discover~findfriends.chunk",7744:"notifications.chunk",8087:"profile.chunk",8119:"i18n.bundle",8408:"post.chunk",8977:"profile~followers.bundle",9124:"compose.chunk",9919:"changelog.bundle"}[e]+"."+{1179:"a498fff65c83f174",1240:"4cc859102b24780c",1645:"9294aa1b560387c7",2156:"a42edfd973f6c593",2966:"1b11b46e0b28aa3f",3688:"b4c4ca11f3498bf1",4951:"ccbe0267817f9a26",6250:"07417fd0cd9c5833",6535:"1404d3172761023b",6740:"321431bd290466d4",7399:"6cd795c99fc1a568",7413:"54601f9cdd0f7719",7521:"29c7f06a6a4c6f61",7744:"1086603ea08d1017",8087:"e86bfb0eb7723ddc",8119:"28bba3e12cdadf51",8408:"41ea9082b932e599",8977:"50a39058d98e16eb",9124:"47ba00abaa827b26",9919:"d5810c2672b6abc7"}[e]+".js",a.miniCssF=e=>({2305:"css/portfolio",2540:"css/landing",3364:"css/admin",6952:"css/appdark",8252:"css/app",8759:"css/spa"}[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={},n="pixelfed:",a.l=(e,o,t,c)=>{if(r[e])r[e].push(o);else{var i,d;if(void 0!==t)for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var u=s[l];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==n+t){i=u;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.setAttribute("data-webpack",n+t),i.src=e),r[e]=[o];var f=(n,o)=>{i.onerror=i.onload=null,clearTimeout(b);var t=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),t&&t.forEach((e=>e(o))),n)return n(o)},b=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),d&&document.head.appendChild(i)}},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={461:0,6952:0,8252:0,2305:0,3364:0,2540:0,8759:0};a.f.j=(r,n)=>{var o=a.o(e,r)?e[r]:void 0;if(0!==o)if(o)n.push(o[2]);else if(/^((69|82)52|2305|2540|3364|461|8759)$/.test(r))e[r]=0;else{var t=new Promise(((n,t)=>o=e[r]=[n,t]));n.push(o[2]=t);var c=a.p+a.u(r),i=new Error;a.l(c,(n=>{if(a.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var t=n&&("load"===n.type?"missing":n.type),c=n&&n.target&&n.target.src;i.message="Loading chunk "+r+" failed.\n("+t+": "+c+")",i.name="ChunkLoadError",i.type=t,i.request=c,o[1](i)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,n)=>{var o,t,[c,i,d]=n,s=0;if(c.some((r=>0!==e[r]))){for(o in i)a.o(i,o)&&(a.m[o]=i[o]);if(d)var l=d(a)}for(r&&r(n);s<c.length;s++)t=c[s],a.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return a.O(l)},n=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))})(),a.nc=void 0})();
|
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
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
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"/js/app.js": "/js/app.js?id=d4fb3d91eb65298a439439305dd50dde",
|
||||
"/js/app.js": "/js/app.js?id=3688fe4a647f902efc642afb1a50984e",
|
||||
"/js/activity.js": "/js/activity.js?id=dea89d9571c6bd889dd0f51a154b3872",
|
||||
"/js/components.js": "/js/components.js?id=ebf743614d3b943541f868a0bc3db9d8",
|
||||
"/js/discover.js": "/js/discover.js?id=7c90d36829dfe34f19f5d1f545107db7",
|
||||
|
@ -16,40 +16,40 @@
|
|||
"/js/profile-directory.js": "/js/profile-directory.js?id=1615064235d2acf08d84c3e3d1232d7e",
|
||||
"/js/story-compose.js": "/js/story-compose.js?id=50d723634d8d22db14d630a02774e5b7",
|
||||
"/js/direct.js": "/js/direct.js?id=2f7df211df1b62a0637ed87f2457e918",
|
||||
"/js/admin.js": "/js/admin.js?id=6b704e46b54b8ec1b0600ff50b33f7b9",
|
||||
"/js/spa.js": "/js/spa.js?id=cd6a07d612c09f17c34a6e8441768020",
|
||||
"/js/admin.js": "/js/admin.js?id=0c438fd27a3e0ee99d0f2153295bcbfb",
|
||||
"/js/spa.js": "/js/spa.js?id=fc5a6119ba3daead75be22eca369dcad",
|
||||
"/js/stories.js": "/js/stories.js?id=f3d502fa937e5fa90d173d5d7aa64e2c",
|
||||
"/js/portfolio.js": "/js/portfolio.js?id=e8a1f57ef2c7c9ff40265502da5b84ac",
|
||||
"/js/account-import.js": "/js/account-import.js?id=c17bc3e351e51eb64529a4b28c75d9d4",
|
||||
"/js/portfolio.js": "/js/portfolio.js?id=d53caf31d3ef87b47fbc51a31ff943f8",
|
||||
"/js/account-import.js": "/js/account-import.js?id=1d1d10a8a9ea46e9a66219ea6dc4c803",
|
||||
"/js/admin_invite.js": "/js/admin_invite.js?id=0a0036f59cfb186f7698207ae432365b",
|
||||
"/js/landing.js": "/js/landing.js?id=753a52aacb8bb884f50ed3ae9ed99a38",
|
||||
"/js/landing.js": "/js/landing.js?id=5b97a3da6c8142b374643763c7ce3693",
|
||||
"/js/remote_auth.js": "/js/remote_auth.js?id=37e5bdf3bc1896eee063db7a186b9876",
|
||||
"/js/manifest.js": "/js/manifest.js?id=1aecad6992ea1cdb8054608c3604a5cc",
|
||||
"/js/home.chunk.264eeb47bfac56c1.js": "/js/home.chunk.264eeb47bfac56c1.js?id=c5704eda3f241103f1ed1fa6fa4cefad",
|
||||
"/js/compose.chunk.a0cfdf07f5062445.js": "/js/compose.chunk.a0cfdf07f5062445.js?id=71f4bcf44739473ee369521ea785f63e",
|
||||
"/js/post.chunk.9184101a2b809af1.js": "/js/post.chunk.9184101a2b809af1.js?id=b24c0c9949fba5b3e76cb95ea8bb6e5a",
|
||||
"/js/profile.chunk.a2234f891ba86efd.js": "/js/profile.chunk.a2234f891ba86efd.js?id=2c9f83cb28d3893a169200c8341dbbb1",
|
||||
"/js/discover~memories.chunk.37e0c325f900e163.js": "/js/discover~memories.chunk.37e0c325f900e163.js?id=02137ba179f0f2f3819597f262f423b8",
|
||||
"/js/discover~myhashtags.chunk.8886fc0d4736d819.js": "/js/discover~myhashtags.chunk.8886fc0d4736d819.js?id=0397f095e24b2bbdffd84be14bb9d8c4",
|
||||
"/js/daci.chunk.34dc7bad3a0792cc.js": "/js/daci.chunk.34dc7bad3a0792cc.js?id=53da4c2b40ecc1164592bd0f66767284",
|
||||
"/js/discover~findfriends.chunk.b1858bea66d9723b.js": "/js/discover~findfriends.chunk.b1858bea66d9723b.js?id=3be5b1f07a6fa6a52efae3165391c328",
|
||||
"/js/discover~serverfeed.chunk.262bf7e3bce843c3.js": "/js/discover~serverfeed.chunk.262bf7e3bce843c3.js?id=4b8b7ab8f27e79fc4eef11c08ec9cbf8",
|
||||
"/js/discover~settings.chunk.65d6f3cbe5323ed4.js": "/js/discover~settings.chunk.65d6f3cbe5323ed4.js?id=2f1be9f65c1abe119e7283fbb6a9c1c3",
|
||||
"/js/discover.chunk.c2229e1d15bd3ada.js": "/js/discover.chunk.c2229e1d15bd3ada.js?id=a88392222bc4cd0ea8183980da6f6402",
|
||||
"/js/notifications.chunk.0c5151643e4534aa.js": "/js/notifications.chunk.0c5151643e4534aa.js?id=f3239550ec43ea4ff0a0c841a8d6179f",
|
||||
"/js/dms.chunk.2b55effc0e8ba89f.js": "/js/dms.chunk.2b55effc0e8ba89f.js?id=a97c2bb5c33a8265397f5712abc5d7f0",
|
||||
"/js/dms~message.chunk.976f7edaa6f71137.js": "/js/dms~message.chunk.976f7edaa6f71137.js?id=5cd8c66f0cc7b483d3d848b9f24f0227",
|
||||
"/js/profile~followers.bundle.5d796e79f32d066c.js": "/js/profile~followers.bundle.5d796e79f32d066c.js?id=7a607d5976217c7d5f7ca6784447b783",
|
||||
"/js/profile~following.bundle.7ca7cfa5aaae75e2.js": "/js/profile~following.bundle.7ca7cfa5aaae75e2.js?id=8d3cf326f5f5a6a6e129f0148b6b69d1",
|
||||
"/js/discover~hashtag.bundle.a0f00fc7df1f313c.js": "/js/discover~hashtag.bundle.a0f00fc7df1f313c.js?id=4bc97210a5b792f40c9c3516102fa23e",
|
||||
"/js/error404.bundle.b397483e3991ab20.js": "/js/error404.bundle.b397483e3991ab20.js?id=d670737f4f52f3ecac26865c18cc585d",
|
||||
"/js/i18n.bundle.93a02e275ac1a708.js": "/js/i18n.bundle.93a02e275ac1a708.js?id=945ffd7c76a92fbb5ab17c88f26ec739",
|
||||
"/js/changelog.bundle.bf44edbbfa14bd53.js": "/js/changelog.bundle.bf44edbbfa14bd53.js?id=37af1fdc9f4a3226227946db8452eb52",
|
||||
"/js/manifest.js": "/js/manifest.js?id=cedd1bc9b4ad502aff9074166aebaf72",
|
||||
"/js/home.chunk.ccbe0267817f9a26.js": "/js/home.chunk.ccbe0267817f9a26.js?id=d7cd05d679e24e12eb4cd6dc9407e235",
|
||||
"/js/compose.chunk.47ba00abaa827b26.js": "/js/compose.chunk.47ba00abaa827b26.js?id=9670e07da2a58c201dfee2ed8d5308a1",
|
||||
"/js/post.chunk.41ea9082b932e599.js": "/js/post.chunk.41ea9082b932e599.js?id=ec46a9cc22e6e01b0341c7851ba9d226",
|
||||
"/js/profile.chunk.e86bfb0eb7723ddc.js": "/js/profile.chunk.e86bfb0eb7723ddc.js?id=df77e0f00aa05c609f431241d83e8f5f",
|
||||
"/js/discover~memories.chunk.321431bd290466d4.js": "/js/discover~memories.chunk.321431bd290466d4.js?id=d4c54f40fa9b1dad4bde85779dc780f2",
|
||||
"/js/discover~myhashtags.chunk.4cc859102b24780c.js": "/js/discover~myhashtags.chunk.4cc859102b24780c.js?id=28a36fe80e7a08166d73fa703b912f15",
|
||||
"/js/daci.chunk.a498fff65c83f174.js": "/js/daci.chunk.a498fff65c83f174.js?id=164deda7c30d432b32f5676b0a7dfdbb",
|
||||
"/js/discover~findfriends.chunk.29c7f06a6a4c6f61.js": "/js/discover~findfriends.chunk.29c7f06a6a4c6f61.js?id=a99ea4f9171f58e20356da64e9cc2618",
|
||||
"/js/discover~serverfeed.chunk.b4c4ca11f3498bf1.js": "/js/discover~serverfeed.chunk.b4c4ca11f3498bf1.js?id=5c25d0b23e96f90d84137a639e59e6e2",
|
||||
"/js/discover~settings.chunk.07417fd0cd9c5833.js": "/js/discover~settings.chunk.07417fd0cd9c5833.js?id=27ee8cb0cfa9535b7ad2f998424dd975",
|
||||
"/js/discover.chunk.1404d3172761023b.js": "/js/discover.chunk.1404d3172761023b.js?id=64614afd8b4dc2e723d4be94f95269ee",
|
||||
"/js/notifications.chunk.1086603ea08d1017.js": "/js/notifications.chunk.1086603ea08d1017.js?id=2b9a342745dfc15efee64a36479ec25b",
|
||||
"/js/dms.chunk.a42edfd973f6c593.js": "/js/dms.chunk.a42edfd973f6c593.js?id=d145d14e3d6e42f2b0c48807a302d068",
|
||||
"/js/dms~message.chunk.6cd795c99fc1a568.js": "/js/dms~message.chunk.6cd795c99fc1a568.js?id=84ebbb0bf9d25931c8a45573105688c6",
|
||||
"/js/profile~followers.bundle.50a39058d98e16eb.js": "/js/profile~followers.bundle.50a39058d98e16eb.js?id=9464465b46bf93aa995f4f3ab6fa7e84",
|
||||
"/js/profile~following.bundle.9294aa1b560387c7.js": "/js/profile~following.bundle.9294aa1b560387c7.js?id=7bf7b38c9b2967772cfce6a4871549b8",
|
||||
"/js/discover~hashtag.bundle.1b11b46e0b28aa3f.js": "/js/discover~hashtag.bundle.1b11b46e0b28aa3f.js?id=a3130c4a838b9c7bbae2cb03dc2d6465",
|
||||
"/js/error404.bundle.54601f9cdd0f7719.js": "/js/error404.bundle.54601f9cdd0f7719.js?id=d670737f4f52f3ecac26865c18cc585d",
|
||||
"/js/i18n.bundle.28bba3e12cdadf51.js": "/js/i18n.bundle.28bba3e12cdadf51.js?id=63ef9390fe1b3c652bb4dbff0ebf11ab",
|
||||
"/js/changelog.bundle.d5810c2672b6abc7.js": "/js/changelog.bundle.d5810c2672b6abc7.js?id=e00d3c004ad5274caac3ba360c734dc2",
|
||||
"/css/appdark.css": "/css/appdark.css?id=7f9ba0a926020571e9c8fbedd2ec6a6f",
|
||||
"/css/app.css": "/css/app.css?id=838b7d90a81e16b8a9adc8644237606a",
|
||||
"/css/portfolio.css": "/css/portfolio.css?id=d98e354f173c6a8b729626384dceaa90",
|
||||
"/css/admin.css": "/css/admin.css?id=20cdb9cce61b0e1bd9fb1aad30efcd2f",
|
||||
"/css/landing.css": "/css/landing.css?id=589f3fa192867727925921b0f68ce022",
|
||||
"/css/spa.css": "/css/spa.css?id=24b025007b418a7e7efd18d47fa56b85",
|
||||
"/js/vendor.js": "/js/vendor.js?id=9e8c3caac2c4d0119e99070a0bb36dfc"
|
||||
"/css/spa.css": "/css/spa.css?id=489dcce2f610f29cf967756288d13647",
|
||||
"/js/vendor.js": "/js/vendor.js?id=a18881f6b7437334b43dc693a83ecaea"
|
||||
}
|
||||
|
|
|
@ -10,79 +10,136 @@
|
|||
body-class="list-group-flush p-0 rounded">
|
||||
|
||||
<div class="list-group text-center">
|
||||
<div
|
||||
v-if="status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer font-weight-bold"
|
||||
@click="ctxMenuGoToPost()">
|
||||
{{ $t('menu.viewPost') }}
|
||||
<div v-if="status.visibility !== 'archived'" class="list-group-item d-flex p-0 m-0">
|
||||
<div class="border-right p-2 w-50">
|
||||
<a
|
||||
v-if="status"
|
||||
class="menu-option"
|
||||
:href="status.url"
|
||||
@click.prevent="ctxMenuGoToPost()">
|
||||
<div class="action-icon-link">
|
||||
<div class="icon"><i class="fal fa-images fa-lg"></i></div>
|
||||
<p class="mb-0">{{ $t('menu.viewPost') }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer font-weight-bold"
|
||||
@click="ctxMenuGoToProfile()">
|
||||
{{ $t('menu.viewProfile') }}
|
||||
<div class="p-2 flex-grow-1">
|
||||
<a
|
||||
v-if="status"
|
||||
class="menu-option"
|
||||
:href="status.account.url"
|
||||
@click.prevent="ctxMenuGoToProfile()">
|
||||
<div class="action-icon-link">
|
||||
<div class="icon"><i class="fal fa-user fa-lg"></i></div>
|
||||
<p class="mb-0">{{ $t('menu.viewProfile') }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
<template v-if="ctxMenuRelationship">
|
||||
<a
|
||||
v-if="ctxMenuRelationship.following"
|
||||
class="list-group-item menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="handleUnfollow">
|
||||
{{ $t('profile.unfollow') }}
|
||||
</a>
|
||||
|
||||
<div v-else class="d-flex">
|
||||
<div class="p-3 border-right w-50 text-center">
|
||||
<a
|
||||
class="small menu-option text-muted"
|
||||
href="#"
|
||||
@click.prevent="handleMute">
|
||||
<div class="action-icon-link-inline">
|
||||
<div class="icon"><i class="far" :class="[ ctxMenuRelationship.muting ? 'fa-eye' : 'fa-eye-slash' ]"></i></div>
|
||||
<p class="text-muted mb-0">{{ ctxMenuRelationship.muting ? 'Unmute' : 'Mute' }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="p-3 w-50">
|
||||
<a
|
||||
class="small menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="handleBlock">
|
||||
<div class="action-icon-link-inline">
|
||||
<div class="icon"><i class="far fa-shield-alt"></i></div>
|
||||
<p class="text-danger mb-0">Block</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<a
|
||||
v-if="status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer font-weight-bold"
|
||||
@click="ctxMenuShare()">
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="ctxMenuShare()">
|
||||
{{ $t('common.share') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="status && profile && profile.is_admin == true && status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer font-weight-bold"
|
||||
@click="ctxModMenuShow()">
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="ctxModMenuShow()">
|
||||
{{ $t('menu.moderationTools') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="status && status.account.id != profile.id"
|
||||
class="list-group-item rounded cursor-pointer text-danger font-weight-bold"
|
||||
@click="ctxMenuReportPost()">
|
||||
class="list-group-item menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="ctxMenuReportPost()">
|
||||
{{ $t('menu.report') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="status && profile.id == status.account.id && status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer text-danger font-weight-bold"
|
||||
@click="archivePost(status)">
|
||||
class="list-group-item menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="archivePost(status)">
|
||||
{{ $t('menu.archive') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="status && profile.id == status.account.id && status.visibility == 'archived'"
|
||||
class="list-group-item rounded cursor-pointer text-danger font-weight-bold"
|
||||
@click="unarchivePost(status)">
|
||||
class="list-group-item menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="unarchivePost(status)">
|
||||
{{ $t('menu.unarchive') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="config.ab.pue && status && profile.id == status.account.id && status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer text-danger font-weight-bold"
|
||||
@click="editPost(status)">
|
||||
class="list-group-item menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="editPost(status)">
|
||||
Edit
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="status && (profile.is_admin || profile.id == status.account.id) && status.visibility !== 'archived'"
|
||||
class="list-group-item rounded cursor-pointer text-danger font-weight-bold"
|
||||
@click="deletePost(status)">
|
||||
class="list-group-item menu-option text-danger"
|
||||
href="#"
|
||||
@click.prevent="deletePost(status)">
|
||||
<div v-if="isDeleting" class="spinner-border spinner-border-sm" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
{{ $t('common.delete') }}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
class="list-group-item rounded cursor-pointer text-lighter font-weight-bold"
|
||||
@click="closeCtxMenu()">
|
||||
<a
|
||||
class="list-group-item menu-option text-lighter"
|
||||
href="#"
|
||||
@click.prevent="closeCtxMenu()">
|
||||
{{ $t('common.cancel') }}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</b-modal>
|
||||
|
||||
|
@ -98,7 +155,7 @@
|
|||
<div class="list-group text-center">
|
||||
<p class="py-2 px-3 mb-0">
|
||||
<div
|
||||
class="text-center font-weight-bold text-danger">
|
||||
class="text-center menu-option text-danger">
|
||||
{{ $t('menu.moderationTools') }}
|
||||
</div>
|
||||
|
||||
|
@ -107,38 +164,43 @@
|
|||
</div>
|
||||
</p>
|
||||
|
||||
<div
|
||||
class="list-group-item rounded cursor-pointer"
|
||||
@click="moderatePost(status, 'unlist')">
|
||||
<a
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="moderatePost(status, 'unlist')">
|
||||
{{ $t('menu.unlistFromTimelines') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-if="status.sensitive"
|
||||
class="list-group-item rounded cursor-pointer"
|
||||
@click="moderatePost(status, 'remcw')">
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="moderatePost(status, 'remcw')">
|
||||
{{ $t('menu.removeCW') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
<a
|
||||
v-else
|
||||
class="list-group-item rounded cursor-pointer"
|
||||
@click="moderatePost(status, 'addcw')">
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="moderatePost(status, 'addcw')">
|
||||
{{ $t('menu.addCW') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
class="list-group-item rounded cursor-pointer"
|
||||
@click="moderatePost(status, 'spammer')">
|
||||
<a
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="moderatePost(status, 'spammer')">
|
||||
{{ $t('menu.markAsSpammer') }}<br />
|
||||
<span class="small">{{ $t('menu.markAsSpammerText') }}</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
class="list-group-item rounded cursor-pointer text-lighter"
|
||||
@click="ctxModMenuClose()">
|
||||
<a
|
||||
class="list-group-item menu-option text-lighter"
|
||||
href="#"
|
||||
@click.prevent="ctxModMenuClose()">
|
||||
{{ $t('common.cancel') }}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</b-modal>
|
||||
|
||||
|
@ -170,10 +232,26 @@
|
|||
rounded
|
||||
size="sm"
|
||||
body-class="list-group-flush p-0 rounded text-center">
|
||||
<div class="list-group-item rounded cursor-pointer" @click="shareStatus(status, $event)">{{status.reblogged ? 'Unshare' : 'Share'}} {{ $t('menu.toFollowers') }}</div>
|
||||
<div class="list-group-item rounded cursor-pointer" @click="ctxMenuCopyLink()">{{ $t('common.copyLink') }}</div>
|
||||
<div v-if="status && status.local == true && !status.in_reply_to_id" class="list-group-item rounded cursor-pointer" @click="ctxMenuEmbed()">{{ $t('menu.embed') }}</div>
|
||||
<div class="list-group-item rounded cursor-pointer text-lighter" @click="closeCtxShareMenu()">{{ $t('common.cancel') }}</div>
|
||||
<a
|
||||
class="list-group-item menu-option"
|
||||
href="#"
|
||||
@click.prevent="ctxMenuCopyLink()">
|
||||
{{ $t('common.copyLink') }}
|
||||
</a>
|
||||
|
||||
<a
|
||||
v-if="status && status.local == true && !status.in_reply_to_id"
|
||||
class="list-group-item menu-option"
|
||||
@click.prevent="ctxMenuEmbed()">
|
||||
{{ $t('menu.embed') }}
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="list-group-item menu-option text-lighter"
|
||||
href="#"
|
||||
@click.prevent="closeCtxShareMenu()">
|
||||
{{ $t('common.cancel') }}
|
||||
</a>
|
||||
</b-modal>
|
||||
|
||||
<b-modal ref="ctxEmbedModal"
|
||||
|
@ -339,19 +417,19 @@
|
|||
ctxMenu() {
|
||||
this.ctxMenuStatus = this.status;
|
||||
this.ctxEmbedPayload = window.App.util.embed.post(this.status.url);
|
||||
// if(this.status.account.id == this.profile.id) {
|
||||
if(this.status.account.id == this.profile.id) {
|
||||
this.ctxMenuRelationship = false;
|
||||
this.$refs.ctxModal.show();
|
||||
// } else {
|
||||
// axios.get('/api/pixelfed/v1/accounts/relationships', {
|
||||
// params: {
|
||||
// 'id[]': this.status.account.id
|
||||
// }
|
||||
// }).then(res => {
|
||||
// this.ctxMenuRelationship = res.data[0];
|
||||
// this.$refs.ctxModal.show();
|
||||
// });
|
||||
// }
|
||||
} else {
|
||||
axios.get('/api/v1/accounts/relationships', {
|
||||
params: {
|
||||
'id[]': this.status.account.id
|
||||
}
|
||||
}).then(res => {
|
||||
this.ctxMenuRelationship = res.data[0];
|
||||
this.$refs.ctxModal.show();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
closeCtxMenu() {
|
||||
|
@ -667,28 +745,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
shareStatus(status, $event) {
|
||||
if($('body').hasClass('loggedIn') == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.closeModals();
|
||||
|
||||
axios.post('/i/share', {
|
||||
item: status.id
|
||||
}).then(res => {
|
||||
status.reblogs_count = res.data.count;
|
||||
status.reblogged = !status.reblogged;
|
||||
// if(status.reblogged) {
|
||||
// swal('Success', 'You shared this post', 'success');
|
||||
// } else {
|
||||
// swal('Success', 'You unshared this post', 'success');
|
||||
// }
|
||||
}).catch(err => {
|
||||
swal(this.$t('common.error'), this.$t('common.errorMsg'), 'error');
|
||||
});
|
||||
},
|
||||
|
||||
statusUrl(status) {
|
||||
if(status.account.local == true) {
|
||||
this.$router.push({
|
||||
|
@ -741,10 +797,18 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if(window.confirm(this.$t('menu.deletePostConfirm')) == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
swal({
|
||||
title: 'Confirm Delete',
|
||||
text: 'Are you sure you want to delete this post?',
|
||||
icon: "warning",
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
})
|
||||
.then(res => {
|
||||
if(!res) {
|
||||
this.closeModals();
|
||||
this.isDeleting = false;
|
||||
} else {
|
||||
axios.post('/i/delete', {
|
||||
type: 'status',
|
||||
item: status.id
|
||||
|
@ -753,8 +817,12 @@
|
|||
this.closeModals();
|
||||
this.isDeleting = false;
|
||||
}).catch(err => {
|
||||
this.closeModals();
|
||||
this.isDeleting = false;
|
||||
swal(this.$t('common.error'), this.$t('common.errorMsg'), 'error');
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
owner(status) {
|
||||
|
@ -776,7 +844,7 @@
|
|||
|
||||
axios.post('/api/pixelfed/v2/status/' + status.id + '/archive')
|
||||
.then(res => {
|
||||
this.$emit('status-delete', status.id);
|
||||
this.$emit('delete', status.id);
|
||||
this.$emit('archived', status.id);
|
||||
this.closeModals();
|
||||
});
|
||||
|
@ -797,7 +865,157 @@
|
|||
editPost(status) {
|
||||
this.closeModals();
|
||||
this.$emit('edit', status);
|
||||
},
|
||||
|
||||
handleMute() {
|
||||
if(!this.ctxMenuRelationship) {
|
||||
return;
|
||||
}
|
||||
let curState = this.ctxMenuRelationship.muting;
|
||||
|
||||
swal({
|
||||
title: curState ? 'Confirm Unmute' : 'Confirm Mute',
|
||||
text: curState ? 'Are you sure you want to unmute this account?' : 'Are you sure you want to mute this account?',
|
||||
icon: "warning",
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
})
|
||||
.then(res => {
|
||||
if(!res) {
|
||||
this.closeModals();
|
||||
} else {
|
||||
let url = curState ?
|
||||
`/api/v1/accounts/${this.status.account.id}/unmute` :
|
||||
`/api/v1/accounts/${this.status.account.id}/mute`;
|
||||
axios.post(url)
|
||||
.then(res => {
|
||||
this.closeModals();
|
||||
this.$emit('muted', this.status);
|
||||
this.$store.commit('updateRelationship', [res.data]);
|
||||
})
|
||||
.catch(err => {
|
||||
this.closeModals();
|
||||
if(err && err.response && err.response.data && err.response.data.error) {
|
||||
swal('Error', err.response.data.error, 'error');
|
||||
} else {
|
||||
swal('Oops!', 'An error occured, please try again later.', 'error');
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
handleBlock() {
|
||||
if(!this.ctxMenuRelationship) {
|
||||
return;
|
||||
}
|
||||
let curState = this.ctxMenuRelationship.blocking;
|
||||
|
||||
swal({
|
||||
title: curState ? 'Confirm Unblock' : 'Confirm Block',
|
||||
text: curState ? 'Are you sure you want to unblock this account?' : 'Are you sure you want to block this account?',
|
||||
icon: "warning",
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
})
|
||||
.then(res => {
|
||||
if(!res) {
|
||||
this.closeModals();
|
||||
} else {
|
||||
let url = curState ?
|
||||
`/api/v1/accounts/${this.status.account.id}/unblock` :
|
||||
`/api/v1/accounts/${this.status.account.id}/block`;
|
||||
axios.post(url)
|
||||
.then(res => {
|
||||
this.closeModals();
|
||||
this.$store.commit('updateRelationship', [res.data]);
|
||||
this.$emit('muted', this.status);
|
||||
})
|
||||
.catch(err => {
|
||||
this.closeModals();
|
||||
if(err && err.response && err.response.data && err.response.data.error) {
|
||||
swal('Error', err.response.data.error, 'error');
|
||||
} else {
|
||||
swal('Oops!', 'An error occured, please try again later.', 'error');
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
handleUnfollow() {
|
||||
if(!this.ctxMenuRelationship) {
|
||||
return;
|
||||
}
|
||||
|
||||
swal({
|
||||
title: 'Unfollow',
|
||||
text: 'Are you sure you want to unfollow ' + this.status.account.username + '?',
|
||||
icon: "warning",
|
||||
buttons: true,
|
||||
dangerMode: true,
|
||||
})
|
||||
.then(res => {
|
||||
if(!res) {
|
||||
this.closeModals();
|
||||
} else {
|
||||
axios.post(`/api/v1/accounts/${this.status.account.id}/unfollow`)
|
||||
.then(res => {
|
||||
this.closeModals();
|
||||
this.$store.commit('updateRelationship', [res.data]);
|
||||
this.$emit('unfollow', this.status);
|
||||
})
|
||||
.catch(err => {
|
||||
this.closeModals();
|
||||
if(err && err.response && err.response.data && err.response.data.error) {
|
||||
swal('Error', err.response.data.error, 'error');
|
||||
} else {
|
||||
swal('Oops!', 'An error occured, please try again later.', 'error');
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.menu-option {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
color: var(--dark);
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
border-color: var(--border-color);
|
||||
}
|
||||
|
||||
.action-icon-link {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.icon {
|
||||
opacity: 0.5;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-weight: 600;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
&-inline {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
|
||||
p {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -91,6 +91,8 @@
|
|||
v-on:delete="deletePost"
|
||||
v-on:report-modal="handleReport"
|
||||
v-on:edit="handleEdit"
|
||||
v-on:muted="handleMuted"
|
||||
v-on:unfollow="handleUnfollow"
|
||||
/>
|
||||
|
||||
<likes-modal
|
||||
|
@ -543,6 +545,7 @@
|
|||
|
||||
deletePost() {
|
||||
this.feed.splice(this.postIndex, 1);
|
||||
this.forceUpdateIdx++;
|
||||
},
|
||||
|
||||
counterChange(index, type) {
|
||||
|
@ -788,6 +791,21 @@
|
|||
.then(res => {
|
||||
})
|
||||
},
|
||||
|
||||
handleMuted(post) {
|
||||
this.feed = this.feed.filter(p => {
|
||||
return p.account.id !== post.account.id;
|
||||
});
|
||||
},
|
||||
|
||||
handleUnfollow(post) {
|
||||
if(this.scope === 'home') {
|
||||
this.feed = this.feed.filter(p => {
|
||||
return p.account.id !== post.account.id;
|
||||
});
|
||||
}
|
||||
this.updateProfile({ following_count: this.profile.following_count - 1 });
|
||||
},
|
||||
},
|
||||
|
||||
watch: {
|
||||
|
|
|
@ -189,6 +189,10 @@ a.text-dark:hover {
|
|||
|
||||
.border {
|
||||
border: 1px solid var(--border-color) !important;
|
||||
|
||||
&-right {
|
||||
border-color: var(--border-color) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-white,
|
||||
|
@ -396,6 +400,10 @@ span.twitter-typeahead .tt-suggestion:focus {
|
|||
color: var(--dark);
|
||||
}
|
||||
|
||||
.modal-backdrop {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.timeline-status-component {
|
||||
.username {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
|
|
Ładowanie…
Reference in New Issue