mirror of
https://github.com/YunoHost-Apps/pixelfed_ynh.git
synced 2024-09-03 20:06:04 +02:00
Merge pull request #1500 from pixelfed/frontend-ui-refactor
Add Profile Sponsors
This commit is contained in:
commit
d2d7f07c35
30 changed files with 1945 additions and 1422 deletions
16
app/Http/Controllers/ProfileSponsorController.php
Normal file
16
app/Http/Controllers/ProfileSponsorController.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\ProfileSponsor;
|
||||
use Auth;
|
||||
|
||||
class ProfileSponsorController extends Controller
|
||||
{
|
||||
public function get(Request $request, $id)
|
||||
{
|
||||
$res = ProfileSponsor::whereProfileId($id)->firstOrFail()->sponsors;
|
||||
return response($res)->header('Content-Type', 'application/json');
|
||||
}
|
||||
}
|
|
@ -4,11 +4,13 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\AccountLog;
|
||||
use App\Following;
|
||||
use App\ProfileSponsor;
|
||||
use App\Report;
|
||||
use App\UserFilter;
|
||||
use Auth, Cookie, DB, Cache, Purify;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Http\Controllers\Settings\{
|
||||
ExportSettings,
|
||||
LabsSettings,
|
||||
|
@ -166,5 +168,49 @@ class SettingsController extends Controller
|
|||
|
||||
return response()->json([200])->cookie($cookie);
|
||||
}
|
||||
|
||||
public function sponsor()
|
||||
{
|
||||
$default = [
|
||||
'patreon' => null,
|
||||
'liberapay' => null,
|
||||
'opencollective' => null
|
||||
];
|
||||
$sponsors = ProfileSponsor::whereProfileId(Auth::user()->profile->id)->first();
|
||||
$sponsors = $sponsors ? json_decode($sponsors->sponsors, true) : $default;
|
||||
return view('settings.sponsor', compact('sponsors'));
|
||||
}
|
||||
|
||||
public function sponsorStore(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'patreon' => 'nullable|string',
|
||||
'liberapay' => 'nullable|string',
|
||||
'opencollective' => 'nullable|string'
|
||||
]);
|
||||
|
||||
$patreon = Str::startsWith($request->input('patreon'), 'patreon.com/') ? e($request->input('patreon')) : null;
|
||||
$liberapay = Str::startsWith($request->input('liberapay'), 'liberapay.com/') ? e($request->input('liberapay')) : null;
|
||||
$opencollective = Str::startsWith($request->input('opencollective'), 'opencollective.com/') ? e($request->input('opencollective')) : null;
|
||||
|
||||
if(empty($patreon) && empty($liberapay) && empty($opencollective)) {
|
||||
return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');;
|
||||
}
|
||||
|
||||
$res = [
|
||||
'patreon' => $patreon,
|
||||
'liberapay' => $liberapay,
|
||||
'opencollective' => $opencollective
|
||||
];
|
||||
|
||||
$sponsors = ProfileSponsor::firstOrCreate([
|
||||
'profile_id' => Auth::user()->profile_id ?? Auth::user()->profile->id
|
||||
]);
|
||||
$sponsors->sponsors = json_encode($res);
|
||||
$sponsors->save();
|
||||
$sponsors = $res;
|
||||
return redirect(route('settings'))->with('status', 'Sponsor settings successfully updated!');;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
15
app/ProfileSponsor.php
Normal file
15
app/ProfileSponsor.php
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ProfileSponsor extends Model
|
||||
{
|
||||
public $fillable = ['profile_id'];
|
||||
|
||||
public function profile()
|
||||
{
|
||||
return $this->belongsTo(Profile::class);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateProfileSponsorsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('profile_sponsors', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->bigInteger('profile_id')->unsigned()->unique()->index();
|
||||
$table->json('sponsors')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('profile_sponsors');
|
||||
}
|
||||
}
|
1075
package-lock.json
generated
1075
package-lock.json
generated
File diff suppressed because it is too large
Load diff
10
package.json
10
package.json
|
@ -15,26 +15,26 @@
|
|||
"bootstrap": ">=4.3.1",
|
||||
"cross-env": "^5.2.0",
|
||||
"jquery": "^3.4.1",
|
||||
"lodash": "^4.17.11",
|
||||
"lodash": ">=4.17.13",
|
||||
"popper.js": "^1.15.0",
|
||||
"resolve-url-loader": "^2.3.2",
|
||||
"sass": "^1.21.0",
|
||||
"sass": "^1.22.3",
|
||||
"sass-loader": "^7.1.0",
|
||||
"vue": "^2.6.10",
|
||||
"vue-template-compiler": "^2.6.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap-vue": "^2.0.0-rc.23",
|
||||
"bootstrap-vue": "^2.0.0-rc.26",
|
||||
"emoji-mart-vue": "^2.6.6",
|
||||
"filesize": "^3.6.1",
|
||||
"howler": "^2.1.2",
|
||||
"infinite-scroll": "^3.0.6",
|
||||
"laravel-echo": "^1.5.4",
|
||||
"laravel-mix": "^4.0.16",
|
||||
"laravel-mix": "^4.1.2",
|
||||
"node-sass": "^4.12.0",
|
||||
"opencollective": "^1.0.3",
|
||||
"opencollective-postinstall": "^2.0.2",
|
||||
"plyr": "^3.5.4",
|
||||
"plyr": "^3.5.6",
|
||||
"promise-polyfill": "8.1.0",
|
||||
"pusher-js": "^4.4.0",
|
||||
"quill": "^1.3.6",
|
||||
|
|
4
public/css/app.css
vendored
4
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
4
public/css/appdark.css
vendored
4
public/css/appdark.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/landing.css
vendored
2
public/css/landing.css
vendored
File diff suppressed because one or more lines are too long
2
public/js/ace.js
vendored
2
public/js/ace.js
vendored
File diff suppressed because one or more lines are too long
1
public/js/collectioncompose.js
vendored
Normal file
1
public/js/collectioncompose.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
public/js/components.js
vendored
2
public/js/components.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/compose.js
vendored
2
public/js/compose.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/developers.js
vendored
2
public/js/developers.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/discover.js
vendored
2
public/js/discover.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/hashtag.js
vendored
2
public/js/hashtag.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/loops.js
vendored
2
public/js/loops.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/mode-dot.js
vendored
2
public/js/mode-dot.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/profile.js
vendored
2
public/js/profile.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/quill.js
vendored
2
public/js/quill.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/search.js
vendored
2
public/js/search.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/status.js
vendored
2
public/js/status.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/theme-monokai.js
vendored
2
public/js/theme-monokai.js
vendored
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{14:function(e,a,o){e.exports=o("YMO/")},"YMO/":function(e,a,o){(function(e){function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(e,a,o){a.isDark=!0,a.cssClass="ace-monokai",a.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}",e("../lib/dom").importCssString(a.cssText,a.cssClass)}),ace.require(["ace/theme/monokai"],function(c){"object"==o(e)&&"object"==o(a)&&e&&(e.exports=c)})}).call(this,o("YuTi")(e))},YuTi:function(e,a){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}}},[[14,0]]]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{14:function(e,a,o){e.exports=o("YMO/")},"YMO/":function(e,a,o){(function(e){function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(e,a,o){a.isDark=!0,a.cssClass="ace-monokai",a.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}",e("../lib/dom").importCssString(a.cssText,a.cssClass)}),ace.require(["ace/theme/monokai"],function(c){"object"==o(e)&&"object"==o(a)&&e&&(e.exports=c)})}).call(this,o("YuTi")(e))},YuTi:function(e,a){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}}},[[14,0]]]);
|
2
public/js/timeline.js
vendored
2
public/js/timeline.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/vendor.js
vendored
2
public/js/vendor.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,24 +1,25 @@
|
|||
{
|
||||
"/js/manifest.js": "/js/manifest.js?id=01c8731923a46c30aaed",
|
||||
"/js/vendor.js": "/js/vendor.js?id=8ea306403cb5cfa88c2b",
|
||||
"/js/ace.js": "/js/ace.js?id=72ae94b2a68487d22caf",
|
||||
"/js/vendor.js": "/js/vendor.js?id=6e7489157aac9e82dbbe",
|
||||
"/js/ace.js": "/js/ace.js?id=4a28163d5fd63e64d6af",
|
||||
"/js/activity.js": "/js/activity.js?id=7405cc1a22814a5b2a70",
|
||||
"/js/app.js": "/js/app.js?id=2f034c84c06dbb3e511d",
|
||||
"/css/app.css": "/css/app.css?id=461b8782fc167f734ffa",
|
||||
"/css/appdark.css": "/css/appdark.css?id=34cd81dd9c8bc68cfd51",
|
||||
"/css/landing.css": "/css/landing.css?id=1ea686af4c64df5018fc",
|
||||
"/css/app.css": "/css/app.css?id=56642158bfe8b6469355",
|
||||
"/css/appdark.css": "/css/appdark.css?id=1b13fc163fa4deb9233f",
|
||||
"/css/landing.css": "/css/landing.css?id=31de3e75de8690f7ece5",
|
||||
"/css/quill.css": "/css/quill.css?id=81604d62610b0dbffad6",
|
||||
"/js/components.js": "/js/components.js?id=0b7b6f606e590f4df10f",
|
||||
"/js/compose.js": "/js/compose.js?id=aca2cd178a7ca454713d",
|
||||
"/js/developers.js": "/js/developers.js?id=e4a227c87d1b09fc2dd9",
|
||||
"/js/discover.js": "/js/discover.js?id=772fbc6c176aaa9039ec",
|
||||
"/js/hashtag.js": "/js/hashtag.js?id=32c3a6b1a04949d390ab",
|
||||
"/js/loops.js": "/js/loops.js?id=cacf532da1e0d50ec014",
|
||||
"/js/mode-dot.js": "/js/mode-dot.js?id=7d248d684a37f3eb88de",
|
||||
"/js/profile.js": "/js/profile.js?id=8b6af927d424cb58203e",
|
||||
"/js/quill.js": "/js/quill.js?id=a8a0855cb59d6a2f7aee",
|
||||
"/js/search.js": "/js/search.js?id=27506b08cf8c889e3f7f",
|
||||
"/js/status.js": "/js/status.js?id=665fb54127ca484a1692",
|
||||
"/js/theme-monokai.js": "/js/theme-monokai.js?id=1bc564c4661eb0fa30b6",
|
||||
"/js/timeline.js": "/js/timeline.js?id=90a01cbe86e6dff2b5c3"
|
||||
"/js/collectioncompose.js": "/js/collectioncompose.js?id=ec48ebc94ae6b1ec70ea",
|
||||
"/js/components.js": "/js/components.js?id=d64d41a2defb1a205865",
|
||||
"/js/compose.js": "/js/compose.js?id=488b24bf2f2168540449",
|
||||
"/js/developers.js": "/js/developers.js?id=ba029a560f0c30c5efc9",
|
||||
"/js/discover.js": "/js/discover.js?id=627f0a106fd359ae3b80",
|
||||
"/js/hashtag.js": "/js/hashtag.js?id=0f7e529e8128cc17638b",
|
||||
"/js/loops.js": "/js/loops.js?id=19112dc8663fc43db735",
|
||||
"/js/mode-dot.js": "/js/mode-dot.js?id=c7c83849e6bba99f1c33",
|
||||
"/js/profile.js": "/js/profile.js?id=273e21d1f85a097b18e4",
|
||||
"/js/quill.js": "/js/quill.js?id=c2b060eaf87ef63eb5c1",
|
||||
"/js/search.js": "/js/search.js?id=3186ccb02c7fad43c701",
|
||||
"/js/status.js": "/js/status.js?id=4b9a52b586880e264f05",
|
||||
"/js/theme-monokai.js": "/js/theme-monokai.js?id=a4da64fc6e2f406a616d",
|
||||
"/js/timeline.js": "/js/timeline.js?id=a3c3e38470108fa5df42"
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -33,6 +33,9 @@
|
|||
<li class="nav-item pl-3 {{request()->is('settings/security*')?'active':''}}">
|
||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.security')}}">Security</a>
|
||||
</li>
|
||||
<li class="nav-item pl-3 {{request()->is('settings/sponsor*')?'active':''}}">
|
||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.sponsor')}}">Sponsor</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<hr>
|
||||
</li>
|
||||
|
|
48
resources/views/settings/sponsor.blade.php
Normal file
48
resources/views/settings/sponsor.blade.php
Normal file
|
@ -0,0 +1,48 @@
|
|||
@extends('settings.template')
|
||||
|
||||
@section('section')
|
||||
|
||||
<div class="title">
|
||||
<h3 class="font-weight-bold">Sponsor</h3>
|
||||
<p class="lead">Add crowdfunding links to your profile.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<form method="post" action="{{route('settings.sponsor')}}">
|
||||
@csrf
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="patreon" class="col-sm-3 col-form-label font-weight-bold text-right">Patreon</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control" id="patreon" name="patreon" placeholder="patreon.com/dansup" value="{{$sponsors['patreon']}}">
|
||||
<p class="help-text small text-muted font-weight-bold">
|
||||
Example: patreon.com/dansup
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="liberapay" class="col-sm-3 col-form-label font-weight-bold text-right">Liberapay</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control" id="liberapay" name="liberapay" placeholder="liberapay.com/pixelfed" value="{{$sponsors['liberapay']}}">
|
||||
<p class="help-text small text-muted font-weight-bold">
|
||||
Example: liberapay.com/pixelfed
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="opencollective" class="col-sm-3 col-form-label font-weight-bold text-right">OpenCollective</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control" id="opencollective" name="opencollective" placeholder="opencollective.com/pixelfed" value="{{$sponsors['opencollective']}}">
|
||||
<p class="help-text small text-muted font-weight-bold">
|
||||
Example: opencollective.com/pixelfed
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group row">
|
||||
<div class="col-12 text-right">
|
||||
<button type="submit" class="btn btn-primary font-weight-bold float-right">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@endsection
|
|
@ -114,6 +114,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
|
|||
Route::get('exp/rec', 'ApiController@userRecommendations');
|
||||
Route::post('discover/tag/subscribe', 'HashtagFollowController@store')->middleware('throttle:maxHashtagFollowsPerHour,60')->middleware('throttle:maxHashtagFollowsPerDay,1440');;
|
||||
Route::get('discover/tag/list', 'HashtagFollowController@getTags');
|
||||
Route::get('profile/sponsor/{id}', 'ProfileSponsorController@get');
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -261,6 +262,8 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
|
|||
Route::get('invites/create', 'UserInviteController@create')->name('settings.invites.create');
|
||||
Route::post('invites/create', 'UserInviteController@store');
|
||||
Route::get('invites', 'UserInviteController@show')->name('settings.invites');
|
||||
Route::get('sponsor', 'SettingsController@sponsor')->name('settings.sponsor');
|
||||
Route::post('sponsor', 'SettingsController@sponsorStore');
|
||||
});
|
||||
|
||||
Route::group(['prefix' => 'site'], function () {
|
||||
|
|
Loading…
Add table
Reference in a new issue