diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php
index 8887d46..b767dc4 100644
--- a/app/Http/Controllers/AccountController.php
+++ b/app/Http/Controllers/AccountController.php
@@ -10,13 +10,16 @@ use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use MightyPork\Utils\Str;
+/**
+ * Account settings
+ */
class AccountController extends Controller
{
-
public function editAccount()
{
return view('profile.edit-account', ['user' => user()]);
}
+
public function storeAccount(Request $request)
{
$input = $this->validate($request, [
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index 099bffd..8df2afd 100644
--- a/app/Http/Controllers/ProfileController.php
+++ b/app/Http/Controllers/ProfileController.php
@@ -6,10 +6,13 @@ namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
+/**
+ * Profile page and profile settings
+ */
class ProfileController extends Controller
{
/**
- * Show the application dashboard.
+ * Show the user's profile / dashboard.
*
* @return \Illuminate\View\View
*/
@@ -26,7 +29,6 @@ class ProfileController extends Controller
/**
* Edit own profile (this does not include auth settings etc)
*
- * @param User $user
* @return \Illuminate\View\View
*/
public function editProfile()
@@ -40,9 +42,9 @@ class ProfileController extends Controller
public function storeProfile(Request $request)
{
$input = $this->validate($request, [
- 'bio' => ['nullable', VALI_TEXT],
'title' => ['required', VALI_LINE],
- 'website' => ['required', VALI_LINE],
+ 'bio' => ['nullable', VALI_TEXT],
+ 'website' => ['nullable', VALI_LINE],
]);
$user = user();
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 2537cb7..0af6463 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -27,6 +27,37 @@ class AppServiceProvider extends ServiceProvider
if (!$u) abort(404);
return $u;
});
+
+ \Blade::directive('tooltip', function($arg) {
+ $arge = e($arg);
+ return 'aria-label="' . $arge . '" title="' . $arge . '"';
+ });
+
+ \Blade::directive('sr', function($arg) {
+ $sr = str_replace('~', ' ', e($arg));
+ return ''.$sr.'';
+ });
+
+ \Blade::directive('icon', function($arg) {
+ // arg: classes... , alt text
+ // tildes in alt text may be used to add nbsp to sr-only, they are removed from the tooltip.
+ // giving no alt text makes it sr-hidden, with no tooltip
+ $parts = explode(',', $arg, 2);
+ if (count($parts) == 2) {
+ list($classes, $title) = $parts;
+
+ $classes = trim($classes);
+ $title = trim($title);
+
+ $sr = str_replace('~', ' ', e($title));
+ $tit = str_replace('~', '', e(trim($title, ' \r\n\t:,')));
+
+ return '' . $sr . '' .
+ '';
+ } else {
+ return '';
+ }
+ });
}
/**
diff --git a/public/fonts/fa-dtbl-1-preview.html b/public/fonts/fa-dtbl-1-preview.html
index 93c87d3..076266b 100644
--- a/public/fonts/fa-dtbl-1-preview.html
+++ b/public/fonts/fa-dtbl-1-preview.html
@@ -170,6 +170,7 @@
.fa-clock-o:before,
.fa-cloud-upload:before,
.fa-code-fork:before,
+.fa-comments:before,
.fa-download:before,
.fa-eye:before,
.fa-eye-slash:before,
@@ -184,6 +185,7 @@
.fa-history:before,
.fa-key-modern:before,
.fa-link:before,
+.fa-pencil:before,
.fa-pencil-square-o:before,
.fa-question-circle:before,
.fa-quote-left:before,
@@ -200,6 +202,7 @@
.fa-star:before,
.fa-star-o:before,
.fa-table:before,
+.fa-th-list:before,
.fa-times:before,
.fa-trash:before,
.fa-trash-o:before,
@@ -229,42 +232,45 @@
.fa-clock-o:before { content: "\f106"; }
.fa-cloud-upload:before { content: "\f107"; }
.fa-code-fork:before { content: "\f108"; }
-.fa-download:before { content: "\f109"; }
-.fa-eye:before { content: "\f10a"; }
-.fa-eye-slash:before { content: "\f10b"; }
-.fa-facebook-square:before { content: "\f10c"; }
-.fa-filter:before { content: "\f10d"; }
-.fa-flag:before { content: "\f10e"; }
-.fa-floppy-o:before { content: "\f10f"; }
-.fa-gavel:before { content: "\f110"; }
-.fa-github:before { content: "\f111"; }
-.fa-globe:before { content: "\f112"; }
-.fa-google:before { content: "\f113"; }
-.fa-history:before { content: "\f114"; }
-.fa-key-modern:before { content: "\f115"; }
-.fa-link:before { content: "\f116"; }
-.fa-pencil-square-o:before { content: "\f117"; }
-.fa-question-circle:before { content: "\f118"; }
-.fa-quote-left:before { content: "\f119"; }
-.fa-reply:before { content: "\f11a"; }
-.fa-rss:before { content: "\f11b"; }
-.fa-search:before { content: "\f11c"; }
-.fa-share-alt:before { content: "\f11d"; }
-.fa-sign-in:before { content: "\f11e"; }
-.fa-sign-out:before { content: "\f11f"; }
-.fa-sliders:before { content: "\f120"; }
-.fa-sort:before { content: "\f121"; }
-.fa-sort-asc:before { content: "\f122"; }
-.fa-sort-desc:before { content: "\f123"; }
-.fa-star:before { content: "\f124"; }
-.fa-star-o:before { content: "\f125"; }
-.fa-table:before { content: "\f126"; }
-.fa-times:before { content: "\f127"; }
-.fa-trash:before { content: "\f128"; }
-.fa-trash-o:before { content: "\f129"; }
-.fa-user-circle-o:before { content: "\f12a"; }
-.fa-user-plus:before { content: "\f12b"; }
-.fa-wrench:before { content: "\f12c"; }
+.fa-comments:before { content: "\f109"; }
+.fa-download:before { content: "\f10a"; }
+.fa-eye:before { content: "\f10b"; }
+.fa-eye-slash:before { content: "\f10c"; }
+.fa-facebook-square:before { content: "\f10d"; }
+.fa-filter:before { content: "\f10e"; }
+.fa-flag:before { content: "\f10f"; }
+.fa-floppy-o:before { content: "\f110"; }
+.fa-gavel:before { content: "\f111"; }
+.fa-github:before { content: "\f112"; }
+.fa-globe:before { content: "\f113"; }
+.fa-google:before { content: "\f114"; }
+.fa-history:before { content: "\f115"; }
+.fa-key-modern:before { content: "\f116"; }
+.fa-link:before { content: "\f117"; }
+.fa-pencil:before { content: "\f118"; }
+.fa-pencil-square-o:before { content: "\f119"; }
+.fa-question-circle:before { content: "\f11a"; }
+.fa-quote-left:before { content: "\f11b"; }
+.fa-reply:before { content: "\f11c"; }
+.fa-rss:before { content: "\f11d"; }
+.fa-search:before { content: "\f11e"; }
+.fa-share-alt:before { content: "\f11f"; }
+.fa-sign-in:before { content: "\f120"; }
+.fa-sign-out:before { content: "\f121"; }
+.fa-sliders:before { content: "\f122"; }
+.fa-sort:before { content: "\f123"; }
+.fa-sort-asc:before { content: "\f124"; }
+.fa-sort-desc:before { content: "\f125"; }
+.fa-star:before { content: "\f126"; }
+.fa-star-o:before { content: "\f127"; }
+.fa-table:before { content: "\f128"; }
+.fa-th-list:before { content: "\f129"; }
+.fa-times:before { content: "\f12a"; }
+.fa-trash:before { content: "\f12b"; }
+.fa-trash-o:before { content: "\f12c"; }
+.fa-user-circle-o:before { content: "\f12d"; }
+.fa-user-plus:before { content: "\f12e"; }
+.fa-wrench:before { content: "\f12f"; }
@@ -280,7 +286,7 @@
+
+
+ PpPpPpPpPpPpPpPpPpPp
+
+
+ 12141618212436486072
+
+
+
+
+
+
+
@@ -425,7 +444,7 @@
-
+
@@ -438,7 +457,7 @@
-
+
@@ -451,7 +470,7 @@
-
+
@@ -464,7 +483,7 @@
-
+
@@ -477,7 +496,7 @@
-
+
@@ -491,7 +510,7 @@
-
+
@@ -505,7 +524,7 @@
-
+
@@ -518,7 +537,7 @@
-
+
@@ -531,7 +550,7 @@
-
+
@@ -544,7 +563,7 @@
-
+
@@ -557,7 +576,7 @@
-
+
@@ -570,7 +589,7 @@
-
+
@@ -583,7 +602,20 @@
-
+
+
+
+
+
+
+ PpPpPpPpPpPpPpPpPpPp
+
+
+ 12141618212436486072
+
+
+
+
@@ -597,7 +629,7 @@
-
+
@@ -610,7 +642,7 @@
-
+
@@ -623,7 +655,7 @@
-
+
@@ -636,7 +668,7 @@
-
+
@@ -649,7 +681,7 @@
-
+
@@ -662,7 +694,7 @@
-
+
@@ -675,7 +707,7 @@
-
+
@@ -688,7 +720,7 @@
-
+
@@ -701,7 +733,7 @@
-
+
@@ -714,7 +746,7 @@
-
+
@@ -727,7 +759,7 @@
-
+
@@ -740,7 +772,7 @@
-
+
@@ -753,7 +785,7 @@
-
+
@@ -766,7 +798,7 @@
-
+
@@ -779,7 +811,7 @@
-
+
@@ -792,7 +824,20 @@
-
+
+
+
+
+
+
+ PpPpPpPpPpPpPpPpPpPp
+
+
+ 12141618212436486072
+
+
+
+
@@ -806,7 +851,7 @@
-
+
@@ -819,7 +864,7 @@
-
+
@@ -832,7 +877,7 @@
-
+
@@ -845,7 +890,7 @@
-
+
@@ -858,7 +903,7 @@
-
+
@@ -871,7 +916,7 @@
-
+
diff --git a/public/fonts/fa-dtbl-1.css b/public/fonts/fa-dtbl-1.css
index ec428cb..4649bcf 100644
--- a/public/fonts/fa-dtbl-1.css
+++ b/public/fonts/fa-dtbl-1.css
@@ -47,39 +47,42 @@
.fa-clock-o::before { content: "\f106"; }
.fa-cloud-upload::before { content: "\f107"; }
.fa-code-fork::before { content: "\f108"; }
-.fa-download::before { content: "\f109"; }
-.fa-eye::before { content: "\f10a"; }
-.fa-eye-slash::before { content: "\f10b"; }
-.fa-facebook-square::before { content: "\f10c"; }
-.fa-filter::before { content: "\f10d"; }
-.fa-flag::before { content: "\f10e"; }
-.fa-floppy-o::before, .fa-save::before { content: "\f10f"; }
-.fa-gavel::before, .fa-legal::before { content: "\f110"; }
-.fa-github::before { content: "\f111"; }
-.fa-globe::before { content: "\f112"; }
-.fa-google::before { content: "\f113"; }
-.fa-history::before { content: "\f114"; }
-.fa-key-modern::before { content: "\f115"; }
-.fa-link::before { content: "\f116"; }
-.fa-pencil-square-o::before, .fa-edit::before { content: "\f117"; }
-.fa-question-circle::before { content: "\f118"; }
-.fa-quote-left::before { content: "\f119"; }
-.fa-reply::before { content: "\f11a"; }
-.fa-rss::before { content: "\f11b"; }
-.fa-search::before { content: "\f11c"; }
-.fa-share-alt::before { content: "\f11d"; }
-.fa-sign-in::before { content: "\f11e"; }
-.fa-sign-out::before { content: "\f11f"; }
-.fa-sliders::before { content: "\f120"; }
-.fa-sort::before { content: "\f121"; }
-.fa-sort-asc::before { content: "\f122"; }
-.fa-sort-desc::before { content: "\f123"; }
-.fa-star::before { content: "\f124"; }
-.fa-star-o::before { content: "\f125"; }
-.fa-table::before { content: "\f126"; }
-.fa-times::before, .fa-close::before { content: "\f127"; }
-.fa-trash::before { content: "\f128"; }
-.fa-trash-o::before { content: "\f129"; }
-.fa-user-circle-o::before { content: "\f12a"; }
-.fa-user-plus::before { content: "\f12b"; }
-.fa-wrench::before { content: "\f12c"; }
+.fa-comments::before { content: "\f109"; }
+.fa-download::before { content: "\f10a"; }
+.fa-eye::before { content: "\f10b"; }
+.fa-eye-slash::before { content: "\f10c"; }
+.fa-facebook-square::before { content: "\f10d"; }
+.fa-filter::before { content: "\f10e"; }
+.fa-flag::before { content: "\f10f"; }
+.fa-floppy-o::before, .fa-save::before { content: "\f110"; }
+.fa-gavel::before, .fa-legal::before { content: "\f111"; }
+.fa-github::before { content: "\f112"; }
+.fa-globe::before { content: "\f113"; }
+.fa-google::before { content: "\f114"; }
+.fa-history::before { content: "\f115"; }
+.fa-key-modern::before { content: "\f116"; }
+.fa-link::before { content: "\f117"; }
+.fa-pencil::before { content: "\f118"; }
+.fa-pencil-square-o::before, .fa-edit::before { content: "\f119"; }
+.fa-question-circle::before { content: "\f11a"; }
+.fa-quote-left::before { content: "\f11b"; }
+.fa-reply::before { content: "\f11c"; }
+.fa-rss::before { content: "\f11d"; }
+.fa-search::before { content: "\f11e"; }
+.fa-share-alt::before { content: "\f11f"; }
+.fa-sign-in::before { content: "\f120"; }
+.fa-sign-out::before { content: "\f121"; }
+.fa-sliders::before { content: "\f122"; }
+.fa-sort::before { content: "\f123"; }
+.fa-sort-asc::before { content: "\f124"; }
+.fa-sort-desc::before { content: "\f125"; }
+.fa-star::before { content: "\f126"; }
+.fa-star-o::before { content: "\f127"; }
+.fa-table::before { content: "\f128"; }
+.fa-th-list::before { content: "\f129"; }
+.fa-times::before, .fa-close::before { content: "\f12a"; }
+.fa-trash::before { content: "\f12b"; }
+.fa-trash-o::before { content: "\f12c"; }
+.fa-user-circle-o::before { content: "\f12d"; }
+.fa-user-plus::before { content: "\f12e"; }
+.fa-wrench::before { content: "\f12f"; }
diff --git a/public/fonts/fa-dtbl-1.eot b/public/fonts/fa-dtbl-1.eot
index 3fc4d1f..f9fe723 100644
Binary files a/public/fonts/fa-dtbl-1.eot and b/public/fonts/fa-dtbl-1.eot differ
diff --git a/public/fonts/fa-dtbl-1.svg b/public/fonts/fa-dtbl-1.svg
index 5bf0402..0eab3bb 100644
--- a/public/fonts/fa-dtbl-1.svg
+++ b/public/fonts/fa-dtbl-1.svg
@@ -1,11 +1,11 @@