-
+
-
+
@@ -207,6 +271,9 @@
\ No newline at end of file
diff --git a/resources/assets/js/components/likebutton.js b/resources/assets/js/components/likebutton.js
deleted file mode 100644
index 7888f220..00000000
--- a/resources/assets/js/components/likebutton.js
+++ /dev/null
@@ -1,75 +0,0 @@
-$(document).ready(function() {
-
- pixelfed.fetchLikes = () => {
- let ts = Date.now();
- let offset = ts - 900000;
- let updated = ls.get('likesUpdated');
-
- if(updated != null && ls.get('likes').length > 0 || offset < updated) {
- return;
- }
-
- axios.get('/api/v1/likes')
- .then(function (res) {
- ls.set('likes', res.data);
- ls.set('likesUpdated', ts);
- })
- .catch(function (res) {
- ls.set('likes', []);
- ls.set('likesUpdated', ts);
- })
- }
-
-
- pixelfed.hydrateLikes = () => {
- var likes = ls.get('likes');
- $('.like-form').each(function(i, el) {
- var el = $(el);
- var id = el.data('id');
- var heart = el.find('.status-heart');
-
- if(likes.indexOf(id) != -1) {
- heart.removeClass('far text-dark').addClass('fas text-danger');
- } else {
- heart.removeClass('fas text-danger').addClass('far text-dark');
- }
- });
- };
-
- pixelfed.fetchLikes();
- pixelfed.hydrateLikes();
-
- $(document).on('submit', '.like-form', function(e) {
- e.preventDefault();
- var el = $(this);
- var id = el.data('id');
- axios.post('/i/like', {item: id})
- .then(function (res) {
- pixelfed.fetchLikes();
- pixelfed.hydrateLikes();
- var likes = ls.get('likes');
- var action = false;
- var counter = el.parents().eq(1).find('.like-count');
- var count = res.data.count;
- var heart = el.find('.status-heart');
-
- if(likes.indexOf(id) > -1) {
- heart.removeClass('fas text-danger').addClass('far text-dark');
- likes = likes.filter(function(item) {
- return item !== id
- });
- counter.text(count);
- action = 'unlike';
- } else {
- heart.removeClass('far text-dark').addClass('fas text-danger');
- likes.push(id);
- counter.text(count);
- action = 'like';
- }
-
- ls.set('likes', likes);
- ls.set('likesUpdated', Date.now());
- console.log(action + ' - ' + id + ' like event');
- });
- });
-});
\ No newline at end of file
diff --git a/resources/assets/js/components/notifications.js b/resources/assets/js/components/notifications.js
index 687c70e5..07ff4dbe 100644
--- a/resources/assets/js/components/notifications.js
+++ b/resources/assets/js/components/notifications.js
@@ -155,8 +155,5 @@ $(document).ready(function() {
})
}
- if($('body').hasClass('loggedIn') == true) {
- pixelfed.n.fetch();
- }
});
\ No newline at end of file
diff --git a/resources/assets/js/components/passport/Clients.vue b/resources/assets/js/components/passport/Clients.vue
index 5cd68f26..d5dac362 100644
--- a/resources/assets/js/components/passport/Clients.vue
+++ b/resources/assets/js/components/passport/Clients.vue
@@ -21,7 +21,7 @@
-
+
You have not created any OAuth clients.
@@ -55,14 +55,14 @@
-
+
Edit
-
+
Delete
@@ -112,6 +112,30 @@
+
+
+
+
Redirect URL
@@ -125,6 +149,26 @@
+
+
diff --git a/resources/assets/js/components/shortcuts.js b/resources/assets/js/components/shortcuts.js
new file mode 100644
index 00000000..f87e1349
--- /dev/null
+++ b/resources/assets/js/components/shortcuts.js
@@ -0,0 +1,7 @@
+window.pixelfed.shortcuts = {
+ load: () => {
+ document.onkeyup = function(e) {
+ }
+ }
+}
+
diff --git a/resources/assets/js/discover.js b/resources/assets/js/discover.js
new file mode 100644
index 00000000..f8f104e8
--- /dev/null
+++ b/resources/assets/js/discover.js
@@ -0,0 +1,4 @@
+Vue.component(
+ 'discover-component',
+ require('./components/DiscoverComponent.vue').default
+);
\ No newline at end of file
diff --git a/resources/assets/js/embed.js b/resources/assets/js/embed.js
new file mode 100644
index 00000000..314917d5
--- /dev/null
+++ b/resources/assets/js/embed.js
@@ -0,0 +1,65 @@
+window.pixlfed = {};
+window.pixlfed.config = {
+ domain: process.env.MIX_APP_DOMAIN,
+}
+
+pixlfed.autoSizeIFrame = function(el) {
+ console.log(el.contentDocument);
+ el.style.height = el.contentDocument.body.scrollHeight +'px';
+}
+
+pixlfed.polyfill = function() {
+ [].forEach.call(document.querySelectorAll('div.pixelfed-embed'), function(el) {
+ pixlfed.loadIFrame(el);
+ });
+}
+
+pixlfed.loadIFrame = function(el) {
+ let permalink = el.getAttribute('data-pixlfed-permalink');
+ let parser = document.createElement('a');
+ parser.href = permalink;
+ if(el.getAttribute('loaded') == 'true') {
+ return;
+ }
+ if(pixlfed.config.domain !== parser.host) {
+ el.setAttribute('loaded', 'true');
+ console.error('Invalid embed permalink')
+ return;
+ }
+ let css = 'background: white; max-width: 540px; width: calc(100% - 2px); border-radius: 3px; border: 1px solid rgb(219, 219, 219); box-shadow: none; display: block; margin: 0px 0px 12px; min-width: 326px; padding: 0px;';
+ let iframe = document.createElement('iframe');
+ iframe.onload = function() {
+ pixlfed.autoSizeIFrame(iframe);
+ }
+ iframe.setAttribute('allowtransparency', 'true');
+ iframe.setAttribute('frameborder', '0');
+ iframe.setAttribute('scrolling', 'no');
+ iframe.setAttribute('src', permalink);
+ iframe.setAttribute('style', css);
+ iframe.setAttribute('loaded', 'true');
+ el.replaceWith(iframe);
+}
+
+pixlfed.run = function() {
+ var lazyFrames = [].slice.call(document.querySelectorAll("div.pixelfed-embed"));
+
+ if ("IntersectionObserver" in window) {
+ let lazyFrameObserver = new IntersectionObserver(function(entries, observer) {
+ entries.forEach(function(entry) {
+ if (entry.isIntersecting) {
+ if(entry.target.getAttribute('loaded') !== 'true') {
+ pixlfed.loadIFrame(entry.target);
+ }
+ }
+ });
+ });
+
+ lazyFrames.forEach(function(lazyFrame) {
+ lazyFrameObserver.observe(lazyFrame);
+ });
+ } else {
+ pixlfed.polyfill();
+ }
+}
+
+pixlfed.run();
\ No newline at end of file
diff --git a/resources/assets/js/micro.js b/resources/assets/js/micro.js
new file mode 100644
index 00000000..831c0e78
--- /dev/null
+++ b/resources/assets/js/micro.js
@@ -0,0 +1,40 @@
+require('./bootstrap');
+
+window.Vue = require('vue');
+import BootstrapVue from 'bootstrap-vue'
+import InfiniteLoading from 'vue-infinite-loading';
+import Loading from 'vue-loading-overlay';
+import VueTimeago from 'vue-timeago';
+//import {Howl, Howler} from 'howler';
+
+Vue.use(BootstrapVue);
+Vue.use(InfiniteLoading);
+Vue.use(Loading);
+Vue.use(VueTimeago);
+
+pixelfed.readmore = () => {
+ $('.read-more').each(function(k,v) {
+ let el = $(this);
+ let attr = el.attr('data-readmore');
+ if(typeof attr !== typeof undefined && attr !== false) {
+ return;
+ }
+ el.readmore({
+ collapsedHeight: 44,
+ heightMargin: 20,
+ moreLink: '
Read more ',
+ lessLink: '
Hide ',
+ });
+ });
+};
+
+try {
+ document.createEvent("TouchEvent");
+ $('body').addClass('touch');
+} catch (e) {
+}
+
+Vue.component(
+ 'micro',
+ require('./components/Micro.vue').default
+);
\ No newline at end of file
diff --git a/resources/assets/js/profile.js b/resources/assets/js/profile.js
new file mode 100644
index 00000000..d8711e32
--- /dev/null
+++ b/resources/assets/js/profile.js
@@ -0,0 +1,4 @@
+Vue.component(
+ 'profile',
+ require('./components/Profile.vue').default
+);
\ No newline at end of file
diff --git a/resources/assets/js/status.js b/resources/assets/js/status.js
new file mode 100644
index 00000000..e2510e33
--- /dev/null
+++ b/resources/assets/js/status.js
@@ -0,0 +1,9 @@
+Vue.component(
+ 'post-component',
+ require('./components/PostComponent.vue').default
+);
+
+Vue.component(
+ 'post-comments',
+ require('./components/PostComments.vue').default
+);
\ No newline at end of file
diff --git a/resources/assets/js/timeline.js b/resources/assets/js/timeline.js
index ff9587d6..f41361fc 100644
--- a/resources/assets/js/timeline.js
+++ b/resources/assets/js/timeline.js
@@ -1,68 +1,4 @@
-$(document).ready(function() {
- $('.pagination').hide();
- $('.container.timeline-container').removeClass('d-none');
- let elem = document.querySelector('.timeline-feed');
- let type = elem.getAttribute('data-timeline');
- $('.timeline-sidenav .nav-link[data-type="'+type+'"]').addClass('active');
- pixelfed.readmore();
- pixelfed.fetchLikes();
- $('video').on('play', function() {
- activated = this;
- $('video').each(function() {
- if(this != activated) this.pause();
- });
- });
- let infScroll = new InfiniteScroll( elem, {
- path: '.pagination__next',
- append: '.timeline-feed',
- status: '.page-load-status',
- history: false,
- });
-
- infScroll.on( 'append', function( response, path, items ) {
- pixelfed.hydrateLikes();
- $('.status-card > .card-footer').each(function() {
- var el = $(this);
- if(!el.hasClass('d-none') && !el.find('input[name="comment"]').val()) {
- $(this).addClass('d-none');
- }
- });
- $('video').on('play', function() {
- activated = this;
- $('video').each(function() {
- if(this != activated) this.pause();
- });
- });
- });
-
-
-});
-
-$(document).on("DOMContentLoaded", function() {
-
- var active = false;
- var lazyLoad = function() {
- pixelfed.readmore();
- if (active === false) {
- active = true;
-
- var lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));
- lazyImages.forEach(function(lazyImage) {
- if ((lazyImage.getBoundingClientRect().top <= window.innerHeight && lazyImage.getBoundingClientRect().bottom >= 0) && getComputedStyle(lazyImage).display !== "none") {
- lazyImage.src = lazyImage.dataset.src;
- lazyImage.srcset = lazyImage.dataset.srcset;
- lazyImage.classList.remove("lazy");
-
- lazyImages = lazyImages.filter(function(image) {
- return image !== lazyImage;
- });
- }
- });
-
- active = false;
- };
- }
- document.addEventListener("scroll", lazyLoad);
- window.addEventListener("resize", lazyLoad);
- window.addEventListener("orientationchange", lazyLoad);
-});
+Vue.component(
+ 'timeline',
+ require('./components/Timeline.vue').default
+);
\ No newline at end of file
diff --git a/resources/assets/sass/appdark.scss b/resources/assets/sass/appdark.scss
new file mode 100644
index 00000000..d35c7766
--- /dev/null
+++ b/resources/assets/sass/appdark.scss
@@ -0,0 +1,48 @@
+
+// Fonts
+@import "fonts";
+@import "lib/fontawesome";
+
+// Variables
+@import "dark";
+
+// Bootstrap
+@import '~bootstrap/scss/bootstrap';
+
+@import "custom";
+
+.text-dark {
+ color: #ADAFAE !important;
+}
+
+.bg-white {
+ background: #282828 !important;
+}
+.navbar-laravel {
+ background: #282828 !important;
+}
+
+.far, .fas,
+.navbar-laravel .navbar-brand span,
+.navbar-laravel .nav-link .d-md-block,
+.navbar-laravel .nav-link.dropdown-toggle .far,
+.navbar-laravel .nav-link.dropdown-toggle::after {
+ color: #ADAFAE !important;
+}
+
+.form-control.search-form-input {
+ background: #060606 !important;
+ color: #888 !important;
+}
+
+@import "components/filters";
+
+@import "components/typeahead";
+
+@import "components/notifications";
+
+@import '~bootstrap-vue/dist/bootstrap-vue.css';
+
+@import '~plyr/dist/plyr.css';
+
+@import '~vue-loading-overlay/dist/vue-loading.css';
diff --git a/resources/assets/sass/components/filters.scss b/resources/assets/sass/components/filters.scss
index 99d026a4..8714a1ee 100644
--- a/resources/assets/sass/components/filters.scss
+++ b/resources/assets/sass/components/filters.scss
@@ -1,9 +1,9 @@
/*! Instagram.css v0.1.3 | MIT License | github.com/picturepan2/instagram.css */
-[class*="filter"] {
+[class*="filter-"] {
position: relative;
}
-[class*="filter"]::before {
+[class*="filter-"]::before {
display: block;
height: 100%;
left: 0;
diff --git a/resources/assets/sass/custom.scss b/resources/assets/sass/custom.scss
index f3e7ac95..dfd54a5d 100644
--- a/resources/assets/sass/custom.scss
+++ b/resources/assets/sass/custom.scss
@@ -462,3 +462,24 @@ details summary::-webkit-details-marker {
height: auto;
}
}
+
+.img-thumbnail {
+ box-sizing: content-box;
+}
+
+.reply-container {
+ .post-thumbnail {
+ object-fit: cover;
+ }
+}
+
+#l-modal .modal-body,
+#s-modal .modal-body {
+ height: 60vh;
+ overflow-y: scroll;
+}
+
+#l-modal .modal-content,
+#s-modal .modal-content {
+ border-radius: 0;
+}
diff --git a/resources/assets/sass/dark.scss b/resources/assets/sass/dark.scss
new file mode 100644
index 00000000..9833484c
--- /dev/null
+++ b/resources/assets/sass/dark.scss
@@ -0,0 +1,167 @@
+// Cyborg 4.2.1
+// Bootswatch
+
+//
+// Color system
+//
+
+$white: #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #e9ecef !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ADAFAE !default;
+$gray-500: #888 !default;
+$gray-600: #555 !default;
+$gray-700: #282828 !default;
+$gray-800: #222 !default;
+$gray-900: #212529 !default;
+$black: #000 !default;
+
+$blue: #2A9FD6 !default;
+$indigo: #6610f2 !default;
+$purple: #6f42c1 !default;
+$pink: #e83e8c !default;
+$red: #CC0000 !default;
+$orange: #fd7e14 !default;
+$yellow: #FF8800 !default;
+$green: #77B300 !default;
+$teal: #20c997 !default;
+$cyan: #9933CC !default;
+
+$primary: $blue !default;
+$secondary: $gray-600 !default;
+$success: $green !default;
+$info: $cyan !default;
+$warning: $yellow !default;
+$danger: $red !default;
+$light: $gray-800 !default;
+$dark: $gray-400 !default;
+
+$yiq-contrasted-threshold: 175 !default;
+
+
+// Body
+
+$body-bg: #060606 !default;
+$body-color: $gray-500 !default;
+
+// Fonts
+
+$font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
+$font-size-base: 0.9rem;
+
+
+$headings-color: $white !default;
+
+// Tables
+
+$table-accent-bg: rgba($white,.05) !default;
+$table-hover-bg: rgba($white,.075) !default;
+
+$table-border-color: $gray-700 !default;
+
+$table-dark-bg: $gray-500 !default;
+$table-dark-border-color: darken($gray-500, 7.5%) !default;
+$table-dark-color: $body-bg !default;
+
+// Buttons
+
+$input-btn-padding-x: 1rem !default;
+
+// Forms
+
+$input-disabled-bg: $gray-400 !default;
+
+$input-border-color: transparent !default;
+
+$input-group-addon-color: $white !default;
+$input-group-addon-bg: $gray-700 !default;
+
+$custom-file-color: $white !default;
+$custom-file-border-color: $gray-700 !default;
+
+// Dropdowns
+
+$dropdown-bg: $gray-700 !default;
+$dropdown-divider-bg: $gray-800 !default;
+
+$dropdown-link-color: $white !default;
+$dropdown-link-hover-color: $white !default;
+$dropdown-link-hover-bg: $primary !default;
+
+// Navs
+
+$nav-tabs-border-color: $table-border-color !default;
+$nav-tabs-link-hover-border-color: $nav-tabs-border-color !default;
+$nav-tabs-link-active-color: $white !default;
+$nav-tabs-link-active-bg: $nav-tabs-border-color !default;
+$nav-tabs-link-active-border-color: $nav-tabs-border-color !default;
+
+// Navbar
+
+$navbar-dark-hover-color: $white !default;
+
+// Pagination
+
+$pagination-color: $white !default;
+$pagination-bg: $gray-700 !default;
+$pagination-border-color: transparent !default;
+
+$pagination-hover-color: $white !default;
+$pagination-hover-bg: $primary !default;
+$pagination-hover-border-color: $pagination-border-color !default;
+
+$pagination-disabled-bg: $pagination-bg !default;
+$pagination-disabled-border-color: $pagination-border-color !default;
+
+
+// Jumbotron
+
+$jumbotron-bg: $gray-700 !default;
+
+// Cards
+
+$card-bg: $gray-700 !default;
+
+// Tooltips
+
+$tooltip-bg: $gray-700 !default;
+$tooltip-opacity: 1 !default;
+
+// Popovers
+
+$popover-bg: $gray-700 !default;
+
+// Modals
+
+$modal-content-bg: $gray-800 !default;
+
+$modal-header-border-color: $gray-700 !default;
+
+// Progress bars
+
+$progress-bg: $gray-700 !default;
+
+// List group
+
+$list-group-bg: $gray-800 !default;
+$list-group-border-color: $gray-700 !default;
+
+$list-group-hover-bg: $primary !default;
+
+$list-group-disabled-bg: $gray-700 !default;
+
+$list-group-action-active-bg: $primary !default;
+
+// Breadcrumbs
+
+$breadcrumb-bg: $gray-700 !default;
+
+// Close
+
+$close-color: $white !default;
+$close-text-shadow: none !default;
+
+// Code
+
+$pre-color: inherit !default;
\ No newline at end of file
diff --git a/resources/lang/cs/profile.php b/resources/lang/cs/profile.php
index f6fa1fee..b805ad89 100644
--- a/resources/lang/cs/profile.php
+++ b/resources/lang/cs/profile.php
@@ -9,4 +9,7 @@ return [
'privateProfileWarning' => 'Tento účet je soukromý',
'alreadyFollow' => 'Již uživatele :username sledujete?',
'loginToSeeProfile' => 'pro zobrazení jeho/jejích fotek a videí.',
+
+ 'status.disabled.header' => 'Profil nedostupný',
+ 'status.disabled.body' => 'Omlouváme se, tento profil není v tuto chvíli dostupný. Prosím zkuste to znovu zakrátko.',
];
diff --git a/resources/lang/en/notification.php b/resources/lang/en/notification.php
index b85785d6..d737167a 100644
--- a/resources/lang/en/notification.php
+++ b/resources/lang/en/notification.php
@@ -6,5 +6,6 @@ return [
'startedFollowingYou' => 'started following you.',
'commented' => 'commented on your post.',
'mentionedYou' => 'mentioned you.',
+ 'shared' => 'shared your post.',
];
diff --git a/resources/views/account/circles/home.blade.php b/resources/views/account/circles/home.blade.php
new file mode 100644
index 00000000..526c3fff
--- /dev/null
+++ b/resources/views/account/circles/home.blade.php
@@ -0,0 +1,41 @@
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
+
+
+
+ @foreach($circles as $circle)
+
+
+
+
+ @foreach($circle->members()->orderByDesc('created_at')->take(8)->get() as $member)
+
+ @endforeach
+
+
+
{{$circle->members->count()}} Members
+
View
+
+
+
+ @endforeach
+
+
+
+ {{$circles->links()}}
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/apps/home.blade.php b/resources/views/admin/apps/home.blade.php
new file mode 100644
index 00000000..8aaeb117
--- /dev/null
+++ b/resources/views/admin/apps/home.blade.php
@@ -0,0 +1,48 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
+
+
+
+
+ #
+ Owner
+ Name
+ Callback URL
+ Revoked
+ Created
+
+
+
+ @foreach($apps as $app)
+
+
+
+ {{$app->id}}
+
+
+ {{$app->user->username}}
+ {{$app->name}}
+ {{str_limit($app->redirect, 30)}}
+ {{$app->revoked ? 'true' : 'false'}}
+ {{now()->parse($app->created_at)->diffForHumans()}}
+
+ @endforeach
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/apps/show.blade.php b/resources/views/admin/apps/show.blade.php
new file mode 100644
index 00000000..e69de29b
diff --git a/resources/views/admin/discover/create-category.blade.php b/resources/views/admin/discover/create-category.blade.php
new file mode 100644
index 00000000..5d3ae8a8
--- /dev/null
+++ b/resources/views/admin/discover/create-category.blade.php
@@ -0,0 +1,77 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
Discover
+
Create Category
+
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/discover/home.blade.php b/resources/views/admin/discover/home.blade.php
new file mode 100644
index 00000000..c6d0333b
--- /dev/null
+++ b/resources/views/admin/discover/home.blade.php
@@ -0,0 +1,50 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
+
+
+ @foreach($categories as $category)
+
+
+
+
+
+
+
{{$category->hashtags()->count()}}
+
Hashtags
+
+
+
{{$category->posts()->count()}}
+
Posts
+
+
+
+ @if($category->active)
+
Active
+ @endif
+
Edit
+
View
+
+
+
+ @endforeach
+
+
+
+ {{$categories->links()}}
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/discover/show.blade.php b/resources/views/admin/discover/show.blade.php
new file mode 100644
index 00000000..05f88118
--- /dev/null
+++ b/resources/views/admin/discover/show.blade.php
@@ -0,0 +1,249 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
+
Discover Category
+
ID: #{{$category->id}}
+
+
+
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+
+@endpush
+
+@push('styles')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/hashtags/home.blade.php b/resources/views/admin/hashtags/home.blade.php
new file mode 100644
index 00000000..6fa2a1de
--- /dev/null
+++ b/resources/views/admin/hashtags/home.blade.php
@@ -0,0 +1,43 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
Hashtags
+
+
+
+
+
+ #
+ Hashtag
+ Status Count
+ NSFW
+ Banned
+ Created
+
+
+
+ @foreach($hashtags as $tag)
+
+
+
+ {{$tag->id}}
+
+
+ {{$tag->name}}
+
+
+ {{$tag->posts()->count()}}
+
+
+ {{$tag->is_nsfw ? 'true' : 'false'}}
+ {{$tag->is_banned ? 'true' : 'false'}}
+ {{$tag->created_at->diffForHumans()}}
+
+ @endforeach
+
+
+
+ {{$hashtags->links()}}
+
+@endsection
diff --git a/resources/views/admin/hashtags/show.blade.php b/resources/views/admin/hashtags/show.blade.php
new file mode 100644
index 00000000..e69de29b
diff --git a/resources/views/admin/home.blade.php b/resources/views/admin/home.blade.php
index c8cf6e62..31d882b5 100644
--- a/resources/views/admin/home.blade.php
+++ b/resources/views/admin/home.blade.php
@@ -1,4 +1,4 @@
-@extends('admin.partial.template')
+@extends('admin.partial.template-full')
@section('section')
@@ -7,129 +7,135 @@
-
- Hello, {{Auth::user()->name}}
-
-
-
-
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(DB::table('failed_jobs')->where('failed_at', '>=', \Carbon\Carbon::now()->subDay())->count())}}
-
Failed Jobs (24h)
+
+
+
Failed Jobs (24h)
+
{{$data['failedjobs']['count']}}
+
- @php($reports = App\Report::whereNull('admin_seen')->count())
-
-
-
{{App\Util\Lexer\PrettyNumber::convert($reports)}}
-
Reports
-
-
-
-
-
- @php($statuses = App\Status::whereNull('in_reply_to_id')->whereNull('reblog_of_id')->count())
-
-
-
-
-
{{App\Util\Lexer\PrettyNumber::convert($statuses)}}
-
Statuses
-
-
-
-
- @php($replies = App\Status::whereNotNull('in_reply_to_id')->count())
-
-
-
-
{{App\Util\Lexer\PrettyNumber::convert($replies)}}
-
Replies
-
-
-
-
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(App\Status::whereNotNull('reblog_of_id')->count())}}
-
Shares (Reblogs)
+
+
+
Reports
+
{{$data['reports']['count']}}
+
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(App\Like::count())}}
-
Likes
+
+
+
Statuses
+
{{$data['statuses']['count']}}
+
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(App\Profile::count())}}
-
Profiles
+
+
+
Replies
+
{{$data['replies']['count']}}
+
-
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(App\User::count())}}
-
Users
+
+
+
Shares (Reblogs)
+
{{$data['shares']['count']}}
+
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(App\Status::whereNotNull('url')->distinct('url')->count())}}
-
Remote Instances
+
+
+
Likes
+
{{$data['likes']['count']}}
+
-
-
-
{{App\Util\Lexer\PrettyNumber::convert(App\Media::count())}}
-
Photos Uploaded
+
+
+
Profiles
+
{{$data['profiles']['count']}}
+
+
+
+
+
+
+
+
Users
+
{{$data['users']['count']}}
+
+
+
+
+
+
+
+
+
+
+
Remote Instances
+
{{$data['instances']['count']}}
+
+
+
+
+
+
+
+
+
Photos Uploaded
+
{{$data['media']['count']}}
+
+
-
-
-
{{App\Media::sum('size')}} bytes
-
Storage Used
+
+
+
Storage Used
+
{{$data['storage']['count']}} bytes
+
@endsection
@push('scripts')
+
@endpush
\ No newline at end of file
diff --git a/resources/views/admin/instances/home.blade.php b/resources/views/admin/instances/home.blade.php
new file mode 100644
index 00000000..c527eb0b
--- /dev/null
+++ b/resources/views/admin/instances/home.blade.php
@@ -0,0 +1,223 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
Instances
+
+
+
+
+
+
+
+
+
+
+
+@if($instances->count() == 0 && request()->has('filter') == false)
+
+
Warning
+
No instances were found.
+
+
Do you want to scan and populate instances from Profiles and Statuses?
+
+
+
+@else
+
+ @foreach($instances as $instance)
+
+
+
+
+ {{$instance->domain}}
+
+
+ Overview
+ Actions
+ @if($instance->unlisted)
+
+ @endif
+ @if($instance->auto_cw)
+
+ @endif
+ @if($instance->banned)
+
+ @endif
+
+
+
+
+
{{$instance->profiles()->count()}}
+
Profiles
+
+
+
{{$instance->statuses()->count()}}
+
Statuses
+
+
+
{{$instance->reported()->count()}}
+
Reports
+
+
+
+
+
+ @endforeach
+
+
+ {{$instances->links()}}
+
+@endif
+@endsection
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/instances/show.blade.php b/resources/views/admin/instances/show.blade.php
new file mode 100644
index 00000000..635fc171
--- /dev/null
+++ b/resources/views/admin/instances/show.blade.php
@@ -0,0 +1,113 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
+
+
Instance Overview
+
domain: {{$instance->domain}}
+
+
+
+
+
+
+
+
unlisted: {{$instance->unlisted ? 'true' : 'false'}}
+
+
+
CW media: {{$instance->auto_cw ? 'true' : 'false'}}
+
+
+
banned: {{$instance->banned ? 'true' : 'false'}}
+
+
+
+
+
+
+
+
+ {{$instance->profiles->count()}}
+
+
Profiles
+
+
+
+
+
+ {{$instance->reports->count()}}
+
+
Reports
+
+
+
+
+
+
+
+ {{$instance->statuses->count()}}
+
+
Statuses
+
+
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/media/home.blade.php b/resources/views/admin/media/home.blade.php
index bb1d1dcc..aed69472 100644
--- a/resources/views/admin/media/home.blade.php
+++ b/resources/views/admin/media/home.blade.php
@@ -1,24 +1,159 @@
-@extends('admin.partial.template')
+@extends('admin.partial.template-full')
@section('section')
-
-
Media
-
+
+
Media
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
- @foreach($media as $status)
-
- @endforeach
-
+@if(request()->filled('search'))
+
Showing results for: {{request()->input('search')}}
+@endif
-
-
- {{$media->links()}}
-
-@endsection
\ No newline at end of file
+@if(request()->input('layout') == 'list')
+
+ @foreach($media as $status)
+
+
+
+
+
+
mime: {{$status->mime}}
+
content warning:
+
+ remote media:
+
+
+
+
+ @endforeach
+
+
+
+ {{$media->links()}}
+
+@else
+
+ @foreach($media as $status)
+
+ @endforeach
+
+
+
+ {{$media->links()}}
+
+@endif
+@endsection
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/media/show.blade.php b/resources/views/admin/media/show.blade.php
new file mode 100644
index 00000000..2bf1fedb
--- /dev/null
+++ b/resources/views/admin/media/show.blade.php
@@ -0,0 +1,41 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
Media
+
ID: {{$media->id}}
+
+
+
+
+
+
+
+
+
+
+
mime: {{$media->mime}}
+
content warning:
+
+ remote media:
+
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/pages/edit.blade.php b/resources/views/admin/pages/edit.blade.php
index c40dabdd..bf903304 100644
--- a/resources/views/admin/pages/edit.blade.php
+++ b/resources/views/admin/pages/edit.blade.php
@@ -1,19 +1,37 @@
@extends('admin.partial.template')
+@include('admin.settings.sidebar')
+
@section('section')
Edit Page
-
{{request()->query('page')}}
+
{{$page->slug}}
-
-
PixelFed is a federated image sharing platform, powered by the ActivityPub protocol.
-
-
- Save
+
+
+
+ Page URL: {{$page->url()}}
+ Edit
+
+ {!!$page->content!!}
+
+
@endsection
@@ -38,8 +56,29 @@
@endpush
\ No newline at end of file
diff --git a/resources/views/admin/pages/home.blade.php b/resources/views/admin/pages/home.blade.php
new file mode 100644
index 00000000..aeccb9e2
--- /dev/null
+++ b/resources/views/admin/pages/home.blade.php
@@ -0,0 +1,49 @@
+@extends('admin.partial.template')
+
+@include('admin.settings.sidebar')
+
+@section('section')
+
+
Pages
+
Set custom page content
+
+
+
+ Feature Unavailable: This feature will be released in v0.9.0.
+
+ {{--< div class="table-responsive">
+
+
+
+
+ ID
+
+
+ Slug
+
+
+ Active
+
+
+ Updated
+
+
+
+
+ @foreach($pages as $page)
+
+
+ {{$page->id}}
+
+ {{$page->slug}}
+ {{$page->active ? 'active':'inactive'}}
+ {{$page->updated_at->diffForHumans(null, true, true, true)}}
+
+ @endforeach
+
+
+
+
+ {{$pages->links()}}
+
--}}
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/partial/sidebar.blade.php b/resources/views/admin/partial/sidebar.blade.php
index 7ccbd8dd..e33075f2 100644
--- a/resources/views/admin/partial/sidebar.blade.php
+++ b/resources/views/admin/partial/sidebar.blade.php
@@ -1,37 +1,3 @@
\ No newline at end of file
diff --git a/resources/views/admin/partial/template-full.blade.php b/resources/views/admin/partial/template-full.blade.php
new file mode 100644
index 00000000..193f1a42
--- /dev/null
+++ b/resources/views/admin/partial/template-full.blade.php
@@ -0,0 +1,26 @@
+@extends('layouts.app')
+
+@section('content')
+
+@include('admin.partial.topnav')
+
+
+
+
+
+
+
+ @if (session('status'))
+
+ {{ session('status')}}
+
+ @endif
+ @yield('section')
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/partial/template.blade.php b/resources/views/admin/partial/template.blade.php
index df260f7b..4f8b0b95 100644
--- a/resources/views/admin/partial/template.blade.php
+++ b/resources/views/admin/partial/template.blade.php
@@ -2,6 +2,8 @@
@section('content')
+@include('admin.partial.topnav')
+
diff --git a/resources/views/admin/partial/topnav.blade.php b/resources/views/admin/partial/topnav.blade.php
new file mode 100644
index 00000000..2e4ad691
--- /dev/null
+++ b/resources/views/admin/partial/topnav.blade.php
@@ -0,0 +1,67 @@
+
+
+
+
+@push('styles')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/profiles/home.blade.php b/resources/views/admin/profiles/home.blade.php
new file mode 100644
index 00000000..dbcef56d
--- /dev/null
+++ b/resources/views/admin/profiles/home.blade.php
@@ -0,0 +1,144 @@
+@extends('admin.partial.template-full')
+
+@section('section')
+
+
Profiles
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@if(request()->input('layout') == 'list')
+
+
+
+
+
+ ID
+
+
+ Username
+
+
+ Statuses
+
+
+ Storage
+
+
+ Actions
+
+
+
+ @foreach($profiles as $profile)
+
+
+ {{$profile->id}}
+
+
+ @endforeach
+
+
+
+
+ {{$profiles->links()}}
+
+@else
+
+ @foreach($profiles as $profile)
+
+
+
+
+
+
+
{{$profile->statuses()->count()}}
+
+
+
+
+
{{$profile->followers()->count()}}
+
+
+
+
+ View
+ Actions
+
+
+
+
+ @endforeach
+
+
+ {{$profiles->links()}}
+
+@endif
+@endsection
+
+@push('styles')
+
+@endpush
+@push('scripts')
+
+@endpush
diff --git a/resources/views/admin/reports/home.blade.php b/resources/views/admin/reports/home.blade.php
index 644c32ae..b7099514 100644
--- a/resources/views/admin/reports/home.blade.php
+++ b/resources/views/admin/reports/home.blade.php
@@ -1,19 +1,42 @@
-@extends('admin.partial.template')
+@extends('admin.partial.template-full')
@section('section')
-
-
Reports
-
-
- Open:
- {{App\Report::whereNull('admin_seen')->count()}}
-
-
- Closed:
- {{App\Report::whereNotNull('admin_seen')->count()}}
-
-
-
+
+
Reports
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -38,14 +61,14 @@
-
-
+@if(request()->input('layout') == 'list')
+
+@else
+
+ @foreach($reports as $report)
+
+ @endforeach
+
+@endif
- {{$reports->links()}}
+ {{$reports->appends(['layout'=>request()->layout, 'filter' => request()->filter])->links()}}
@endsection
@@ -97,9 +142,6 @@
top: auto;
bottom: auto;
}
- .table-check .custom-control-label {
- top: -11px;
- }
@endpush
@@ -121,19 +163,25 @@
$('.row-check-item[data-resolved=false]').attr('checked', '').prop('checked', true);
}
- let len = $('.row-check-item[checked]').length;
+ let len = $('.row-check-item:checked').length;
$('.bulk-count').text(len).attr('data-count', len);
});
$(document).on('click', '.row-check-item', function(e) {
var el = $(this)[0];
let len = $('.bulk-count').attr('data-count');
+ console.log(el.checked);
if(el.checked == true) {
+ $('.bulk-actions').removeClass('d-none');
len++;
$('.bulk-count').text(len).attr('data-count', len);
} else {
- len--;
- $('.bulk-count').text(len).attr('data-count', len);
+ if(len == 0) {
+ $('.bulk-actions').addClass('d-none');
+ } else {
+ len--;
+ $('.bulk-count').text(len).attr('data-count', len);
+ }
}
if(len == 0) {
$('.bulk-actions').addClass('d-none');
diff --git a/resources/views/admin/reports/show.blade.php b/resources/views/admin/reports/show.blade.php
index fab2346e..521c88ce 100644
--- a/resources/views/admin/reports/show.blade.php
+++ b/resources/views/admin/reports/show.blade.php
@@ -1,4 +1,4 @@
-@extends('admin.partial.template')
+@extends('admin.partial.template-full')
@section('section')
diff --git a/resources/views/admin/settings/backups.blade.php b/resources/views/admin/settings/backups.blade.php
index 7aa6ceba..aff9a569 100644
--- a/resources/views/admin/settings/backups.blade.php
+++ b/resources/views/admin/settings/backups.blade.php
@@ -1,74 +1,14 @@
@extends('admin.partial.template')
+@include('admin.settings.sidebar')
+
@section('section')
Site Backups
+
Enable automatic backups, stored locally or S3/Spaces/Wasabi
-
-
-
-
-
-
- @foreach($files as $file)
- @if($file->isFile())
-
- {{$file->getFilename()}}
-
-
- Size: {{App\Util\Lexer\PrettyNumber::convert($file->getSize())}}
-
-
- Created: {{\Carbon\Carbon::createFromTimestamp($file->getMTime())->diffForHumans()}}
-
-
-
- @endif
- @endforeach
-
-
-
-
-
+
+ Feature Unavailable: This feature will be released in v0.9.0.
+
@endsection
\ No newline at end of file
diff --git a/resources/views/admin/settings/config.blade.php b/resources/views/admin/settings/config.blade.php
new file mode 100644
index 00000000..b13b89bf
--- /dev/null
+++ b/resources/views/admin/settings/config.blade.php
@@ -0,0 +1,13 @@
+@extends('admin.partial.template')
+
+@include('admin.settings.sidebar')
+
+@section('section')
+
+
Configuration Settings
+
Edit any .env or config setting
+
+
+ Feature Unavailable: This feature will be released in v0.9.0.
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/settings/features.blade.php b/resources/views/admin/settings/features.blade.php
new file mode 100644
index 00000000..e393b090
--- /dev/null
+++ b/resources/views/admin/settings/features.blade.php
@@ -0,0 +1,14 @@
+@extends('admin.partial.template')
+
+@include('admin.settings.sidebar')
+
+@section('section')
+
+
Features
+
Enable or disable core features
+
+
+
+ Feature Unavailable: This feature will be released in v0.9.0.
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/settings/home.blade.php b/resources/views/admin/settings/home.blade.php
new file mode 100644
index 00000000..59fdfbf1
--- /dev/null
+++ b/resources/views/admin/settings/home.blade.php
@@ -0,0 +1,63 @@
+@extends('admin.partial.template')
+
+@include('admin.settings.sidebar')
+
+@section('section')
+
+
Settings
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/settings/maintenance.blade.php b/resources/views/admin/settings/maintenance.blade.php
index 9182e94d..a89b55f4 100644
--- a/resources/views/admin/settings/maintenance.blade.php
+++ b/resources/views/admin/settings/maintenance.blade.php
@@ -1,9 +1,14 @@
@extends('admin.partial.template')
-@section('section')
-
-
Maintenance
-
-
+@include('admin.settings.sidebar')
+@section('section')
+
+
Maintenance
+
Enable maintenance mode
+
+
+
+ Feature Unavailable: This feature will be released in v0.9.0.
+
@endsection
\ No newline at end of file
diff --git a/resources/views/admin/settings/sidebar.blade.php b/resources/views/admin/settings/sidebar.blade.php
new file mode 100644
index 00000000..a5e60f80
--- /dev/null
+++ b/resources/views/admin/settings/sidebar.blade.php
@@ -0,0 +1,28 @@
+@section('menu')
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/settings/storage.blade.php b/resources/views/admin/settings/storage.blade.php
index 294c84e3..27c8c92a 100644
--- a/resources/views/admin/settings/storage.blade.php
+++ b/resources/views/admin/settings/storage.blade.php
@@ -1,30 +1,24 @@
@extends('admin.partial.template')
-@section('section')
-
-
Storage
-
-
+@include('admin.settings.sidebar')
-
-
-
-
-
- Used: {{$storage->prettyTotal}}
-
-
- {{$storage->percentUsed}}% Used
-
-
- Free: {{$storage->prettyFree}}
-
-
-
-
-
-@endsection
\ No newline at end of file
+@section('section')
+
+
Storage
+
Filesystem storage stats
+
+
+
+ Feature Unavailable: This feature will be released in v0.9.0.
+
+@endsection
+
+@push('scripts')
+
+@endpush
diff --git a/resources/views/admin/settings/system.blade.php b/resources/views/admin/settings/system.blade.php
index 992d65de..5878e0b8 100644
--- a/resources/views/admin/settings/system.blade.php
+++ b/resources/views/admin/settings/system.blade.php
@@ -1,39 +1,115 @@
@extends('admin.partial.template')
+@include('admin.settings.sidebar')
+
@section('section')
System
+
System information
+
STACK
-
+
-
{{$sys['pixelfed']}}
+
{{$sys['pixelfed']}}
-
-
-
-
+
+
-
+
+
+
-
{{$sys['php']}}
+
{{$sys['redis']}}
-
-
-
-@endsection
\ No newline at end of file
+
+
LATEST RELEASE
+
+@endsection
+
+@push('styles')
+
+@endpush
+
+@push('scripts')
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/admin/statuses/home.blade.php b/resources/views/admin/statuses/home.blade.php
index f3f45855..6ad5342f 100644
--- a/resources/views/admin/statuses/home.blade.php
+++ b/resources/views/admin/statuses/home.blade.php
@@ -1,4 +1,4 @@
-@extends('admin.partial.template')
+@extends('admin.partial.template-full')
@section('section')
@@ -21,7 +21,7 @@
@foreach($statuses as $status)
-
+
{{$status->id}}
diff --git a/resources/views/admin/statuses/show.blade.php b/resources/views/admin/statuses/show.blade.php
index ddec8d04..514d2467 100644
--- a/resources/views/admin/statuses/show.blade.php
+++ b/resources/views/admin/statuses/show.blade.php
@@ -1,4 +1,4 @@
-@extends('admin.partial.template')
+@extends('admin.partial.template-full')
@section('section')
diff --git a/resources/views/discover/home.blade.php b/resources/views/discover/home.blade.php
index 089aa76b..ea8433a3 100644
--- a/resources/views/discover/home.blade.php
+++ b/resources/views/discover/home.blade.php
@@ -9,6 +9,7 @@
@endsection
@push('scripts')
+
diff --git a/resources/views/discover/personal.blade.php b/resources/views/discover/personal.blade.php
new file mode 100644
index 00000000..cbda555b
--- /dev/null
+++ b/resources/views/discover/personal.blade.php
@@ -0,0 +1,76 @@
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
+
+ Related hashtags:
+ @foreach($tags as $hashtag)
+ #{{$hashtag->name}}
+ @endforeach
+
+
+ {{$posts->post_count}} posts
+
+
+
+
+ @foreach($posts as $status)
+
+ @endforeach
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/discover/tags/category.blade.php b/resources/views/discover/tags/category.blade.php
new file mode 100644
index 00000000..d918f53a
--- /dev/null
+++ b/resources/views/discover/tags/category.blade.php
@@ -0,0 +1,104 @@
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
+
+
+ Related hashtags:
+ @foreach($tag->hashtags as $hashtag)
+ #{{$hashtag->name}}
+ @endforeach
+
+
+ {{$tag->posts_count}} posts
+
+
+
+
+ @foreach($posts as $status)
+
+ @endforeach
+
+
+
+
+
+@endsection
+
+@push('meta')
+
+
+@endpush
+
+@push('scripts')
+
+@endpush
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index f461b395..dfbe77a5 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -10,6 +10,7 @@
{{ $title ?? config('app.name', 'Laravel') }}
+
diff --git a/resources/views/layouts/blank.blade.php b/resources/views/layouts/blank.blade.php
index efdb4384..c7969dfe 100644
--- a/resources/views/layouts/blank.blade.php
+++ b/resources/views/layouts/blank.blade.php
@@ -30,6 +30,7 @@
@yield('content')
+
@stack('scripts')
- - -{{l(comment.account.username)}}
-
-
-
-
-
-
-
- Options
-
- Reply
- Permalink
-
- Profile
-
- Report
- Delete
-
+
+ + {{reply.account.username}} + + + + +