Compare commits
No commits in common. "c352d4d273c82bcb963c5732d13d600a95f9d363" and "9a7aa89362e498b5f594e7e095db1527fff38792" have entirely different histories.
c352d4d273
...
9a7aa89362
4
.gitignore
vendored
4
.gitignore
vendored
@ -29,7 +29,5 @@ Homestead.yaml
|
||||
Homestead.json
|
||||
/.vagrant
|
||||
.phpunit.result.cache
|
||||
legacypublic
|
||||
migrated_artworks_files.tar.gz
|
||||
migrated_thumbnail_files.tar.gz
|
||||
|
||||
site/.yarn/releases/yarn-1.22.19.cjs
|
||||
|
@ -10,7 +10,6 @@ services:
|
||||
volumes:
|
||||
- ./site:/var/www/html
|
||||
- ./static:/static
|
||||
#- ./legacypublic:/legacypublic
|
||||
environment:
|
||||
TZ: UTC
|
||||
PUID: ${UID:-1000}
|
||||
@ -23,7 +22,6 @@ services:
|
||||
LARAVEL_QUEUE_ENABLED: true
|
||||
LARAVEL_QUEUE_OPTIONS: --timeout=60 --tries=3 redis
|
||||
LARAVEL_SCHEDULE_ENABLED: true
|
||||
PHP_OPEN_BASEDIR: "/var/www/html:/static"
|
||||
ports:
|
||||
- "80:80"
|
||||
links:
|
||||
|
@ -1,51 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use App\Models\Artwork;
|
||||
use App\Models\Episode;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AddMissingArtworkIdsToEpisodes extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'naart:artwork-to-episodes';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Command description';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$oldEpisodes = DB::connection('legacy')->select('SELECT * FROM episodes WHERE artwork_id IS NOT NULL AND published = 1');
|
||||
foreach($oldEpisodes as $oldEpisode) {
|
||||
$this->info('Checking old episode ' . $oldEpisode->show_date);
|
||||
$episode = Episode::where('legacy_id', $oldEpisode->id)->first();
|
||||
$artwork = Artwork::where('legacy_id', $oldEpisode->artwork_id)->first();
|
||||
if ($episode && $artwork) {
|
||||
$this->line('Have artwork ' . $artwork->title . ' for episode ' . $episode->title);
|
||||
$episode->artwork_id = $artwork->id;
|
||||
$episode->timestamps = false;
|
||||
if ($episode->isDirty()) {
|
||||
$this->info('I need to update this.');
|
||||
//$episode->save();
|
||||
} else {
|
||||
$this->line('No Change Needed.');
|
||||
}
|
||||
} else {
|
||||
$this->error('I am lost.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,125 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
use Intervention\Image\Facades\Image;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\User;
|
||||
use App\Models\Artist;
|
||||
use App\Models\Podcast;
|
||||
use App\Models\Episode;
|
||||
use App\Models\Artwork;
|
||||
use ImageOptimizer;
|
||||
|
||||
class GetMissingArtworkMovedCommand extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'naart:wrapup';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Command description';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$missingArtworks = DB::connection('legacy')->select('SELECT * FROM artworks WHERE id > 30835 AND approved_by IS NOT NULL');
|
||||
foreach ($missingArtworks as $missingArtwork) {
|
||||
$localPath = '/legacypublic' . $missingArtwork->path . '/' . $missingArtwork->filename;
|
||||
$user = User::where('legacy_id', $missingArtwork->user_id)->with('artists')->first();
|
||||
$artwork = Artwork::where('legacy_id', $missingArtwork->id)->first();
|
||||
$episode = Episode::where('legacy_id', $missingArtwork->episode_id)->first();
|
||||
$approver = User::where('legacy_id', $missingArtwork->approved_by)->with('artists')->first();
|
||||
if ($artwork) {
|
||||
$this->line('Artwork ID: ' . $artwork->id);
|
||||
}
|
||||
if ($episode) {
|
||||
$this->line('Episode: ' . $episode->episode_number . ' "' . $episode->title . '"');
|
||||
}
|
||||
if (!$artwork) {
|
||||
$newFilename = $this->uniqueName($episode, $user, $missingArtwork);
|
||||
$state = [
|
||||
'title' => $missingArtwork->title,
|
||||
'description' => '',
|
||||
'artist_id' => $user->artists->first()->id,
|
||||
'episode_id' => $episode->id,
|
||||
'podcast_id' => 1,
|
||||
'overlay_id' => null,
|
||||
'filename' => $newFilename . '.jpg',
|
||||
'created_at' => Carbon::parse($missingArtwork->created_at),
|
||||
'updated_at' => Carbon::parse($missingArtwork->updated_at),
|
||||
'legacy_id' => $missingArtwork->id,
|
||||
'approved_by' => $approver->artists->first()->id,
|
||||
];
|
||||
$artwork = Artwork::factory()->state($state)->create();
|
||||
}
|
||||
$this->line('Artist: ' . $user->artists->first()->name);
|
||||
$this->line($localPath);
|
||||
$filename = 'artworks/' . $artwork->filename;
|
||||
$thumbnailName = 'thumbnails/' . $artwork->filename;
|
||||
if (Storage::disk('static')->exists($filename)) {
|
||||
$this->error($filename . ' already exists. ' . Storage::disk('static')->size($filename));
|
||||
}
|
||||
if (Storage::disk('static')->exists($thumbnailName)) {
|
||||
$this->error($thumbnailName . ' already exists. ' . Storage::disk('static')->size($thumbnailName));
|
||||
}
|
||||
$img = Image::make($localPath)
|
||||
->resize(3000, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
})
|
||||
->encode('jpg', 100);
|
||||
$thumbImg = Image::make($localPath)
|
||||
->resize(512, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
})
|
||||
->encode('jpg', 100);
|
||||
$imgLocation = Storage::disk('static')->put($filename, $img);
|
||||
$thumbLocation = Storage::disk('static')->put($thumbnailName, $thumbImg);
|
||||
$size_before = Storage::disk('static')->size($filename);
|
||||
$thumb_size_before = Storage::disk('static')->size($thumbnailName);
|
||||
ImageOptimizer::optimize(Storage::disk('static')->path($filename));
|
||||
ImageOptimizer::optimize(Storage::disk('static')->path($thumbnailName));
|
||||
$size_after = Storage::disk('static')->size($filename);
|
||||
$thumb_size_after = Storage::disk('static')->size($thumbnailName);
|
||||
$diff = $size_before - $size_after;
|
||||
$thumbDiff = $thumb_size_before - $thumb_size_after;
|
||||
$this->line('Filesize before: ' . $size_before);
|
||||
$this->line('Filesize after: ' . $size_after);
|
||||
$this->line('Thumb Filesize before: ' . $thumb_size_before);
|
||||
$this->line('Thumb Filesize after: ' . $thumb_size_after);
|
||||
}
|
||||
}
|
||||
|
||||
private function checkExistingFilename($name) {
|
||||
$checkArtwork = Artwork::where('filename', $name . '.jpg')->count();
|
||||
return $checkArtwork;
|
||||
}
|
||||
|
||||
private function uniqueName($episode, $user, $missingArtwork) {
|
||||
$i = 0;
|
||||
$uniqueFilename = $episode->episode_date->format('Y/m/') . Str::slug($user->artists->first()->name . '-' . $missingArtwork->title) . '_' . $missingArtwork->id;
|
||||
$exists = $this->checkExistingFilename($uniqueFilename);
|
||||
if (!$exists) {
|
||||
return $uniqueFilename;
|
||||
}
|
||||
while(!$exists) {
|
||||
$i++;
|
||||
$uniqueFilename = $uniqueFilename . '_v' . $i;
|
||||
$exists = $this->checkExistingFilename($uniqueFilename);
|
||||
}
|
||||
return $uniqueFilename;
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
if (!function_exists('numberSuffix')) {
|
||||
function numberSuffix($number) {
|
||||
if (!is_int($number) || $number < 1) {
|
||||
return $number;
|
||||
}
|
||||
|
||||
$lastDigit = $number % 10;
|
||||
$secondLastDigit = ($number / 10) % 10;
|
||||
|
||||
if ($secondLastDigit == 1) {
|
||||
return 'th';
|
||||
}
|
||||
|
||||
switch ($lastDigit) {
|
||||
case 1:
|
||||
return 'st';
|
||||
case 2:
|
||||
return 'nd';
|
||||
case 3:
|
||||
return 'rd';
|
||||
default:
|
||||
return 'th';
|
||||
}
|
||||
}
|
||||
}
|
@ -3,18 +3,7 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Artwork;
|
||||
use App\Models\Podcast;
|
||||
use App\Models\Episode;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rules\File;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Str;
|
||||
use Intervention\Image\Facades\Image;
|
||||
use ImageOptimizer;
|
||||
|
||||
class ArtworkController extends Controller
|
||||
{
|
||||
@ -25,19 +14,7 @@ class ArtworkController extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$user = auth()->user();
|
||||
$artworks = Artwork::whereNotNull('approved_by')
|
||||
->with('artist')
|
||||
->orderBy('episode_id', 'desc')
|
||||
->orderBy('created_at', 'desc')
|
||||
->paginate($perPage = 100, $columns = ['*'], $pageName = 'artworks');
|
||||
$podcasts = Podcast::where('published', true)->with('episodes')->get();
|
||||
return view('explore.artworks', [
|
||||
'user' => $user,
|
||||
'pageTitle' => 'Explore',
|
||||
'artworks' => $artworks,
|
||||
'podcasts' => $podcasts,
|
||||
]);
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,13 +24,7 @@ public function index()
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$user = auth()->user();
|
||||
$podcasts = Podcast::where('published', true)->with('episodes')->get();
|
||||
return view('artworks.submit', [
|
||||
'user' => $user,
|
||||
'pageTitle' => 'Submit New Artwork',
|
||||
'podcasts' => $podcasts,
|
||||
]);
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,79 +33,20 @@ public function create()
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'title' => ['required', 'max:255',],
|
||||
'podcast' => ['required', 'exists:podcasts,id',],
|
||||
'description' => ['nullable',],
|
||||
'file' => ['required', 'image', Rule::dimensions()->ratio(1)->minWidth(512),],
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return back()
|
||||
->withErrors($validator)
|
||||
->withInput();
|
||||
}
|
||||
Log::channel('artwork_import')->info('making new artwork model.');
|
||||
$podcast = Podcast::where('id', $request->podcast)->with(['episodes' => function($query) {
|
||||
$query->orderBy('episode_number', 'desc')->limit(1);
|
||||
}])->first();
|
||||
$episode = $podcast->episodes->first();
|
||||
$artist = auth()->user()->artists()->first();
|
||||
$rawFile = $request->file('file');
|
||||
$filename = now()->format('Y')
|
||||
. '/'
|
||||
. now()->format('m')
|
||||
. '/'
|
||||
. Str::slug($artist->name)
|
||||
. '-'
|
||||
. Str::slug($request->title)
|
||||
. '_'
|
||||
. Str::random(8)
|
||||
. '.jpg';
|
||||
$artwork = Artwork::factory()->state([
|
||||
'title' => $request->title,
|
||||
'artist_id' => $artist->id,
|
||||
'description' => $request->description,
|
||||
'overlay_id' => null,
|
||||
'podcast_id' => $podcast->id,
|
||||
'episode_id' => $episode->id,
|
||||
'filename' => $filename,
|
||||
])->create();
|
||||
$img = Image::make($rawFile)->resize(3000, null, function($constraint){
|
||||
$constraint->aspectRatio();
|
||||
})
|
||||
->encode('jpg', 100)
|
||||
->save(Storage::disk('static')->path('/artworks') . '/' . $artwork->filename);
|
||||
$thumbImg = Image::make($request->file('file'))->resize(512, null, function($constraint){
|
||||
$constraint->aspectRatio();
|
||||
})
|
||||
->encode('jpg', 100)
|
||||
->save(Storage::disk('static')->path('/thumbnails') . '/' . $artwork->filename);
|
||||
ImageOptimizer::optimize(Storage::disk('static')->path('/artworks/' . $artwork->filename));
|
||||
ImageOptimizer::optimize(Storage::disk('static')->path('/thumbnails/' . $artwork->filename));
|
||||
return redirect('/artworks/' . $artwork->id);
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param the id of the \App\Models\Artwork $id
|
||||
* @param \App\Models\Artwork $artwork
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Request $request, $id)
|
||||
public function show(Artwork $artwork)
|
||||
{
|
||||
$user = auth()->user();
|
||||
$artwork = Artwork::where('id', $id)
|
||||
->with('podcast')
|
||||
->with('episode')
|
||||
->with('artist')
|
||||
->first();
|
||||
return view('artworks.artwork', [
|
||||
'artwork' => $artwork,
|
||||
'user' => $user,
|
||||
]);
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,51 +4,28 @@
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Models\Artwork;
|
||||
use App\Models\Artist;
|
||||
use App\Models\Episode;
|
||||
|
||||
|
||||
class PageController extends Controller
|
||||
{
|
||||
public function landing(Request $request)
|
||||
public function landing()
|
||||
{
|
||||
$user = auth()->user();
|
||||
$headerCounters = $this->getHeaderCounters();
|
||||
$recentEpisodes = $this->mostRecentEpisodes();
|
||||
$recentSubmissions = $this->mostRecentSubmissions();
|
||||
$leaderboard = $this->leaderboardTwelveMonths();
|
||||
|
||||
return view('home.page', [
|
||||
'user' => $user,
|
||||
'pageTitle' => 'Home',
|
||||
'headerCounters' => $headerCounters,
|
||||
'recentEpisodes' => $recentEpisodes,
|
||||
'recentSubmissions' => $recentSubmissions,
|
||||
'leaderboard' => $leaderboard,
|
||||
'preferredTheme' => $request->session()->get('preferred_theme') ?? 'dark',
|
||||
]);
|
||||
}
|
||||
|
||||
private function mostRecentSubmissions() {
|
||||
$artworks = Cache::remember('latestSubmissions', 30, function() {
|
||||
return Artwork::whereNotNull('approved_by')
|
||||
->with('artist')
|
||||
->with('episode')
|
||||
->with('podcast')
|
||||
->orderBy('created_at', 'desc')
|
||||
->limit(50)
|
||||
->get();
|
||||
});
|
||||
return $artworks;
|
||||
}
|
||||
|
||||
private function mostRecentEpisodes()
|
||||
{
|
||||
$episodes = Cache::remember('latestEpisodes', 30, function() {
|
||||
return Episode::where('published', true)
|
||||
->whereHas('artwork')
|
||||
->with('podcast')
|
||||
->with('artwork')
|
||||
->with('artwork.artist')
|
||||
@ -99,46 +76,4 @@ private function numberFormatPrecision($number, $precision = 2, $separator = '.'
|
||||
return $response;
|
||||
}
|
||||
|
||||
private function leaderboardTwelveMonths() {
|
||||
$endDate = now()->endOfDay()->subYear()->format('Y-m-d');
|
||||
$leaderboard = DB::table('episodes')
|
||||
->join('artworks', 'artworks.id', '=', 'episodes.artwork_id')
|
||||
->join('artists', 'artists.id', '=', 'artworks.artist_id')
|
||||
->select([
|
||||
DB::raw('artists.id as artistId'),
|
||||
DB::raw('artists.name as artistName'),
|
||||
DB::raw('count(artworks.id) as artworkCount')
|
||||
])
|
||||
->where('episodes.published', 1)
|
||||
->where('episodes.episode_date', '>=', $endDate)
|
||||
->groupBy('artistId')
|
||||
->orderByDesc('artworkCount')
|
||||
->limit(10)
|
||||
->get();
|
||||
$leaderboard = $this->addArtistModelToLeaderboard($leaderboard);
|
||||
return $leaderboard;
|
||||
}
|
||||
|
||||
private function addArtistModelToLeaderboard($leaderboard) {
|
||||
$artistIds = [];
|
||||
foreach ($leaderboard as $lb) {
|
||||
$artistIds[] = $lb->artistId;
|
||||
}
|
||||
$artists = Artist::whereIn('id', $artistIds)->get();
|
||||
foreach ($leaderboard as $lb) {
|
||||
$lb->artist = $artists->where('id', $lb->artistId)->first();
|
||||
}
|
||||
$p = 0;
|
||||
foreach ($leaderboard as $lb) {
|
||||
$p++;
|
||||
$lb->position = $p;
|
||||
}
|
||||
return $leaderboard;
|
||||
}
|
||||
|
||||
public function setSessionTheme(Request $request) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ class Kernel extends HttpKernel
|
||||
],
|
||||
|
||||
'api' => [
|
||||
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
|
@ -56,12 +56,12 @@ public function handle(): void
|
||||
$this->createArtwork($basename);
|
||||
return;
|
||||
}
|
||||
$img = Image::make('/legacypublic' . $this->artwork->path . '/' . $this->artwork->filename)
|
||||
$img = Image::make('https://noagendaartgenerator.com' . $this->artwork->path . '/' . $this->artwork->filename)
|
||||
->resize(3000, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
})
|
||||
->encode('jpg', 100);
|
||||
$thumbImg = Image::make('/legacypublic' . $this->artwork->path . '/' . $this->artwork->filename)
|
||||
$thumbImg = Image::make('https://noagendaartgenerator.com' . $this->artwork->path . '/' . $this->artwork->filename)
|
||||
->resize(512, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
})
|
||||
|
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire;
|
||||
|
||||
use Livewire\Component;
|
||||
|
||||
class Counter extends Component
|
||||
{
|
||||
public $count = 1;
|
||||
|
||||
public function increment()
|
||||
{
|
||||
$this->count++;
|
||||
}
|
||||
|
||||
public function decrement()
|
||||
{
|
||||
$this->count--;
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.counter');
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire;
|
||||
|
||||
use Livewire\Component;
|
||||
|
||||
class Themeswitch extends Component
|
||||
{
|
||||
|
||||
public function light()
|
||||
{
|
||||
session(['preferred_theme' => 'light']);
|
||||
}
|
||||
|
||||
public function dark()
|
||||
{
|
||||
session(['preferred_theme' => 'dark']);
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.themeswitch');
|
||||
}
|
||||
}
|
@ -16,12 +16,6 @@ class Artist extends Model
|
||||
|
||||
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'deleted_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongs_to(User::class);
|
||||
|
@ -16,12 +16,6 @@ class Artwork extends Model
|
||||
|
||||
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'deleted_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function podcast()
|
||||
{
|
||||
return $this->belongsTo(Podcast::class);
|
||||
|
@ -14,13 +14,6 @@ class Episode extends Model
|
||||
|
||||
protected $dates = ['episode_date', 'created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
protected $casts = [
|
||||
'episode_date' => 'date',
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'deleted_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function podcast()
|
||||
{
|
||||
return $this->belongsTo(Podcast::class);
|
||||
|
@ -16,12 +16,6 @@ class Overlay extends Model
|
||||
|
||||
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'deleted_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function artist()
|
||||
{
|
||||
return $this->belongsTo(Artist::class);
|
||||
|
@ -16,13 +16,6 @@ class Podcast extends Model
|
||||
|
||||
protected $dates = ['created_at', 'updated_at', 'deleted_at', 'added_at'];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'deleted_at' => 'datetime',
|
||||
'added_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function episodes()
|
||||
{
|
||||
return $this->hasMany(Episode::class);
|
||||
|
@ -14,6 +14,8 @@ class User extends Authenticatable
|
||||
|
||||
protected $table = 'users';
|
||||
|
||||
protected $dates = ['created_at', 'updated_at'];
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
@ -42,17 +44,6 @@ class User extends Authenticatable
|
||||
*/
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be appended.
|
||||
*
|
||||
* @var array<string, string>
|
||||
*/
|
||||
protected $appends = [
|
||||
|
||||
];
|
||||
|
||||
public function artists()
|
||||
|
@ -13,11 +13,6 @@ class Wallet extends Model
|
||||
|
||||
protected $dates = ['created_at', 'updated_at'];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function walletType()
|
||||
{
|
||||
return $this->hasOne(WalletType::class);
|
||||
|
@ -13,11 +13,6 @@ class WalletType extends Model
|
||||
|
||||
protected $dates = ['created_at', 'updated_at'];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function wallets()
|
||||
{
|
||||
return $this->hasMany(Wallet::class);
|
||||
|
@ -3,9 +3,6 @@
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use App\Models\Podcast;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@ -22,8 +19,6 @@ public function register(): void
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
Paginator::useBootstrapFive();
|
||||
$publishedPodcasts = Podcast::where('published', true)->select(['name', 'slug'])->get();
|
||||
View::share(['navPodcasts' => $publishedPodcasts]);
|
||||
//
|
||||
}
|
||||
}
|
||||
|
@ -1,58 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers\Filament;
|
||||
|
||||
use Filament\Http\Middleware\Authenticate;
|
||||
use Filament\Http\Middleware\DisableBladeIconComponents;
|
||||
use Filament\Http\Middleware\DispatchServingFilamentEvent;
|
||||
use Filament\Pages;
|
||||
use Filament\Panel;
|
||||
use Filament\PanelProvider;
|
||||
use Filament\Support\Colors\Color;
|
||||
use Filament\Widgets;
|
||||
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies;
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
||||
use Illuminate\Routing\Middleware\SubstituteBindings;
|
||||
use Illuminate\Session\Middleware\AuthenticateSession;
|
||||
use Illuminate\Session\Middleware\StartSession;
|
||||
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||
|
||||
class AdminPanelProvider extends PanelProvider
|
||||
{
|
||||
public function panel(Panel $panel): Panel
|
||||
{
|
||||
return $panel
|
||||
->default()
|
||||
->id('admin')
|
||||
->path('admin')
|
||||
->login()
|
||||
->colors([
|
||||
'primary' => Color::Amber,
|
||||
])
|
||||
->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources')
|
||||
->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
|
||||
->pages([
|
||||
Pages\Dashboard::class,
|
||||
])
|
||||
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets')
|
||||
->widgets([
|
||||
Widgets\AccountWidget::class,
|
||||
Widgets\FilamentInfoWidget::class,
|
||||
])
|
||||
->middleware([
|
||||
EncryptCookies::class,
|
||||
AddQueuedCookiesToResponse::class,
|
||||
StartSession::class,
|
||||
AuthenticateSession::class,
|
||||
ShareErrorsFromSession::class,
|
||||
VerifyCsrfToken::class,
|
||||
SubstituteBindings::class,
|
||||
DisableBladeIconComponents::class,
|
||||
DispatchServingFilamentEvent::class,
|
||||
])
|
||||
->authMiddleware([
|
||||
Authenticate::class,
|
||||
]);
|
||||
}
|
||||
}
|
@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const HOME = '/';
|
||||
public const HOME = '/dashboard';
|
||||
|
||||
/**
|
||||
* Define your route model bindings, pattern filters, and other route configuration.
|
||||
|
@ -2,23 +2,16 @@
|
||||
"name": "laravel/laravel",
|
||||
"type": "project",
|
||||
"description": "The skeleton application for the Laravel framework.",
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"framework"
|
||||
],
|
||||
"keywords": ["laravel", "framework"],
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"andreiio/blade-remix-icon": "^2.6",
|
||||
"blade-ui-kit/blade-icons": "^1.5",
|
||||
"filament/filament": "^3.0-stable",
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"intervention/image": "^2.7",
|
||||
"laravel/framework": "^10.10",
|
||||
"laravel/sanctum": "^3.3",
|
||||
"laravel/sanctum": "^3.2",
|
||||
"laravel/tinker": "^2.8",
|
||||
"livewire/livewire": "^3.2",
|
||||
"mckenziearts/blade-untitledui-icons": "^1.2",
|
||||
"livewire/livewire": "^2.12",
|
||||
"spatie/laravel-image-optimizer": "^1.7"
|
||||
},
|
||||
"require-dev": {
|
||||
@ -36,10 +29,7 @@
|
||||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/"
|
||||
},
|
||||
"files": [
|
||||
"app/Helpers/pcagHelpers.php"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
@ -49,8 +39,7 @@
|
||||
"scripts": {
|
||||
"post-autoload-dump": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||
"@php artisan package:discover --ansi",
|
||||
"@php artisan filament:upgrade"
|
||||
"@php artisan package:discover --ansi"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
||||
|
2986
site/composer.lock
generated
2986
site/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -169,7 +169,6 @@
|
||||
App\Providers\AuthServiceProvider::class,
|
||||
// App\Providers\BroadcastServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\Filament\AdminPanelProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
])->toArray(),
|
||||
|
||||
|
@ -1,183 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Icons Sets
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| With this config option you can define a couple of
|
||||
| default icon sets. Provide a key name for your icon
|
||||
| set and a combination from the options below.
|
||||
|
|
||||
*/
|
||||
|
||||
'sets' => [
|
||||
|
||||
// 'default' => [
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Icons Path
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | Provide the relative path from your app root to your SVG icons
|
||||
// | directory. Icons are loaded recursively so there's no need to
|
||||
// | list every sub-directory.
|
||||
// |
|
||||
// | Relative to the disk root when the disk option is set.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'path' => 'resources/svg',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Filesystem Disk
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | Optionally, provide a specific filesystem disk to read
|
||||
// | icons from. When defining a disk, the "path" option
|
||||
// | starts relatively from the disk root.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'disk' => '',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Default Prefix
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define a default prefix for
|
||||
// | your icons. The dash separator will be applied automatically
|
||||
// | to every icon name. It's required and needs to be unique.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'prefix' => 'icon',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Fallback Icon
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define a fallback
|
||||
// | icon when an icon in this set cannot be found.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'fallback' => '',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Default Set Classes
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define some classes which
|
||||
// | will be applied by default to all icons within this set.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'class' => '',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Default Set Attributes
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define some attributes which
|
||||
// | will be applied by default to all icons within this set.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'attributes' => [
|
||||
// // 'width' => 50,
|
||||
// // 'height' => 50,
|
||||
// ],
|
||||
//
|
||||
// ],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global Default Classes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define some classes which
|
||||
| will be applied by default to all icons.
|
||||
|
|
||||
*/
|
||||
|
||||
'class' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global Default Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define some attributes which
|
||||
| will be applied by default to all icons.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [
|
||||
// 'width' => 50,
|
||||
// 'height' => 50,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global Fallback Icon
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define a global fallback
|
||||
| icon when an icon in any set cannot be found. It can
|
||||
| reference any icon from any configured set.
|
||||
|
|
||||
*/
|
||||
|
||||
'fallback' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Components
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These config options allow you to define some
|
||||
| settings related to Blade Components.
|
||||
|
|
||||
*/
|
||||
|
||||
'components' => [
|
||||
|
||||
/*
|
||||
|----------------------------------------------------------------------
|
||||
| Disable Components
|
||||
|----------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to disable Blade components
|
||||
| completely. It's useful to avoid performance problems
|
||||
| when working with large icon libraries.
|
||||
|
|
||||
*/
|
||||
|
||||
'disabled' => false,
|
||||
|
||||
/*
|
||||
|----------------------------------------------------------------------
|
||||
| Default Icon Component Name
|
||||
|----------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define the name
|
||||
| for the default Icon class component.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => 'icon',
|
||||
|
||||
],
|
||||
|
||||
];
|
@ -56,26 +56,6 @@
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'strict' => false,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
|
||||
'legacy' => [
|
||||
'driver' => 'mysql',
|
||||
'url' => env('LEGACY_DATABASE_URL'),
|
||||
'host' => env('LEGACY_DB_HOST', '127.0.0.1'),
|
||||
'port' => env('LEGACY_DB_PORT', '3306'),
|
||||
'database' => env('LEGACY_DB_DATABASE', 'forge'),
|
||||
'username' => env('LEGACY_DB_USERNAME', 'forge'),
|
||||
'password' => env('LEGACY_DB_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_SOCKET', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
|
@ -39,7 +39,6 @@ public function definition()
|
||||
'created_at' => $created,
|
||||
'updated_at' => $created,
|
||||
'legacy_id' => null,
|
||||
'approved_by' => null,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,6 @@ public function definition()
|
||||
'email_verified_at' => now(),
|
||||
'password' => $password,
|
||||
'remember_token' => Str::random(10),
|
||||
'legacy_id' => null,
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('artworks', function (Blueprint $table) {
|
||||
$table->bigInteger('approved_by')->nullable()->after('filename');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('artworks', function (Blueprint $table) {
|
||||
$table->dropColumn('approved_by');
|
||||
});
|
||||
}
|
||||
};
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->integer('legacy_id')->nullable()->unsigned();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('legacy_id');
|
||||
});
|
||||
}
|
||||
};
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('artworks', function (Blueprint $table) {
|
||||
$table->string('legacy_filename')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('artworks', function (Blueprint $table) {
|
||||
$table->dropColumn('legacy_filename');
|
||||
});
|
||||
}
|
||||
};
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->string('theme')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('theme');
|
||||
});
|
||||
}
|
||||
};
|
@ -25,7 +25,7 @@ public function run(): void
|
||||
{
|
||||
//$this->populateLegacyArtworks();
|
||||
//die();
|
||||
$current_page = 0;
|
||||
$current_page = 283;
|
||||
$totalArtworks = 0;
|
||||
$missingArtworks = 0;
|
||||
$missingModel = 0;
|
||||
|
@ -1,990 +0,0 @@
|
||||
/** theme "easy on the eyes" for Adminer by p.galkaev@miraidenshi-tech.jp */
|
||||
|
||||
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:400,900);
|
||||
|
||||
/* reset
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
*,
|
||||
*:after,
|
||||
*:before {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: none;
|
||||
cursor: default;
|
||||
-webkit-appearance: none;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-print-color-adjust: exact;
|
||||
}
|
||||
|
||||
/* for font awesome */
|
||||
*:not(.fa) {
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
}
|
||||
|
||||
#logins a, #tables a, #tables span {
|
||||
background: none;
|
||||
}
|
||||
|
||||
p,
|
||||
form
|
||||
{
|
||||
margin: 0;
|
||||
margin-bottom: 20px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
p:last-child,
|
||||
form:last-child
|
||||
{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.type,
|
||||
.options select
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
sup{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* js tooltip
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
.js .column {
|
||||
position: absolute;
|
||||
padding: 0;
|
||||
margin-top: 0;
|
||||
top: 50px;
|
||||
z-index: 9;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.js .column:not(.hidden){
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.js .column a{
|
||||
text-align: center;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
flex-grow: 1;
|
||||
background: #fb4;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.js .column a:hover{
|
||||
background-color: gold;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#help {
|
||||
position: absolute;
|
||||
border: none;
|
||||
background: #fb4;
|
||||
font-family: monospace;
|
||||
z-index: 1;
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#help a{
|
||||
color: black;
|
||||
height: 100%;
|
||||
display: block;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#help a:hover{
|
||||
background-color: gold;
|
||||
}
|
||||
|
||||
#help, .js .column{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* error and message
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
.error, .message {
|
||||
padding: 5px 15px 7px;
|
||||
margin: 10px 0;
|
||||
font-size: 14px;
|
||||
display: table;
|
||||
border-radius: 3px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.error{
|
||||
background-color: crimson;
|
||||
}
|
||||
|
||||
.message{
|
||||
background-color: seagreen;
|
||||
}
|
||||
|
||||
/* scroll bar
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
::selection {
|
||||
background-color: #2a65ae;
|
||||
}
|
||||
/*
|
||||
::-moz-selection {
|
||||
background-color: #333;
|
||||
}*/
|
||||
|
||||
/* scroll bar
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
::-webkit-scrollbar {
|
||||
background-color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: #555;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar:vertical{
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:vertical{
|
||||
border-left: 0px solid black;
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar:horizontal{
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:horizontal{
|
||||
border-top: 0px solid black;
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-corner{
|
||||
color: black;
|
||||
background-color: black;
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
::-webkit-resizer{
|
||||
background-color: #555;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
/* html and body
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
|
||||
body{
|
||||
min-height: 100%;
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
color: #ccc;
|
||||
background-color: black;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
/* headings
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
h1{
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
padding: 0 18px;
|
||||
border-bottom: 1px solid #444;
|
||||
font-weight: bold;
|
||||
height: 70px;
|
||||
line-height: 70px;
|
||||
color: #555;
|
||||
background: none;
|
||||
}
|
||||
|
||||
h2{
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-left: 50px;
|
||||
border-bottom: 1px solid #333;
|
||||
color: #2CC990;
|
||||
font-weight: bold;
|
||||
background: none;
|
||||
height: 70px;
|
||||
line-height: 70px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
h3{
|
||||
font-weight: bold;
|
||||
font-size: 24px;
|
||||
margin: 40px 0 10px;
|
||||
color: #2CC990;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
/* links
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
a{
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a:hover, a:visited{
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
a:link:hover, a:visited:hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* table
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
table{
|
||||
margin: 0;
|
||||
margin-bottom: 20px;
|
||||
border: 0;
|
||||
border-collapse: collapse;
|
||||
font-size: 13px;
|
||||
width: 100%;
|
||||
/*table-layout: fixed;*/
|
||||
}
|
||||
|
||||
tr:hover th,
|
||||
.checked th
|
||||
{
|
||||
background: #333 !important;
|
||||
color: #ddd;
|
||||
border-color: none;
|
||||
}
|
||||
|
||||
tr:hover td,
|
||||
.checked td
|
||||
{
|
||||
background: #222 !important;
|
||||
color: #ddd;
|
||||
border-color: none;
|
||||
}
|
||||
|
||||
.links + table tr:hover th{
|
||||
color: #ddd;
|
||||
background: #336f5a !important;
|
||||
}
|
||||
|
||||
.links + table tr:hover td{
|
||||
background: #2CC990 !important;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
p + table{
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
tr{
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
td, th {
|
||||
border: 0;
|
||||
border-right: 1px solid #333;
|
||||
padding: 0 12px;
|
||||
line-height: 30px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
td:last-child,
|
||||
th:last-child{
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
th{
|
||||
position: relative;
|
||||
background: #222;
|
||||
font-weight: normal;
|
||||
width: 17%;
|
||||
border-left: 5px solid #336f5a;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .13);
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.checkable td:first-child{
|
||||
background: #222;
|
||||
border-right-style: solid;
|
||||
}
|
||||
|
||||
table.checkable th{
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
td{
|
||||
background: #000;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .1);
|
||||
}
|
||||
|
||||
.odd th{
|
||||
background: #222;
|
||||
}
|
||||
|
||||
.odd td{
|
||||
background: #000;
|
||||
}
|
||||
|
||||
thead td,
|
||||
thead th
|
||||
{
|
||||
background: transparent !important;
|
||||
color: #ccc;
|
||||
border-right-style: dashed;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
table#edit-fields td,
|
||||
table#edit-fields th
|
||||
{
|
||||
padding: 0;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
table#edit-fields thead th,
|
||||
table#edit-fields thead td
|
||||
{
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
thead tr:hover th,
|
||||
thead tr:hover td,
|
||||
.links + table thead tr:hover th,
|
||||
.links + table thead tr:hover td,
|
||||
table#edit-fields thead tr:hover th,
|
||||
table#edit-fields thead tr:hover td
|
||||
{
|
||||
background-color: transparent !important;
|
||||
color: inherit !important;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .1) !important;
|
||||
}
|
||||
|
||||
thead tr:hover th{
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .13) !important;
|
||||
}
|
||||
|
||||
thead th {
|
||||
border-left-color: transparent;
|
||||
text-align: left;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* form
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
input,
|
||||
select,
|
||||
textarea
|
||||
{
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
height: 30px;
|
||||
background-color: #ddd;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
line-height: 28px;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
padding-left: 10px;
|
||||
-webkit-appearance: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input:hover,
|
||||
select:hover,
|
||||
input:focus,
|
||||
select:focus
|
||||
{
|
||||
background-color: #bbb;
|
||||
}
|
||||
|
||||
th input,
|
||||
td input,
|
||||
th select,
|
||||
td select,
|
||||
td textarea
|
||||
{
|
||||
background-color: transparent;
|
||||
color: pink;
|
||||
width: 100%;
|
||||
display: inline;
|
||||
border-left: 1px dashed #555;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
th input:hover,
|
||||
th select:hover,
|
||||
td input:hover,
|
||||
td select:hover,
|
||||
th input:focus,
|
||||
th select:focus,
|
||||
td input:focus,
|
||||
td select:focus
|
||||
{
|
||||
background-color: rgba(255, 255, 255, .15);
|
||||
}
|
||||
|
||||
th input[type='checkbox'],
|
||||
th input[type='radio'],
|
||||
td input[type='checkbox'],
|
||||
td input[type='radio']{
|
||||
border-left: none;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
|
||||
td input + a,
|
||||
td input + a:visited
|
||||
{
|
||||
text-transform: uppercase;
|
||||
margin-left: 5px;
|
||||
color: dodgerblue;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
td input + a:hover{
|
||||
color: lightskyblue !important;
|
||||
}
|
||||
|
||||
input.icon{
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
input.icon::after{
|
||||
content: '';
|
||||
}
|
||||
|
||||
th select,
|
||||
td select
|
||||
{
|
||||
color: lightcoral;
|
||||
}
|
||||
|
||||
input[type='number'] {
|
||||
min-width: 55px;
|
||||
}
|
||||
|
||||
/* radio */
|
||||
input[type='radio']{
|
||||
-webkit-appearance: radio;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
vertical-align: middle;
|
||||
margin-left: 8px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* checkbox */
|
||||
input[type='checkbox']{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-right: 6px;
|
||||
position: relative;
|
||||
border-radius: 2px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
input[type=checkbox]:hover{
|
||||
border-color: white;
|
||||
}
|
||||
|
||||
input[type=checkbox]::after {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
content: '×';
|
||||
left: 17%;
|
||||
top: 4.5%;
|
||||
color: #ccc;
|
||||
font-size: 35px;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input[type=checkbox]:hover::after {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
input[type=checkbox]:checked::after {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
td input[type='checkbox'],
|
||||
th input[type='checkbox']
|
||||
{
|
||||
margin-left: 10px;
|
||||
margin-right: 26px;
|
||||
}
|
||||
|
||||
td input[type='checkbox']::after{
|
||||
left: 10%;
|
||||
top: -2px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
td input[type='checkbox']:hover::after{
|
||||
color: #555;
|
||||
}
|
||||
|
||||
td input[type='checkbox']:checked::after{
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
p input:first-child{
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
label{
|
||||
line-height: 27px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
th label{
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
label input {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* submit */
|
||||
input[type='submit']{
|
||||
color: white;
|
||||
background-color: royalblue;
|
||||
padding: 0 25px;
|
||||
margin-right: 20px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
input[type='submit']:hover{
|
||||
background-color: #214ac5;
|
||||
}
|
||||
|
||||
/* select */
|
||||
select{
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
/* textarea */
|
||||
textarea{
|
||||
min-height: 150px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* fieldset */
|
||||
fieldset {
|
||||
display: inline;
|
||||
vertical-align: top;
|
||||
padding: 4px 7px 7px;
|
||||
margin: 0 5px 10px;
|
||||
border: 1px dashed #555;
|
||||
border-radius: 2px;
|
||||
min-height: 60px;
|
||||
}
|
||||
|
||||
fieldset > div{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
fieldset > div * + p{
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
fieldset > div > div{
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
fieldset > div > div:first-child{
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
fieldset > div input,
|
||||
fieldset > div select
|
||||
{
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
fieldset > div input[type='checkbox']{
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
fieldset input{
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
fieldset input[type='submit']{
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
fieldset input[type='submit']:last-of-type{
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
legend{
|
||||
font-size: 14px;
|
||||
background-color: #000;
|
||||
padding: 0 3px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
/* menu
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#menu{
|
||||
height: 100%;
|
||||
width: 300px;
|
||||
background-color: #333;
|
||||
position: relative;
|
||||
order: 1;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
top: 0;
|
||||
overflow-y: overlay;
|
||||
}
|
||||
|
||||
#menu p {
|
||||
padding: 18px;
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #444;
|
||||
}
|
||||
|
||||
/* logo */
|
||||
#h1{
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
font-style: inherit;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: #555;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
/* db select */
|
||||
#dbs select{
|
||||
width: 228px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
/* links */
|
||||
#menu .links{
|
||||
padding-top: 0;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#menu .links a:nth-child(even){
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
#menu .links a{
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 127px;
|
||||
height: 31px;
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #555;
|
||||
line-height: 27px;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
border-radius: 3px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
#menu .links a.active,
|
||||
#menu .links a:hover
|
||||
{
|
||||
border: 1px solid #ccc;
|
||||
font-weight: normal;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* tables */
|
||||
#logins, #tables{
|
||||
border-bottom: none;
|
||||
line-height: 20px;
|
||||
padding: 18px 0;
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
||||
#tables br{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#tables a {
|
||||
float: right;
|
||||
padding: 5px 18px 9px;
|
||||
line-height: 17px;
|
||||
color: #2CC990;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#tables .structure, #tables .view {
|
||||
float: none;
|
||||
display: block;
|
||||
color: inherit;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#logins a {
|
||||
display: block;
|
||||
padding: 5px 18px 9px;
|
||||
color: inherit;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#tables a.select.active,
|
||||
#tables a.select:hover
|
||||
{
|
||||
color: #fba;
|
||||
}
|
||||
|
||||
#logins a:hover,
|
||||
#tables a[title]:hover,
|
||||
#tables a.active,
|
||||
#tables a.select:hover + a,
|
||||
#tables a.select.active + a
|
||||
{
|
||||
background-color: #555;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* content
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#content{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-left: 50px;
|
||||
padding-right: 50px;
|
||||
padding-bottom: 30px;
|
||||
overflow-y: auto !important;
|
||||
order: 2;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
#breadcrumb{
|
||||
position: relative;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content h2{
|
||||
margin-left: -50px;
|
||||
}
|
||||
|
||||
/* links */
|
||||
#content .links a,
|
||||
code.jush-sql ~ a,
|
||||
#fieldset-history > a:first-child
|
||||
{
|
||||
display: inline-block;
|
||||
height: 32px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
border: 1px solid #666;
|
||||
border-radius: 3px;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#content .links a:hover,
|
||||
code.jush-sql ~ a:hover,
|
||||
#fieldset-history > a:first-child:hover
|
||||
{
|
||||
color: #eee;
|
||||
border-color: #eee;
|
||||
}
|
||||
|
||||
#ajaxstatus + *{
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
#ajaxstatus + *.links {
|
||||
margin-top: 0 !important;
|
||||
height: 65px;
|
||||
line-height: 55px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#ajaxstatus + .links a{
|
||||
white-space: nowrap;
|
||||
margin-right: 20px;
|
||||
padding: 0;
|
||||
padding-bottom: 5px;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#ajaxstatus + .links a.active,
|
||||
#ajaxstatus + .links a:hover
|
||||
{
|
||||
border-bottom: 1px solid;
|
||||
border-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* fieldset search */
|
||||
#fieldset-search > div > *{
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
/* fieldset search */
|
||||
#fieldset-partition p{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* feldset history */
|
||||
#fieldset-history{
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
#fieldset-history i{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#fieldset-history input[type='submit']{
|
||||
flex-grow: 0;
|
||||
order: 1;
|
||||
margin-top: 1px;
|
||||
margin-left: 17px;
|
||||
}
|
||||
|
||||
#fieldset-history > div a:last-child{
|
||||
order: 2;
|
||||
}
|
||||
|
||||
#fieldset-history > a{
|
||||
flex-grow: 0;
|
||||
flex-basis: 5%;
|
||||
min-width: 45px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#fieldset-history > .time{
|
||||
flex-grow: 0;
|
||||
flex-basis: 5%;
|
||||
text-align: center;
|
||||
line-height: 29px;
|
||||
}
|
||||
|
||||
#fieldset-history > code{
|
||||
flex-grow: 1;
|
||||
flex-basis: 89%;
|
||||
line-height: 29px;
|
||||
}
|
||||
|
||||
#fieldset-history > .time{
|
||||
flex-grow: 0;
|
||||
flex-basis: 5%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* sql
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
.sqlarea{
|
||||
border: 1px solid #444 !important;
|
||||
width: 100% !important;
|
||||
padding: 12px 15px !important;
|
||||
font-size: 15px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.jush-sql_code{
|
||||
color: #fafafa !important;
|
||||
font-family: 'Source Sans Pro', sans-serif !important;
|
||||
}
|
||||
|
||||
.jush a, .jush a:visited{
|
||||
color: #fba;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.jush a:hover{
|
||||
color: #fba;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jush-php_quo, .jush-quo, .jush-quo_one, .jush-php_eot, .jush-apo, .jush-sql_apo, .jush-sqlite_apo, .jush-sql_quo, .jush-sql_eot{
|
||||
color: aquamarine;
|
||||
}
|
||||
|
||||
.jush-bac, .jush-php_bac, .jush-bra, .jush-mssql_bra, .jush-sqlite_quo{
|
||||
color: plum;
|
||||
}
|
||||
|
||||
.jush-num, .jush-clr{
|
||||
color: #85E2FF;
|
||||
}
|
||||
|
||||
code {
|
||||
background: #000;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
code.jush-sql ~ a{
|
||||
position: relative;
|
||||
margin-left: 5px;
|
||||
/*margin-top: 20px;
|
||||
margin-bottom: 20px; */
|
||||
}
|
||||
|
||||
code.jush-sql ~ a:first-of-type{
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
code.jush-sql ~ a:first-of-type::before{
|
||||
content: '◀';
|
||||
color: #555;
|
||||
position: absolute;
|
||||
left: -22px;
|
||||
font-size: 22px;
|
||||
top: -1px;
|
||||
}
|
||||
|
||||
/* logout form
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
body > form{
|
||||
position: absolute;
|
||||
}
|
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 +0,0 @@
|
||||
.fi-pagination-items,.fi-pagination-overview,.fi-pagination-records-per-page-select:not(.fi-compact){display:none}@supports (container-type:inline-size){.fi-pagination{container-type:inline-size}@container (min-width: 28rem){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@container (min-width: 56rem){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}@supports not (container-type:inline-size){@media (min-width:640px){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@media (min-width:768px){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{background-color:#333;border-radius:4px;color:#fff;font-size:14px;line-height:1.4;outline:0;position:relative;transition-property:transform,visibility,opacity;white-space:normal}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=light]{background-color:#fff;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;color:#26323d}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fi-sortable-ghost{opacity:.3}
|
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 +0,0 @@
|
||||
function r({state:i}){return{state:i,rows:[],shouldUpdateRows:!0,init:function(){this.updateRows(),this.rows.length<=0?this.rows.push({key:"",value:""}):this.updateState(),this.$watch("state",(t,e)=>{let s=o=>o===null?0:Array.isArray(o)?o.length:typeof o!="object"?0:Object.keys(o).length;s(t)===0&&s(e)===0||this.updateRows()})},addRow:function(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow:function(t){this.rows.splice(t,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows:function(t){let e=Alpine.raw(this.rows),s=e.splice(t.oldIndex,1)[0];e.splice(t.newIndex,0,s),this.rows=e,this.updateState()},updateRows:function(){if(!this.shouldUpdateRows){this.shouldUpdateRows=!0;return}let t=[];for(let[e,s]of Object.entries(this.state??{}))t.push({key:e,value:s});this.rows=t},updateState:function(){let t={};this.rows.forEach(e=>{e.key===""||e.key===null||(t[e.key]=e.value)}),this.shouldUpdateRows=!1,this.state=t}}}export{r as default};
|
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 +0,0 @@
|
||||
function i({state:a,splitKeys:n}){return{newTag:"",state:a,createTag:function(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.newTag=""}},deleteTag:function(t){this.state=this.state.filter(e=>e!==t)},reorderTags:function(t){let e=this.state.splice(t.oldIndex,1)[0];this.state.splice(t.newIndex,0,e),this.state=[...this.state]},input:{["x-on:blur"]:"createTag()",["x-model"]:"newTag",["x-on:keydown"](t){["Enter",...n].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),this.createTag())},["x-on:paste"](){this.$nextTick(()=>{if(n.length===0){this.createTag();return}let t=n.map(e=>e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(t,"g")).forEach(e=>{this.newTag=e,this.createTag()})})}}}}export{i as default};
|
@ -1 +0,0 @@
|
||||
function t({initialHeight:e}){return{init:function(){this.render()},render:function(){this.$el.scrollHeight>0&&(this.$el.style.height=e+"rem",this.$el.style.height=this.$el.scrollHeight+"px")}}}export{t as default};
|
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 +0,0 @@
|
||||
function c(){return{collapsedGroups:[],isLoading:!1,selectedRecords:[],shouldCheckUniqueSelection:!0,init:function(){this.$wire.$on("deselectAllTableRecords",()=>this.deselectAllRecords()),this.$watch("selectedRecords",()=>{if(!this.shouldCheckUniqueSelection){this.shouldCheckUniqueSelection=!0;return}this.selectedRecords=[...new Set(this.selectedRecords)],this.shouldCheckUniqueSelection=!1})},mountBulkAction:function(e){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableBulkAction(e)},toggleSelectRecordsOnPage:function(){let e=this.getRecordsOnPage();if(this.areRecordsSelected(e)){this.deselectRecords(e);return}this.selectRecords(e)},toggleSelectRecordsInGroup:async function(e){if(this.isLoading=!0,this.areRecordsSelected(this.getRecordsInGroupOnPage(e))){this.deselectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e));return}this.selectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e)),this.isLoading=!1},getRecordsInGroupOnPage:function(e){let s=[];for(let t of this.$root.getElementsByClassName("fi-ta-record-checkbox"))t.dataset.group===e&&s.push(t.value);return s},getRecordsOnPage:function(){let e=[];for(let s of this.$root.getElementsByClassName("fi-ta-record-checkbox"))e.push(s.value);return e},selectRecords:function(e){for(let s of e)this.isRecordSelected(s)||this.selectedRecords.push(s)},deselectRecords:function(e){for(let s of e){let t=this.selectedRecords.indexOf(s);t!==-1&&this.selectedRecords.splice(t,1)}},selectAllRecords:async function(){this.isLoading=!0,this.selectedRecords=await this.$wire.getAllSelectableTableRecordKeys(),this.isLoading=!1},deselectAllRecords:function(){this.selectedRecords=[]},isRecordSelected:function(e){return this.selectedRecords.includes(e)},areRecordsSelected:function(e){return e.every(s=>this.isRecordSelected(s))},toggleCollapseGroup:function(e){if(this.isGroupCollapsed(e)){this.collapsedGroups.splice(this.collapsedGroups.indexOf(e),1);return}this.collapsedGroups.push(e)},isGroupCollapsed:function(e){return this.collapsedGroups.includes(e)},resetCollapsedGroups:function(){this.collapsedGroups=[]}}}export{c as default};
|
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 it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 2.2 MiB |
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 1.4 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E0E0E0;}
|
||||
.st1{fill:#C1C1C1;}
|
||||
.st2{fill:#474747;}
|
||||
.st3{fill:#333333;}
|
||||
.st4{fill:#5B5B5B;}
|
||||
</style>
|
||||
<g id="BULINE">
|
||||
<circle class="st0" cx="256" cy="256" r="256"/>
|
||||
</g>
|
||||
<g id="Icons">
|
||||
<path class="st1" d="M484.8,371c-20.9,41.3-52.4,76.2-91.5,101.1l-1.6,1l-1.6,1c-6.5,4-13.2,7.7-20,11.1
|
||||
c-10.2,5.1-20.8,9.5-31.6,13.2c-63.3,21.6-132.6,17.5-193-11.4c-8.1-3.9-16.1-8.2-23.7-13c-0.8-0.5-1.5-0.9-2.2-1.4
|
||||
c-1-0.6-1.9-1.2-2.9-1.9c-38.1-24.8-69-59.2-89.5-99.8c16-31.8,38.4-59.8,65.9-82.5c11.1-9.2,23-17.5,35.6-24.6
|
||||
c0.9-0.5,1.8-1,2.7-1.6s2.1-1.1,3.1-1.7c3.6-2,7.3-3.9,11.1-5.6c8.9-4.3,18.1-8,27.5-11.3c2.6-0.9,5.2-1.7,7.8-2.5l0,0l3-0.9
|
||||
l2.4-0.7c6.7-1.9,13.5-3.5,20.5-4.9c1.7-0.3,3.3-0.6,5-0.9c31.5-5.5,63.7-5,95,1.2c6.9,1.4,13.7,3.1,20.4,5c1.3,0.4,2.7,0.8,4,1.2
|
||||
c2.3,0.7,4.6,1.4,6.9,2.2c7.9,2.7,15.7,5.7,23.3,9.2c2.9,1.3,5.8,2.7,8.7,4.1c3.2,1.6,6.3,3.3,9.5,5c1,0.5,2,1.1,2.9,1.7
|
||||
c0.7,0.4,1.3,0.7,2,1.1C427.5,289.6,462.4,326.5,484.8,371z"/>
|
||||
<path class="st2" d="M433.3,440.6c-12.3,11.8-25.7,22.3-40,31.5l-1.6,1l-1.6,1c-6.5,4-13.2,7.7-20,11.1
|
||||
c-10.2,5.1-20.8,9.5-31.6,13.2c-63.3,21.6-132.6,17.5-193-11.4c-8.1-3.9-16.1-8.2-23.7-13c-0.8-0.5-1.5-0.9-2.2-1.4
|
||||
c-1-0.6-1.9-1.2-2.9-1.9c-12.4-8.1-24.1-17.2-35-27.3l11.4-155l5.7-77.8c7.7-104.8,59.6-183.4,121-183.4h75.7
|
||||
c61.5,0,113.3,78.6,121,183.4l5.9,80.7L433.3,440.6z"/>
|
||||
<path class="st3" d="M370.1,100.8v384.4c-10.2,5.1-20.8,9.5-31.6,13.2C275.2,520,205.9,515.9,145.6,487V122.3l0,0v-21.5H370.1z"/>
|
||||
<path class="st4" d="M391.7,473.1l-1.6,1c-6.5,4-13.2,7.7-20,11.1c-10.2,5.1-20.8,9.5-31.6,13.2c-63.3,21.6-132.6,17.5-193-11.4
|
||||
c-8.1-3.9-16.1-8.2-23.7-13c3.2-3.8,6.6-7.4,10.1-10.8c0.5-0.5,1-1,1.6-1.5c2.4-2.3,4.9-4.5,7.6-6.6c1.4-1.2,2.9-2.3,4.4-3.5l0,0
|
||||
c1.8-1.3,3.6-2.6,5.4-3.9c7.2-5,14.8-9.3,22.8-13.1c8.8-4.2,42.1-10.4,48.4-17.7c1.1-1.3,2-2.7,2.6-4.3c3.5-8.4,1.2-20.1,1.2-29.1
|
||||
c0-2.7,0-5-0.1-7.1l0,0c-0.6-21.3-2.9-14.7,15.5-20.9c2.1-0.5,4.2-0.8,6.4-0.9c13.9-1.4,44.9-2.5,48.6,0.9c2.8,2.6,3.4,7.9,3,14.2
|
||||
c-0.7,12.6-5,29.3-2,37c0.8,2.1,1.8,4,3,5.9c7.7,11.6,20.7,12.4,35.7,19.3c9.8,4.5,19.2,10,28.1,16.2c2.1,1.4,4.1,2.9,6,4.4
|
||||
c0.8,0.6,1.5,1.2,2.2,1.8c3.2,2.6,6.3,5.3,9.3,8.1c0.7,0.7,1.5,1.4,2.2,2.1C386.5,467.4,389.2,470.2,391.7,473.1z"/>
|
||||
<path class="st4" d="M382.6,173.1v84.4c0,63-50.1,83.1-86.6,115.1c-21.3,19-53.6,19-74.9,0c-36.5-32-86.6-52.2-86.6-115.1v-84.4
|
||||
c0-63.5,48.5-115,108.4-115h31.4C334.1,58.1,382.6,109.6,382.6,173.1z"/>
|
||||
<path class="st3" d="M183.9,257.5v-84.4c0-60.3,43.7-109.7,99.3-114.6c-3-0.3-6-0.4-9-0.4h-31.4c-59.9,0-108.4,51.5-108.4,115v41.8
|
||||
c-13.7,0-24.8,11.1-24.8,24.8s11.1,24.8,24.8,24.8h0.2c3.6,57.5,51.2,77.3,86.4,108.1c17.8,15.6,42.1,18.5,62.2,8.5
|
||||
c-4.6-2.3-8.8-5.1-12.7-8.5C234,340.7,183.9,320.5,183.9,257.5z"/>
|
||||
<circle class="st4" cx="382.6" cy="239.7" r="24.8"/>
|
||||
<path class="st2" d="M135.1,229.9c-5.5-0.2-10,4.1-10.2,9.6c-0.2,5.5,4.1,10,9.6,10.2c0.2,0,0.4,0,0.6,0V229.9z"/>
|
||||
<path class="st3" d="M382.6,249.6c5.5,0.2,10-4.1,10.2-9.6c0.2-5.5-4.1-10-9.6-10.2c-0.2,0-0.4,0-0.6,0V249.6z"/>
|
||||
<path class="st2" d="M327.5,100.8c0,0-10.9,31.5-62,49.2v-40.1c0,0-6,35.1-68.5,54V133c0,0-13.1,33.3-62.5,66l-9.2-13.4l4.9-75.7
|
||||
L168,61.4l47.4-12.7h68.6l43.5,3.8L364,89.6c0,0,27.1,36.4,28.5,74.3C392.5,163.9,353.7,145.5,327.5,100.8z"/>
|
||||
<path class="st3" d="M145.6,475.4c13,10.8,27.3,20,42.5,27.5c-23.3-6.4-45.6-16.1-66.2-28.8c3.2-3.8,6.6-7.4,10.2-10.9
|
||||
C135.4,466.5,139.9,470.7,145.6,475.4L145.6,475.4z"/>
|
||||
<path class="st3" d="M391.7,473.1l-1.6,1c-6.5,4-13.2,7.7-20,11.1c-10.2,5.1-20.8,9.5-31.6,13.2c11.1-6.4,21.7-13.7,31.6-21.8
|
||||
c4.5-3.7,9.1-7.7,13.7-12C386.5,467.4,389.2,470.2,391.7,473.1z"/>
|
||||
<path class="st3" d="M260.3,49.4L260.3,49.4c-0.6,0-1.2,0-1.8,0s-1.2,0-1.8,0v0c-107.1,2.2-130.9,102.9-130.9,102.9
|
||||
C185.5,88.1,242,87.7,256.7,88.9v0.4c0,0,0.6-0.1,1.8-0.2c1.2,0.1,1.8,0.2,1.8,0.2v-0.4c14.6-1.1,71.2-0.7,130.9,63.4
|
||||
C391.2,152.3,367.4,51.7,260.3,49.4z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.2 KiB |
@ -1,70 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E0E0E0;}
|
||||
.st1{fill:#C1C1C1;}
|
||||
.st2{fill:#474747;}
|
||||
.st3{fill:#333333;}
|
||||
.st4{fill:#F7BB38;}
|
||||
</style>
|
||||
<g id="BULINE">
|
||||
<circle class="st0" cx="256" cy="256" r="256"/>
|
||||
</g>
|
||||
<g id="Icons">
|
||||
<path class="st1" d="M484.8,371c-20.7,41.2-52.2,76-91,100.8c-1.2,0.8-2.4,1.5-3.6,2.3c-2.1,1.3-4.2,2.5-6.3,3.8
|
||||
c-31.1,17.9-65.6,29.1-101.2,32.8c-8.8,0.9-17.7,1.4-26.5,1.4c-6.5,0-12.9-0.2-19.3-0.7c-37.7-2.8-74.3-13.9-107.2-32.6l-1.6-0.9
|
||||
c-2.8-1.6-5.6-3.3-8.4-5.1l-2.3-1.5C78.9,446.4,47.8,411.8,27.2,371c20.5-40.7,51.6-75.2,89.9-100c3.9-2.5,7.8-4.9,11.8-7.2
|
||||
c16.2-9.3,33.4-16.8,51.2-22.3l0.6-0.2l0,0c0.7-0.2,1.4-0.4,2.1-0.6c6.2-1.8,12.5-3.5,18.9-4.8c3.3-0.7,6.7-1.4,10-2
|
||||
c28.7-5,58.1-5.1,86.8-0.3c3.6,0.6,7.2,1.3,10.8,2.1c6.3,1.3,12.6,2.9,18.7,4.7c1.5,0.4,2.9,0.9,4.4,1.3
|
||||
c18.5,5.8,36.4,13.7,53.1,23.5c3.5,2.1,7,4.2,10.4,6.5C433.7,296.4,464.4,330.6,484.8,371z"/>
|
||||
<path class="st2" d="M383.8,477.9c-31.1,17.9-65.6,29.1-101.2,32.8c-8.8,0.9-17.7,1.4-26.5,1.4c-6.5,0-12.9-0.2-19.3-0.7
|
||||
c-37.7-2.8-74.3-13.9-107.2-32.6l-1.6-0.9c0.5-0.5,1.1-1,1.6-1.5c0.9-0.9,1.9-1.7,2.8-2.5c0.2-0.2,0.4-0.4,0.6-0.5
|
||||
c0.9-0.8,1.8-1.6,2.8-2.3c3.2-2.7,6.6-5.2,10.1-7.6c7.5-5.1,15.3-9.6,23.5-13.5c4.2-1.7,8.4-3.1,12.8-4.2c8.5-2.4,19-5.2,26.8-8.2
|
||||
c2.5-0.9,4.9-2,7.2-3.4l0,0c1.2-0.7,2.3-1.5,3.2-2.5c1.1-1.3,2-2.8,2.7-4.5c3.6-8.6,1.2-20.9,1.2-30.1c0-2.8-0.1-5.2-0.1-7.4l0,0
|
||||
c-0.6-22-3-15.2,16.1-21.6c2.2-0.5,4.4-0.8,6.6-1l0,0c14.4-1.4,46.4-2.6,50.3,1c2.9,2.7,3.5,8.2,3.1,14.7
|
||||
c-0.7,13-5.2,30.3-2.1,38.3c0.8,2.1,1.9,4.2,3.1,6.1c0.5,0.8,1.1,1.6,1.7,2.3c0.4,0.5,0.8,0.9,1.2,1.3c0.2,0.3,0.5,0.5,0.7,0.8
|
||||
s0.6,0.5,0.9,0.8l0.1,0.1l0,0l0.2,0.2l0.2,0.2c0.3,0.2,0.6,0.5,0.9,0.7c0.2,0.2,0.4,0.3,0.5,0.4c1.4,1.1,2.9,2,4.5,2.8
|
||||
c0.6,0.3,1.2,0.6,1.8,0.9s1.3,0.6,2,0.9s1.5,0.6,2.3,1c0.4,0.1,0.8,0.3,1.2,0.5c1.9,0.7,3.8,1.4,5.8,2.1c0.4,0.1,0.8,0.3,1.2,0.4
|
||||
l1.1,0.4c0.4,0.1,0.8,0.3,1.1,0.4l1.6,0.6c0.8,0.3,1.6,0.6,2.5,1c0.7,0.2,1.3,0.5,2,0.8s1.1,0.5,1.6,0.7s1.2,0.5,1.8,0.8h0.1l0,0
|
||||
c10.1,4.7,19.8,10.3,29,16.7c3,2.1,5.8,4.2,8.5,6.5C378,472.6,380.9,475.2,383.8,477.9z"/>
|
||||
<path class="st2" d="M385.5,179.2v87.3c0,65.1-51.8,86-89.6,119.1c-22.1,19.7-55.4,19.7-77.5,0c-37.8-33.1-89.6-54-89.6-119.1
|
||||
v-87.3c0-65.7,50.2-119,112.1-119h32.5C335.4,60.3,385.5,113.5,385.5,179.2z"/>
|
||||
<path class="st3" d="M180.1,266.5v-87.3c0-62.3,45.2-113.5,102.7-118.5c-3.1-0.3-6.2-0.4-9.4-0.4H241c-61.9,0-112.1,53.3-112.1,119
|
||||
v43.2c-14.2,0.3-25.5,12-25.2,26.2c0.3,13.8,11.4,24.9,25.2,25.2h0.2c3.7,59.5,53,80,89.4,111.8c18.4,16.1,43.5,19.1,64.3,8.8
|
||||
c-4.7-2.3-9.2-5.3-13.1-8.8C231.9,352.5,180.1,331.6,180.1,266.5z"/>
|
||||
<circle class="st2" cx="385.5" cy="248.1" r="25.7"/>
|
||||
<path class="st2" d="M129.6,237.9c-5.6-0.2-10.4,4.3-10.5,9.9s4.3,10.4,9.9,10.5c0.2,0,0.4,0,0.6,0V237.9z"/>
|
||||
<path class="st3" d="M385.6,258.3c5.6-0.2,10.1-4.9,9.9-10.5c-0.2-5.4-4.5-9.7-9.9-9.9V258.3z"/>
|
||||
<path class="st4" d="M383.8,477.9c-31.1,17.9-65.6,29.1-101.2,32.8c-8.8,0.9-17.7,1.4-26.5,1.4c-6.5,0-12.9-0.2-19.3-0.7
|
||||
c-37.7-2.8-74.3-13.9-107.2-32.6l-1.6-0.9c0.5-0.5,1.1-1,1.6-1.5c0.9-0.9,1.9-1.7,2.8-2.5c0.2-0.2,0.4-0.4,0.6-0.5
|
||||
c0.9-0.8,1.8-1.6,2.8-2.3c3.2-2.7,6.6-5.2,10.1-7.6c7.5-5.1,15.3-9.6,23.5-13.5c4.2-1.7,8.4-3.1,12.8-4.2c8.5-2.4,19-5.2,26.8-8.2
|
||||
v22.5l34.7,18.5c2.5,2.1,8.8,3.1,15.1,3.2l0,0c0.6,0,1.2,0,1.7,0l0,0c6-0.1,11.8-1.2,14.1-3.1l27.3-18.5v-30.5
|
||||
c0.4,0.5,0.8,0.9,1.2,1.3c0.2,0.3,0.5,0.5,0.7,0.8s0.6,0.5,0.9,0.8l0.1,0.1l0,0c0,0.1,0.1,0.1,0.2,0.1l0.2,0.2
|
||||
c0.3,0.2,0.6,0.5,0.9,0.7c0.2,0.2,0.4,0.3,0.5,0.4c1.4,1.1,2.9,2,4.5,2.8c0.6,0.3,1.2,0.6,1.8,0.9s1.3,0.6,2,0.9s1.5,0.6,2.3,1
|
||||
c0.4,0.1,0.8,0.3,1.2,0.5c1.9,0.7,3.8,1.4,5.8,2.1c0.4,0.1,0.8,0.3,1.2,0.4l1.1,0.4c0.4,0.1,0.8,0.3,1.1,0.4l1.6,0.6
|
||||
c0.8,0.3,1.6,0.6,2.5,1c0.7,0.2,1.3,0.5,2,0.8s1.1,0.5,1.6,0.7s1.2,0.5,1.8,0.8h0.1l0,0c10.1,4.7,19.8,10.3,29,16.7
|
||||
c3,2.1,5.8,4.2,8.5,6.5C378,472.6,380.9,475.2,383.8,477.9z"/>
|
||||
<path class="st3" d="M375.4,120.2c0,0,2.2-36.1-23.2-59.9l-3.7,14.2c0,0-17.1-38-55.6-43.6l1.4,12c0,0-50.2-21.1-90.4-12l19.9,14.8
|
||||
c0,0-38.4,1.2-60.1,14.7c0,0,10.5,8.4,15.8,15.3c-33.1,21.7-55.2,60.6-55.2,104.9l4.6,44.8l19.7-68.1c0,0,4.8-46.5,43.6-54.2
|
||||
c13.8-2.7,28,1.2,39.2,9.7c6.7,5.3,14.9,8.4,23.4,8.8l0,0h1.4l0,0c8.5-0.5,16.7-3.5,23.4-8.8c11.2-8.5,25.4-12.4,39.2-9.7
|
||||
c38.8,7.7,43.6,54.2,43.6,54.2l27.3,72.4l0.5-11.8v-37.3C390.2,159.5,385.1,138.8,375.4,120.2z"/>
|
||||
<path class="st2" d="M309.7,51.2c0.8,8.8-0.1,21.4-9,31c-0.9,0.9-0.8,2.3,0.1,3.2c0.5,0.4,1.1,0.7,1.7,0.6
|
||||
c5.9-0.4,14.6-1.6,19.4-5.2c1-0.8,2.4-0.6,3.2,0.4c0.1,0.2,0.2,0.3,0.3,0.5c1.2,3.1,2.7,8.2,2,13.1c-0.2,1.2,0.7,2.4,1.9,2.5
|
||||
c0.8,0.1,1.6-0.2,2.1-0.9c4.3-5.2,7.9-14.6,2.5-30.1c-0.4-1.2-1.7-1.8-2.9-1.4c-0.4,0.1-0.8,0.4-1.1,0.8l-0.8,1.1
|
||||
c-0.7,1-2.1,1.2-3.1,0.5c-0.2-0.1-0.4-0.3-0.5-0.5l-11.7-16.9c-0.7-1-2.1-1.3-3.1-0.6C310,49.6,309.6,50.4,309.7,51.2z"/>
|
||||
<path class="st2" d="M383.8,477.9c-31.1,17.9-65.6,29.1-101.2,32.8c-8.8,0.9-17.7,1.4-26.5,1.4c-6.5,0-12.9-0.2-19.3-0.7
|
||||
c-37.7-2.8-74.3-13.9-107.2-32.6v-2.4c0.9-0.9,1.9-1.7,2.8-2.5c0.2-0.2,0.4-0.4,0.6-0.5c0.9-0.8,1.8-1.6,2.8-2.3
|
||||
c3.2-2.7,6.6-5.2,10.1-7.6c7.5-5.1,15.3-9.6,23.5-13.5c4.2-1.7,8.4-3.1,12.8-4.2c8.5-2.4,19-5.2,26.8-8.2v22.5l34.7,18.5
|
||||
c2.5,2.1,8.8,3.1,15.1,3.2l0,0c0.6,0,1.2,0,1.7,0l0,0c6-0.1,11.8-1.2,14.1-3.1l27.3-18.5v-23.3h9.1c0.6,0.3,1.2,0.6,1.8,0.9
|
||||
s1.3,0.6,2,0.9s1.5,0.6,2.3,1c0.4,0.1,0.8,0.3,1.2,0.5c1.9,0.7,3.8,1.4,5.8,2.1c0.4,0.1,0.8,0.3,1.2,0.4l1.1,0.4
|
||||
c0.4,0.1,0.8,0.3,1.1,0.4l1.6,0.6c0.8,0.3,1.6,0.6,2.5,1c0.7,0.2,1.3,0.5,2,0.8s1.1,0.5,1.6,0.7s1.2,0.5,1.8,0.8h0.1l0,0
|
||||
c10.1,4.7,19.8,10.3,29,16.7c3,2.1,5.8,4.2,8.5,6.5C378,472.6,380.9,475.2,383.8,477.9z"/>
|
||||
<path class="st2" d="M259.6,480.6l-0.6,0.9l0,0l-22.2,29.8c-10.7-0.8-21.4-2.3-31.9-4.4l-22.2-58.5c-1.1-2.9,0.2-6.2,3-7.5
|
||||
l21.6-10.3c2.3-1.1,5-0.6,6.8,1.2l2.3,2.3l0,0C229.1,447.1,259.6,480.6,259.6,480.6z"/>
|
||||
<path class="st2" d="M337.4,447c-0.1,0.5-0.2,0.9-0.3,1.4L315.6,505c-10.9,2.6-22,4.5-33.1,5.6l-21.8-29.2l-0.6-0.9
|
||||
c0,0,28.6-31.5,42.1-45.4c1.1-1.1,2-2.1,2.9-3l0,0l0.6-0.6c1.8-1.8,4.5-2.3,6.8-1.2l21.6,10.3C336.4,441.9,337.8,444.4,337.4,447z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 6.2 KiB |
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.4 KiB |
@ -4,33 +4,11 @@ import.meta.glob([
|
||||
'../fonts/**'
|
||||
]);
|
||||
|
||||
import { Livewire, Alpine } from '../../vendor/livewire/livewire/dist/livewire.esm';
|
||||
//import Alpine from 'alpinejs';
|
||||
|
||||
import Alpine from 'alpinejs';
|
||||
|
||||
window.Alpine = Alpine;
|
||||
|
||||
Livewire.start();
|
||||
Alpine.start();
|
||||
|
||||
import './main';
|
||||
(function ($) {
|
||||
eqHeightWalletLeaderboard();
|
||||
$(window).resize(function() {
|
||||
eqHeightWalletLeaderboard();
|
||||
});
|
||||
function eqHeightWalletLeaderboard() {
|
||||
let walletHeight = 0;
|
||||
let leaderboardHeight = 0;
|
||||
$('section.wallet-setup .card-block-style-one').each(function() {
|
||||
if ($(this).outerHeight() > walletHeight) {
|
||||
walletHeight = $(this).outerHeight();
|
||||
}
|
||||
});
|
||||
$('.top-seller-style-one').each(function() {
|
||||
if ($(this).outerHeight() > leaderboardHeight) {
|
||||
leaderboardHeight = $(this).outerHeight();
|
||||
}
|
||||
})
|
||||
$('section.wallet-setup .card-block-style-one').css('min-height', walletHeight + 'px');
|
||||
$('.top-seller-style-one').css('min-height', leaderboardHeight + 'px');
|
||||
}
|
||||
})(jQuery, window);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -73,4 +73,3 @@ Modified by : Paul Couture (bonked@noagendaartgenerator.com)
|
||||
@import "components/nft-gallery";
|
||||
@import "./../css/vendor/nice-select.css";
|
||||
@import "components/light-version";
|
||||
@import "components/pagination";
|
||||
|
@ -4,11 +4,6 @@
|
||||
padding: 15px;
|
||||
border-radius: 10px;
|
||||
transition: 0.3s;
|
||||
border: 1px solid $bg-color-1;
|
||||
&.selected {
|
||||
background: $bg-color-selected;
|
||||
border-color: $selected-border;
|
||||
}
|
||||
.thumb {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
@ -109,16 +104,12 @@
|
||||
}
|
||||
transition: 0.3s;
|
||||
&:hover {
|
||||
border: 1px solid $color-error;
|
||||
.thumb {
|
||||
img {
|
||||
transform: scale(1.1);
|
||||
transform: scale(1.21);
|
||||
}
|
||||
}
|
||||
}
|
||||
&.selected:hover {
|
||||
border-color: lighten($selected-border, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
.reaction-btn {
|
||||
|
@ -35,7 +35,7 @@
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.upload-area .browse-file-wrapper {
|
||||
.upload-area .brows-file-wrapper {
|
||||
position: relative;
|
||||
background: #1a1a1a;
|
||||
border-radius: 10px;
|
||||
@ -44,7 +44,7 @@
|
||||
background: #000;
|
||||
}
|
||||
}
|
||||
.upload-area .browse-file-wrapper input {
|
||||
.upload-area .brows-file-wrapper input {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
@ -255,15 +255,6 @@ body {
|
||||
color: $color-primary;
|
||||
}
|
||||
}
|
||||
.explore-style-one {
|
||||
border: 1px solid $border-color-light;
|
||||
&.selected {
|
||||
background: $bg-color-selected-light;
|
||||
}
|
||||
&:hover {
|
||||
border: 1px solid $color-error;
|
||||
}
|
||||
}
|
||||
.explore-style-two,
|
||||
.signin-form,
|
||||
.signup-wrapper.header-free-signin .signin-form-2 {
|
||||
@ -422,7 +413,7 @@ body {
|
||||
.popular-collection-style-two,
|
||||
.wallet-block,
|
||||
.form-field-wrapper,
|
||||
.upload-area .browse-file-wrapper,
|
||||
.upload-area .brows-file-wrapper,
|
||||
.signup-content,
|
||||
.contact-inner-contnet {
|
||||
background: #fff;
|
||||
|
@ -1,80 +0,0 @@
|
||||
.pagination {
|
||||
.page-item {
|
||||
a {
|
||||
&.page-link {
|
||||
color: $body-color;
|
||||
background-color: $bg-color-1;
|
||||
border-color: $body-bg;
|
||||
transition: transform 0.5s;
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: linear-gradient(97.3deg, #ff512f 0%, #dd2476 100%);
|
||||
border-color: $bg-color-1;
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(97.3deg, #dd2476 0%, #ff512f 100%);
|
||||
transition: transform 0.5s;
|
||||
transform-origin: right;
|
||||
transform: scaleX(0);
|
||||
z-index: 0;
|
||||
border-radius: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page-item.disabled .page-link {
|
||||
background-color: $bg-color-1;
|
||||
border-color: $body-bg;
|
||||
cursor: default;
|
||||
}
|
||||
.page-item.active .page-link {
|
||||
background: linear-gradient(97.3deg, #ff512f 0%, #dd2476 100%);
|
||||
border-color: $body-bg;
|
||||
cursor: default;
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(97.3deg, #dd2476 0%, #ff512f 100%);
|
||||
transition: transform 0.5s;
|
||||
transform-origin: right;
|
||||
transform: scaleX(0);
|
||||
z-index: 0;
|
||||
border-radius: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
.theme-light {
|
||||
.pagination {
|
||||
.page-item {
|
||||
a {
|
||||
&.page-link {
|
||||
color: $body-light;
|
||||
background-color: $body-bg-light2;
|
||||
border-color: $body-bg-light;
|
||||
&:hover,
|
||||
&:focus {
|
||||
border-color: $body-bg-light;
|
||||
color: $body-bg-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page-item.disabled .page-link {
|
||||
background-color: $body-bg-light2;
|
||||
border-color: $body-bg-light;
|
||||
}
|
||||
.page-item.active .page-link {
|
||||
border-color: $body-bg-light;
|
||||
}
|
||||
}
|
||||
}
|
@ -35,9 +35,6 @@
|
||||
color: $body-color;
|
||||
line-height: 27px;
|
||||
}
|
||||
h4 {
|
||||
font-size: 80%;
|
||||
}
|
||||
&:hover {
|
||||
.thumb {
|
||||
transform: scale(1.1);
|
||||
@ -85,7 +82,6 @@
|
||||
border-radius: 10px;
|
||||
padding: 28px 26px 28px 30px;
|
||||
transition: 0.3s;
|
||||
font-size:85%;
|
||||
@include xs-device {
|
||||
padding: 15px;
|
||||
}
|
||||
@ -140,10 +136,6 @@
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
sup {
|
||||
font-weight: normal;
|
||||
font-size:50%;
|
||||
}
|
||||
}
|
||||
.price {
|
||||
font-size: 15px;
|
||||
|
@ -1,10 +1,3 @@
|
||||
.wallet-setup {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-image: url(../img/headerbg-dark.jpg);
|
||||
}
|
||||
.card-block-style-one {
|
||||
background: $bg-color-1;
|
||||
padding: 40px;
|
||||
@ -28,8 +21,3 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.theme-light {
|
||||
.wallet-setup {
|
||||
background-image: url(../img/headerbg.jpg);
|
||||
}
|
||||
}
|
||||
|
@ -57,17 +57,6 @@
|
||||
min-height: 36px;
|
||||
}
|
||||
}
|
||||
.btn-xs {
|
||||
font-size: 12px;
|
||||
padding: 1px 12px;
|
||||
height: 32px;
|
||||
min-height: 32px;
|
||||
@include tiny-device {
|
||||
font-size: 15px;
|
||||
height: 34px;
|
||||
min-height: 34px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-outline {
|
||||
border: 2px solid rgba(255, 255, 255, 0.7);
|
||||
|
@ -2,7 +2,7 @@
|
||||
background: #202027;
|
||||
}
|
||||
.section-bg-separation-2 {
|
||||
background: darken($bg-color-1, 10%);
|
||||
background: #000;
|
||||
}
|
||||
.d-flex-center {
|
||||
display: flex;
|
||||
|
@ -14,12 +14,6 @@
|
||||
z-index: 999999;
|
||||
background: $bg-color-1;
|
||||
}
|
||||
body.theme-light {
|
||||
#ctn-preloader,
|
||||
.ctn-preloader {
|
||||
background-color: $body-bg-light2;
|
||||
}
|
||||
}
|
||||
|
||||
.ctn-preloader .animation-preloader {
|
||||
position: absolute;
|
||||
@ -56,9 +50,9 @@ body.theme-light {
|
||||
height: 9px;
|
||||
top: 12px;
|
||||
left: 0;
|
||||
box-shadow: 0 0 10px $color-primary-2;
|
||||
box-shadow: 0 0 10px #dd2476;
|
||||
border-radius: 50%;
|
||||
background: -webkit-linear-gradient($color-primary, $color-primary-2);
|
||||
background: -webkit-linear-gradient(#ff512f, #dd2476);
|
||||
}
|
||||
|
||||
@keyframes spinner {
|
||||
|
@ -139,6 +139,3 @@ ol {
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
.text-justify {
|
||||
text-align: justify;
|
||||
}
|
@ -14,11 +14,6 @@ $body-light: #393939;
|
||||
$body-bg-light: #f9f9fc;
|
||||
$body-bg-light2: #efefef;
|
||||
$body-color-light: #65676b;
|
||||
$light-color-primary: lighten($color-primary, 30%);
|
||||
$light-color-primary-2: lighten($color-primary-2, 30%);
|
||||
$selected-border: #eae156;
|
||||
$bg-color-selected: linear-gradient(97.3deg, #7f830b 0%, #be8500 100%);
|
||||
$bg-color-selected-light: linear-gradient(97.3deg, #f8fc9c 0%, #fbe4a1 100%);
|
||||
|
||||
// font family
|
||||
$font-1: "Poppins", sans-serif;
|
||||
|
@ -1,73 +0,0 @@
|
||||
@extends('layouts.master')
|
||||
|
||||
@section('page-top')
|
||||
<section class="inner-page-banner bg-2 bg-image">
|
||||
<div class="container">
|
||||
<div class="inner text-center">
|
||||
<h1 class="title">Artwork for {{ $artwork->podcast->name }} {{ number_format($artwork->episode->episode_number + 0) }}</h1>
|
||||
<nav class="mt-4">
|
||||
<ol class="breadcrumb justify-content-center">
|
||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
||||
<li class="breadcrumb-item"><a href="/artworks">Explore Artwork</a></li>
|
||||
<li class="breadcrumb-item active">Artwork</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@section('page-content')
|
||||
<section class="product-details section-bg-separation-2 pt-120 pb-90">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xxl-6 mb-6">
|
||||
<div class="explore-style-one">
|
||||
<div class="thumb"><a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
|
||||
><img id="largeImage"src="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
|
||||
alt="{{ $artwork->title }} by {{ $artwork->artist->name }} for {{ $artwork->podcast->title }}"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xxl-6 mb-6 mb-6">
|
||||
<div class="details-content">
|
||||
<h2 class="main_title">“{{ $artwork->title }}”</h2>
|
||||
<h4 class="mb-1">By {{ $artwork->artist->name }}</h4>
|
||||
<p class="subtitle">
|
||||
{{ $artwork->episode->artwork_id == $artwork->id ? 'Selected' : 'Submitted' }} for {{ $artwork->podcast->name }}<br>
|
||||
Episode {{ number_format($artwork->episode->episode_number + 0) }}, {{ $artwork->episode->episode_date->format('l, F j') }}<sup>{{ $artwork->episode->episode_date->format('S') }}</sup>, {{ $artwork->episode->episode_date->format('Y') }}
|
||||
</p>
|
||||
@if ($artwork->description)
|
||||
<h4 class="mb-1">Description</h4>
|
||||
<p class="subtitle">{{ $artwork->description }}</p>
|
||||
@endif
|
||||
<a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
|
||||
class="btn btn-medium btn-gradient w-100 justify-content-center mt-5"><span><i
|
||||
class="ri-download-cloud-2-line"></i>
|
||||
Download Full Scale Image
|
||||
</span></a>
|
||||
<a href="http://{{ config('app.static_asset_url') }}/thumbnail/{{ $artwork->filename }}"
|
||||
class="btn btn-medium btn-gradient w-100 justify-content-center mt-5"><span><i
|
||||
class="ri-download-fill"></i>
|
||||
Download 512px Square Thumbnail
|
||||
</span></a>
|
||||
<a href="/artists/{{ $artwork->artist->id }}"
|
||||
class="btn btn-medium btn-gradient w-100 justify-content-center mt-5"><span><i
|
||||
class="ri-user-fill"></i>
|
||||
View Artist Profile
|
||||
</span></a>
|
||||
<a href="/episodes/{{ $artwork->episode->slug }}"
|
||||
class="btn btn-medium btn-gradient w-100 justify-content-center mt-5"><span><i
|
||||
class="ri-headphone-fill"></i>
|
||||
View This Episode
|
||||
</span></a>
|
||||
<a href="/podcasts/{{ $artwork->podcast->slug }}"
|
||||
class="btn btn-medium btn-gradient w-100 justify-content-center mt-5"><span><i
|
||||
class="ri-broadcast-line"></i>
|
||||
View {{ $artwork->podcast->name }} Podcast
|
||||
</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
@ -1,132 +0,0 @@
|
||||
@extends('layouts.master')
|
||||
|
||||
@section('page-top')
|
||||
<section class="inner-page-banner bg-2 bg-image">
|
||||
<div class="container">
|
||||
<div class="inner text-center">
|
||||
<h1 class="title">Submit New Artwork</h1>
|
||||
<nav class="mt-4">
|
||||
<ol class="breadcrumb justify-content-center">
|
||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
||||
<li class="breadcrumb-item"><a href="/artworks">Explore Artwork</a></li>
|
||||
<li class="breadcrumb-item active">Create</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@section('page-content')
|
||||
<section class="pt-120 pb-90">
|
||||
<div class="container">
|
||||
<form action="/create-artwork" method="POST" name="create-artwork" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="create-item-wrapper">
|
||||
@if($errors->any())
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
{{-- file upload area --}}
|
||||
<div class="upload-area">
|
||||
<div class="upload-formate mb-6">
|
||||
<h5 class="title mb-1">
|
||||
Upload Artwork File
|
||||
</h5>
|
||||
<p class="formate">
|
||||
Drag or choose your file to upload.<br>
|
||||
It will be resized to 3,000px square <em>(thanks Apple.)</em>
|
||||
</p>
|
||||
</div>
|
||||
<div class="browse-file-wrapper">
|
||||
{{-- actual upload which is hidden --}}
|
||||
<input name="file" id="file" type="file" class="inputfile" required />
|
||||
{{-- our custom upload button --}}
|
||||
<label for="file" title="No File Choosen">
|
||||
<i class="ri-upload-cloud-line"></i>
|
||||
<span class="text-center mb-2">Choose a File</span>
|
||||
<span class="file-type text-center mt--10">PNG, JPG, JPEG<br>
|
||||
Max 20Mb<br>
|
||||
Prefer 3,000px Square</span>
|
||||
</label>
|
||||
</div>
|
||||
@error('file')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
{{-- end upoad file area --}}
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div class="form-field-wrapper mb-4">
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-4">
|
||||
<div class="field-box">
|
||||
<label for="title" class="form-label">Artwork Title</label>
|
||||
<input id="title" name="title" type="text" class="@error('title') is-invalid @enderror"
|
||||
placeholder="e. g. `This Artwork's Title`"
|
||||
required
|
||||
value="{{ old('title') }}">
|
||||
@error('title')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 mb-4">
|
||||
<div class="field-box">
|
||||
<label for="description" class="form-label">Artwork Description</label>
|
||||
<textarea id="description" name="description" rows="3" class="@error('description') is-invalid @enderror"
|
||||
placeholder="e. g. “This cryptic mess represents...”">{{ old('description') }}</textarea>
|
||||
@error('description')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 mb-4 pb-4">
|
||||
<div class="field-box">
|
||||
<label for="podcast" class="form-label">For Podcast</label>
|
||||
<select id="podcast" name="podcast" required>
|
||||
@foreach ($podcasts as $podcast)
|
||||
<option value="{{ $podcast->id }}" @selected(old('podcast') == $podcast->id)>{{ $podcast->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .row --}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p>By submitting this artwork, you agree you have the rights to publish the artwork and are placing this artwork under a
|
||||
non-revokable <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a> license.</p>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .row --}}
|
||||
</div>
|
||||
{{-- End .create-item-wrapper --}}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="d-flex-between upload-btn-wrapper flex-wrap">
|
||||
<div class="d-flex-center ">
|
||||
<button type="reset" class="btn btn-gradient btn-medium mr-3"><span>Cancel</span></button>
|
||||
</div>
|
||||
<div class="input-box">
|
||||
<button type="submit" class="btn btn-gradient btn-medium justify-content-center"><span>Submit Artwork.</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{-- ENd .row --}}
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
@ -1,7 +0,0 @@
|
||||
@extends('layouts.master')
|
||||
@section('page-top')
|
||||
<br><br><br><br><br>
|
||||
@endsection
|
||||
@section('page-content')
|
||||
{{ $slot }}
|
||||
@endsection
|
@ -1,84 +0,0 @@
|
||||
@extends('layouts.master')
|
||||
|
||||
@section('page-top')
|
||||
<section class="inner-page-banner bg-2 bg-image">
|
||||
<div class="container">
|
||||
<div class="inner text-center">
|
||||
<h1 class="title">Submitted Artwork</h1>
|
||||
<nav class="mt-4">
|
||||
<ol class="breadcrumb justify-content-center">
|
||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
||||
<li class="breadcrumb-item active"><a href="/artworks">Explore Artwork</a></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@section('page-content')
|
||||
<section class="pt-120 pb-90 masonary-wrapper-activation">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{{ $artworks->links() }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="d-flex-between flex-wrap">
|
||||
<div
|
||||
class="button-group default-tab-list isotop-filter flex-wrap filters-button-group d-flex justify-content-start justify-content-lg-start mb-6 ">
|
||||
<button data-filter="*" class="is-checked"><span class="filter-text">View All</span></button>
|
||||
@foreach ($podcasts as $podcast)
|
||||
<button data-filter=".podcast--{{ $podcast->slug }}"><span class="filter-text">{{ $podcast->name }}</span></button>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-filter-wrapper masonry-list">
|
||||
<div class="resizer"></div>
|
||||
@foreach ($artworks as $artwork)
|
||||
<div class="grid-item podcast--{{ $artwork->podcast->slug }}">
|
||||
<div class="explore-style-one {{ $artwork->episode->artwork_id == $artwork->id ? 'selected' : '' }}">
|
||||
<div class="thumb">
|
||||
<a href="/artworks/{{ $artwork->id }}"><img src="http://{{ config('app.static_asset_url') }}/thumbnails/{{ $artwork->filename }}" alt="{{ $artwork->title }} by {{ $artwork->artist->name }} for {{ $artwork->podcast->title }}"></a>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="header d-flex-between pt-4 pb-3">
|
||||
<h3 class="title"><a href="/artwork/{{ $artwork->id }}">"{{ $artwork->title }}"</a></h3>
|
||||
<div class="more-dropdown "><i class="ri-more-fill" data-bs-toggle="dropdown"></i>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
<li><a class="dropdown-item" href="#">Artist Profile</a></li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="#">Episode Submissions</a></li>
|
||||
<li><a class="dropdown-item" href="#">Episode Details</a></li>
|
||||
<li><a class="dropdown-item" href="#">Report</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{-- .header --}}
|
||||
<div class="product-owner py-4 d-flex-between">
|
||||
<span class="bid-owner">Artwork By<br><strong><a href="/artist/{{ $artwork->artist->id }}">{{ $artwork->artist->name }}</a></strong></span>
|
||||
<span class="profile-share d-flex-center"><a href="/artist/{{ $artwork->artist->id }}" class="avatar" data-bs-toggle="tooltip" data-bs-placement="top"
|
||||
title="{{ $artwork->artist->name }}"><img src="{{ Vite::asset($recent->artist->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}" style="width:100%;height:auto;" alt="{{ $artwork->artist->name }}"></a></span>
|
||||
</div>
|
||||
{{-- End .product-owner --}}
|
||||
<div class="action-wrapper d-flex-between pt-4">
|
||||
<span class="bid-owner">{{ $artwork->id == $artwork->episode->artwork_id ? 'Selected' : 'Submitted' }} for <br><strong><a href="/artist/{{ $artwork->artist->id }}">{{ $artwork->podcast->name }}<br> Episode {{ number_format($artwork->episode->episode_number) }}</a></strong></span>
|
||||
</div>
|
||||
{{-- action-wrapper --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{{ $artworks->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
|
||||
|
||||
|
@ -1,41 +0,0 @@
|
||||
{{-- Start Setup Wallet --}}
|
||||
<section class="wallet-setup ptb-120">
|
||||
<div class="container">
|
||||
<div class="section-title">
|
||||
<span class="subtitle">WHAT THIS IS</span>
|
||||
<h2>Artists + Podcasters = <i class="ri-heart-fill"></i></h2>
|
||||
</div>
|
||||
{{-- End .section-title --}}
|
||||
<div class="slider wallet-activation slick-arrow-between slick-gutter-15 grid auto-rows-fr">
|
||||
<div class="card-block-style-one">
|
||||
<h3 class="title mb-3">Setup Your Account & Artist Profile</h3>
|
||||
<p>First things first, you need to have an account to control your artist profiles and submit artwork.
|
||||
Setting up your account is easy, you just need an email address and some creativity. Once you have
|
||||
your account, you can create one more artist profiles which are controlled by you.
|
||||
</p>
|
||||
</div>
|
||||
{{-- End .card-block-style-one --}}
|
||||
|
||||
|
||||
<div class="card-block-style-one">
|
||||
<h3 class="title mb-3">Submit Your Album Artwork</h3>
|
||||
<p>Your artwork should be unique, high-quality, and on-topic. Our artists stive to provide the podcast
|
||||
hosts with unqiue artwork each and every episode to use as the album artwork. artwork should be
|
||||
a minimum of 512px square.
|
||||
</p>
|
||||
</div>
|
||||
{{-- End .card-block-style-one --}}
|
||||
|
||||
<div class="card-block-style-one">
|
||||
<h3 class="title mb-3">Podcasters Select Your Art</h3>
|
||||
<p>When publishing their podcast, podcasters select the album art they like best, and if you are selected,
|
||||
you'll get your credit here and usually in the show-notes of the podcast that used your art. If you aren't
|
||||
selected for Album Art, your artwork could be used for Podcasting 2.0 chapter art as well.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .row --}}
|
||||
</div>
|
||||
{{-- End .container --}}
|
||||
</section>
|
||||
{{-- End Setup Wallet --}}
|
@ -3,19 +3,15 @@
|
||||
<span>Live Since 2010</span>
|
||||
</h1>
|
||||
<p data-aos="fade-up" data-aos-delay="100">
|
||||
A community collaboration producing the best podcast album art in the universe!<br>
|
||||
Once discussed on <em>The Joe Rogan Experience</em>, sadly,<br>
|
||||
Young Jamie was not asked to pull this up.
|
||||
A community collaboration producing the best podcast album art in the universe!
|
||||
</p>
|
||||
<div class="group-btn mt-8" data-aos="fade-up" data-aos-delay="200">
|
||||
<a href="/artworks" class="btn btn-gradient">
|
||||
<a href="explore-filter-sidebar.html" class="btn btn-gradient">
|
||||
<span><i class="ri-rocket-line"></i>Explore</span>
|
||||
</a>
|
||||
@if (Auth::user())
|
||||
<a href="/create-artwork" class="btn btn-outline">
|
||||
<a href="create.html" class="btn btn-outline">
|
||||
<span><i class="ri-edit-line"></i> Create</span>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
<div class="counter-wrapper counter-wrapper-style-two">
|
||||
@foreach ($headerCounters as $headerCounterLabel => $headerCounterCount)
|
||||
|
@ -1,16 +0,0 @@
|
||||
<section class="hero-banner-style bg-5 bg-image top-section-gap hero-banner-style-4">
|
||||
<div class="hero-banner_inner">
|
||||
<div class="container-fluid">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-xl-7 col-lg-6 col-md-12">
|
||||
@include('home.hero.banner-left')
|
||||
</div>
|
||||
<div class="col-xl-5 col-lg-6 col-md-12">
|
||||
@include('home.hero.slider.slider')
|
||||
</div>
|
||||
{{-- End .col --}}
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .container --}}
|
||||
</div>
|
||||
</section>
|
@ -28,15 +28,14 @@
|
||||
<span class="bid-owner">Artwork Selected For<br>
|
||||
<strong><a href="#">{{ $recentEpisode->podcast->name }}</a></strong>
|
||||
<br>
|
||||
<a href="#">Episode {{ number_format($recentEpisode->episode_number + 0) }}<br>
|
||||
{{ $recentEpisode->episode_date->format('D, M j') }}<sup>{{ $recentEpisode->episode_date->format('S') }}</sup>{{ $recentEpisode->episode_date->format(', Y') }}</a></span>
|
||||
<a href="#">Episode {{ number_format($recentEpisode->episode_number + 0) }}</a></span>
|
||||
</div>
|
||||
<div class="product-owner py-1 d-flex-between">
|
||||
<span class="bid-owner">Artwork By<br><strong><a
|
||||
href="author-profile.html">{{ $recentEpisode->artwork->artist->name ?? 'Unknown' }}</a></strong></span>
|
||||
<span class="profile-share d-flex-center"><a href="author-profile.html" class="avatar" data-bs-toggle="tooltip" data-bs-placement="top"
|
||||
title="{{ $recentEpisode->artwork->artist->name }}"><img src="{{ Vite::asset($recentEpisode->artwork->artist->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}"
|
||||
alt="{{ $recentEpisode->artwork->artist->name }}"></a></span>
|
||||
title="{{ $recentEpisode->artwork->artist->name }}"><img src="{{ Vite::asset('resources/img/default_avatars/default_avatar_users_' . str_pad(rand(1, 32), 2, '0', STR_PAD_LEFT) . '.svg') }}"
|
||||
alt="{{ $recentEpisode->artwork->artist->name }}"></a></span>
|
||||
</div>
|
||||
<!-- End .product-owner -->
|
||||
</div>
|
||||
|
@ -1,26 +0,0 @@
|
||||
<div class="col-xxl-4 col-lg-6 col-md-6 mb-6">
|
||||
<div class="top-seller-style-two d-flex-between">
|
||||
<div class="d-flex-center">
|
||||
<div class="thumb-wrapper">
|
||||
<a href="author-profile.html" class="thumb">
|
||||
<img src="{{ Vite::asset($leaderboardArtist->artist->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}" alt="{{ $leaderboardArtist->artist->name }}"
|
||||
title="{{ $leaderboardArtist->artist->name }}">
|
||||
</a>
|
||||
</div>
|
||||
{{-- End .thumb-wrapper --}}
|
||||
{{-- End .thumb --}}
|
||||
<div class="content">
|
||||
<h4 class="title pb-1"><a href="author-profile.html">{{ $leaderboardArtist->artist->name }}</a></h4>
|
||||
<span class="price">Chosen {{ $leaderboardArtist->artworkCount }} {{ Str::plural('Time', $leaderboardArtist->artworkCount) }}</span>
|
||||
</div>
|
||||
{{-- End .content --}}
|
||||
</div>
|
||||
{{-- End .d-flex-center --}}
|
||||
<a href="author-profile.html" class="items-number d-flex-center flex-column">
|
||||
<strong class="pb-1">{{ $leaderboardArtist->position }}<sup>{{ numberSuffix($leaderboardArtist->position) }}</sup></strong>
|
||||
<span>Place</span>
|
||||
</a>
|
||||
</div>
|
||||
{{-- End .top-seller-style-two --}}
|
||||
</div>
|
||||
{{-- End .col --}}
|
@ -1,23 +0,0 @@
|
||||
{{-- Start Top Seller --}}
|
||||
<section class="section-bg-separation-2 ptb-120">
|
||||
<div class="container">
|
||||
<div class="d-flex-between">
|
||||
<div class="section-title">
|
||||
<span class="subtitle">The Artists</span>
|
||||
<h2>Past Year Leaderboard</h2>
|
||||
</div>
|
||||
{{-- End .section-title --}}
|
||||
<div class="text-large">
|
||||
<a href="#">View Leaderboards</a>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .d-flex-between --}}
|
||||
<div class="row">
|
||||
@foreach($leaderboard as $leaderboardArtist)
|
||||
@include('home.leaderboard.card')
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
{{-- End container --}}
|
||||
</section>
|
||||
{{-- End section --}}
|
@ -1,10 +1,20 @@
|
||||
@extends('layouts.master')
|
||||
@section('page-top')
|
||||
@include('home.hero.hero')
|
||||
@endsection
|
||||
|
||||
@section('page-content')
|
||||
@include('home.recents.section')
|
||||
@include('home.explainer.explainer')
|
||||
@include('home.leaderboard.section')
|
||||
@section('hero')
|
||||
<section class="hero-banner-style bg-5 bg-image top-section-gap hero-banner-style-4">
|
||||
<div class="hero-banner_inner">
|
||||
<div class="container-fluid">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-xl-7 col-lg-6 col-md-12">
|
||||
@include('home.hero.banner-left')
|
||||
</div>
|
||||
<div class="col-xl-5 col-lg-6 col-md-12">
|
||||
@include('home.hero.slider.slider')
|
||||
</div>
|
||||
<!-- End .col -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- End .container -->
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
@ -1,35 +0,0 @@
|
||||
<div class="explore-style-one podcast--{{ $recent->podcast->slug }} {{ $recent->episode->artwork_id == $recent->id ? 'selected' : '' }}">
|
||||
<div class="thumb">
|
||||
<a href="product-details.html"><img src="http://{{ config('app.static_asset_url') }}/thumbnails/{{ $recent->filename }}" alt="{{ $recent->title }} by {{ $recent->artist->name }} for {{ $recent->podcast->title }}"></a>
|
||||
</div>
|
||||
{{-- End .thumb --}}
|
||||
<div class="content">
|
||||
<div class="header d-flex-between pt-4 pb-3">
|
||||
<h3 class="title"><a href="product-details.html">"{{ $recent->title }}"</a></h3>
|
||||
<div class="more-dropdown "><i class="ri-more-fill" data-bs-toggle="dropdown"></i>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
<li><a class="dropdown-item" href="#">Artist Profile</a></li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="#">Episode Submissions</a></li>
|
||||
<li><a class="dropdown-item" href="#">Episode Details</a></li>
|
||||
<li><a class="dropdown-item" href="#">Report</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{-- .header --}}
|
||||
<div class="product-owner py-4 d-flex-between">
|
||||
<span class="bid-owner">Artwork By<br><strong><a href="/artist/{{ $recent->artist->id }}">{{ $recent->artist->name }}</a></strong></span>
|
||||
<span class="profile-share d-flex-center"><a href="/artist/{{ $recent->artist->id }}" class="avatar" data-bs-toggle="tooltip" data-bs-placement="top"
|
||||
title="{{ $recent->artist->name }}"><img src="{{ Vite::asset($recent->artist->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}" style="width:100%;height:auto;" alt="{{ $recent->artist->name }}"></a></span>
|
||||
</div>
|
||||
{{-- End .product-owner --}}
|
||||
<div class="action-wrapper d-flex-between pt-4">
|
||||
<span class="bid-owner">{{ $recent->id == $recent->episode->artwork_id ? 'Selected' : 'Submitted' }} for<br><strong><a href="/artist/{{ $recent->artist->id }}">{{ $recent->podcast->name }}<br>Episode {{ number_format($recent->episode->episode_number) }}</a></strong></span>
|
||||
</div>
|
||||
{{-- action-wrapper --}}
|
||||
</div>
|
||||
{{-- End .content --}}
|
||||
</div>
|
||||
{{-- End .explore-style-one --}}
|
@ -1,18 +0,0 @@
|
||||
{{-- Start Live Auction --}}
|
||||
<section class="ptb-120 live-auction">
|
||||
<div class="container">
|
||||
<div class="section-title">
|
||||
<span class="subtitle">Artworks</span>
|
||||
<h2>Recent Artwork Submissons</h2>
|
||||
</div>
|
||||
{{-- End .section-title --}}
|
||||
<div class="slider slick-activation-001 slick-gutter-15 slick-pagination-50">
|
||||
@foreach ($recentSubmissions as $recent)
|
||||
@include('home.recents.card')
|
||||
@endforeach
|
||||
{{-- End .slick-activation-01 --}}
|
||||
</div>
|
||||
{{-- End .container --}}
|
||||
</div>
|
||||
</section>
|
||||
{{-- End Live Auction --}}
|
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,16 @@
|
||||
<nav x-data="{ open: false }" class="bg-white dark:bg-gray-800 border-b border-gray-100 dark:border-gray-700">
|
||||
{{-- Primary Navigation Menu --}}
|
||||
<!-- Primary Navigation Menu -->
|
||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="flex justify-between h-16">
|
||||
<div class="flex">
|
||||
{{-- Logo --}}
|
||||
<!-- Logo -->
|
||||
<div class="shrink-0 flex items-center">
|
||||
<a href="{{ route('dashboard') }}">
|
||||
<x-application-logo class="block h-9 w-auto fill-current text-gray-800 dark:text-gray-200" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{-- Navigation Links --}}
|
||||
<!-- Navigation Links -->
|
||||
<div class="hidden space-x-8 sm:-my-px sm:ml-10 sm:flex">
|
||||
<x-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')">
|
||||
{{ __('Dashboard') }}
|
||||
@ -18,7 +18,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Settings Dropdown --}}
|
||||
<!-- Settings Dropdown -->
|
||||
<div class="hidden sm:flex sm:items-center sm:ml-6">
|
||||
<x-dropdown align="right" width="48">
|
||||
<x-slot name="trigger">
|
||||
@ -38,7 +38,7 @@
|
||||
{{ __('Profile') }}
|
||||
</x-dropdown-link>
|
||||
|
||||
{{-- Authentication --}}
|
||||
<!-- Authentication -->
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
</x-dropdown>
|
||||
</div>
|
||||
|
||||
{{-- Hamburger --}}
|
||||
<!-- Hamburger -->
|
||||
<div class="-mr-2 flex items-center sm:hidden">
|
||||
<button @click="open = ! open" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-900 focus:outline-none focus:bg-gray-100 dark:focus:bg-gray-900 focus:text-gray-500 dark:focus:text-gray-400 transition duration-150 ease-in-out">
|
||||
<svg class="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||
@ -64,7 +64,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Responsive Navigation Menu --}}
|
||||
<!-- Responsive Navigation Menu -->
|
||||
<div :class="{'block': open, 'hidden': ! open}" class="hidden sm:hidden">
|
||||
<div class="pt-2 pb-3 space-y-1">
|
||||
<x-responsive-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')">
|
||||
@ -72,7 +72,7 @@
|
||||
</x-responsive-nav-link>
|
||||
</div>
|
||||
|
||||
{{-- Responsive Settings Options --}}
|
||||
<!-- Responsive Settings Options -->
|
||||
<div class="pt-4 pb-1 border-t border-gray-200 dark:border-gray-600">
|
||||
<div class="px-4">
|
||||
<div class="font-medium text-base text-gray-800 dark:text-gray-200">{{ Auth::user()->name }}</div>
|
||||
|
@ -1,7 +0,0 @@
|
||||
<div>
|
||||
<h1>{{ $count }}</h1>
|
||||
|
||||
<button wire:click="increment">+</button>
|
||||
|
||||
<button wire:click="decrement">-</button>
|
||||
</div>
|
@ -1,9 +0,0 @@
|
||||
<li>
|
||||
<label class="theme-switcher-label d-flex" for="theme-switcher">
|
||||
<input type="checkbox" class="theme-switcher" id="theme-switcher">
|
||||
<div class="switch-handle">
|
||||
<i class="ri-sun-line light-text" wire:click="light"></i>
|
||||
<i class="ri-moon-line dark-text" wire:click="dark"></i>
|
||||
</div>
|
||||
</label>
|
||||
</li>
|
@ -1,73 +0,0 @@
|
||||
{{-- Start Footer --}}
|
||||
<footer class="footer-wrapper">
|
||||
<div class="footer-inner pt-120 pb-80">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-5 col-md-6 mb-8">
|
||||
<div class="footer-widget first-block">
|
||||
<div class="mb-4">
|
||||
<a href="/" class="logo-light"><img src="{{ Vite::asset('resources/img/logo-dark-naag-mob.png') }}" alt="No Agenda Art Generator"
|
||||
title="No Agenda Art Generator - Home"></a>
|
||||
<a href="/" class="logo logo-dark"><img src="{{ Vite::asset('resources/img/logo-white-naag-mob.png') }}" alt="No Agenda Art Generator"
|
||||
title="No Agenda Art Generator - Home"></a>
|
||||
</div>
|
||||
<p class="mb-5 text-justify">Providing the best podcast album art in the universe since 2010.
|
||||
By submitting artwork, you are acknowledging
|
||||
you have the right to publish the work and are agreeing to place the work under the
|
||||
<a href="https://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution
|
||||
Share-Alike 3.0, United States License</a>. TYFYC and ITM.
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .col --}}
|
||||
|
||||
<div class="col-lg-2 col-md-6 mb-8">
|
||||
<div class="footer-widget">
|
||||
<h4>Community</h4>
|
||||
<ul class="footer-list-widget">
|
||||
<li><a href="https://noagendashow.net">No Agenda Show</a></li>
|
||||
<li><a href="https://noagendasocial.com/">No Agenda Social</a></li>
|
||||
<li><a href="https://noagendastream.com">No Agenda Stream</a></li>
|
||||
<li><a href="http://listen.noagendastream.com/">Alternate Stream Link</a></li>
|
||||
<li><a href="http://noagendanation.com/">No Agenda Nation</a></li>
|
||||
<li><a href="http://noagendashop.com/">No Agenda Shop</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .col --}}
|
||||
|
||||
<div class="col-lg-2 col-md-6 mb-8">
|
||||
<div class="footer-widget">
|
||||
<h4>Navigation</h4>
|
||||
<ul class="footer-list-widget">
|
||||
<li><a href="blog.html">Blog</a></li>
|
||||
<li><a href="activity.html">Activity</a></li>
|
||||
<li><a href="popular-collections-2.html">Collections</a></li>
|
||||
<li><a href="signin.html">Signin</a></li>
|
||||
<li><a href="signup.html">SignUp</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .col --}}
|
||||
|
||||
<div class="col-lg-3 col-md-6 mb-8">
|
||||
<div class="footer-widget">
|
||||
<h4>Support</h4>
|
||||
<ul class="footer-list-widget">
|
||||
<li><a href="https://dvorak.org/na">Donate to the No Agenda Podcast</a></li>
|
||||
<li><a rel="me" href="/support-development">Support The Generator</a></li>
|
||||
<li><a rel="me" href="https://noagendasocial.com/@SirPaulCouture">Argue with me on NA Social</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .col --}}
|
||||
</div>
|
||||
</div>
|
||||
{{-- End .container --}}
|
||||
</div>
|
||||
<div class="copyright text-center">
|
||||
<div class="container">
|
||||
<p>Copyright © 2010-{{ date('Y') }} Paul Couture. Some Rights Reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{{-- End Footer --}}
|
@ -20,7 +20,6 @@
|
||||
</div>
|
||||
<div class="header-right d-flex align-items-center">
|
||||
<ul class="header-right-inner">
|
||||
{{--
|
||||
<li class=" d-none d-lg-block">
|
||||
<form action="#" class="search-bar">
|
||||
<input type="text" name="search" placeholder="Artist, Podcast or Episode" id="search">
|
||||
@ -36,30 +35,26 @@
|
||||
<button class="search-btn" type="submit"> <i class="ri-search-line"></i></button>
|
||||
</form>
|
||||
</li>
|
||||
--}}
|
||||
@if (!Auth::user())
|
||||
<li class="wallet-button"> <a href="/login" class="btn btn-gradient btn-small">
|
||||
<span><i class="ri-wallet-3-line"></i>Join In</span></a>
|
||||
</li>
|
||||
@else
|
||||
<li class="avatar-info"> <a href="#"><img
|
||||
@if (Auth::user() && Auth::user()->artists->first())
|
||||
src="{{ Vite::asset(Auth::user()->artists->first()->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}"
|
||||
@else
|
||||
src="{{ Vite::asset('resources/img/default_avatars/default_avatar_male.svg') }}"
|
||||
@endif
|
||||
alt="user avatar"></a>
|
||||
<li class="wallet-button"> <a href="wallet.html" class="btn btn-gradient btn-small">
|
||||
<span><i class="ri-wallet-3-line"></i>Join In</span></a>
|
||||
</li>
|
||||
<li class="avatar-info"> <a href="#"><img src="{{ Vite::asset('resources/img/default_avatars/default_avatar_users_' . str_pad(rand(1, 50), 2, '0', STR_PAD_LEFT) . '.svg') }}" alt="user avatar"></a>
|
||||
<ul class="submenu">
|
||||
@if (Auth::user())
|
||||
<li><a href="/user-account"><i class="ri-user-line"></i> Profile</a></li>
|
||||
<li><a href="/logout"><i class="ri-logout-box-r-line"></i>Sign Out</a></li>
|
||||
@else
|
||||
<li><a href="/login"><i class="ri-logout-box-r-line"></i>Sign in</a></li>
|
||||
@endif
|
||||
<li><a href="author-profile.html"><i class="ri-user-line"></i> Profile</a></li>
|
||||
<li><a href="create.html"><i class="ri-edit-line"></i> Create Item</a></li>
|
||||
<li><a href="authors.html"><i class="ri-layout-grid-line"></i>Authors</a></li>
|
||||
<li><a href="signin.html"><i class="ri-logout-box-r-line"></i>Sign in</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
<livewire:themeswitch />
|
||||
<li>
|
||||
<label class="theme-switcher-label d-flex" for="theme-switcher">
|
||||
<input type="checkbox" class="theme-switcher" id="theme-switcher">
|
||||
<div class="switch-handle">
|
||||
<i class="ri-sun-line light-text"></i>
|
||||
<i class="ri-moon-line dark-text"></i>
|
||||
</div>
|
||||
</label>
|
||||
</li>
|
||||
<li class="setting-option mobile-menu-bar d-block d-xl-none">
|
||||
<button class="hamburger-button">
|
||||
<i class="ri-menu-2-fill"></i>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user