rescue old vm stuff

This commit is contained in:
tracer 2022-11-05 17:18:04 +01:00
parent e17cf3eaeb
commit 219f4097ff
17 changed files with 1405 additions and 1617 deletions

8
assets/bootstrap.js vendored
View File

@ -1,10 +1,10 @@
import {startStimulusApp} from '@symfony/stimulus-bridge' import { startStimulusApp } from '@symfony/stimulus-bridge'
// Registers Stimulus controllers from controllers.json and in the controllers/ directory // Registers Stimulus controllers from controllers.json and in the controllers/ directory
export const app = startStimulusApp(require.context( export const app = startStimulusApp(require.context(
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers', '@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
true, true,
/\.[jt]sx?$/ /\.[jt]sx?$/
)) ))
// register any custom, 3rd party controllers here // register any custom, 3rd party controllers here

View File

@ -1,2 +1 @@
// assets/js/index.js // assets/js/index.js

View File

@ -18,10 +18,15 @@
$primary: #FF8040; $primary: #FF8040;
$jet-black: #0e0e10; $jet-black: #0e0e10;
//$body-bg: red; $body-color: #3f3f3f;
$body-color: #8f8f8f; $list-group-bg: $body-color;
$list-group-hover-bg: #232323;
$list-group-active-bg: #232323;
$list-group-action-active-bg: #232323;
@import 'bootstrap-dark-5/dist/css/bootstrap-night.min.css'; @import '~bootstrap';
@import './components/sidebar';
html, body { html, body {
@ -35,35 +40,10 @@ html, body {
/// ///
// sidebar
#sidebar {
min-width: 180px;
max-width: 180px;
height: 100%;
display: inline;
white-space: nowrap;
overflow: hidden;
float: left;
background-color: $jet-black;
transition: min-width 0.5s, max-width 0.5s;
}
#sidebar.active {
min-width: 60px;
max-width: 60px;
}
#content {
}
#sidebar.active .menuText {
display: none;
}
#main_content { #main_content {
overflow-y: auto; overflow-y: auto;
height: calc(100vh - 180px); // 74px header, 64px header height: calc(100vh - 190px); // 74px header, 64px header
} }
.form-signin { .form-signin {

View File

@ -0,0 +1,22 @@
// sidebar
#sidebar {
min-width: 180px;
max-width: 180px;
height: 100%;
display: inline;
white-space: nowrap;
overflow: hidden;
float: left;
background-color: $jet-black;
transition: min-width 0.5s, max-width 0.5s;
}
#sidebar.active {
min-width: 60px;
max-width: 60px;
}
#sidebar.active .menuText {
display: none;
}

View File

@ -49,7 +49,7 @@
"symfony/validator": "6.1.*", "symfony/validator": "6.1.*",
"symfony/web-link": "6.1.*", "symfony/web-link": "6.1.*",
"symfony/webapp-meta": "^1.0", "symfony/webapp-meta": "^1.0",
"symfony/webpack-encore-bundle": "^1.14", "symfony/webpack-encore-bundle": "^v1.16.0",
"symfony/yaml": "6.1.*", "symfony/yaml": "6.1.*",
"symfonycasts/reset-password-bundle": "^1.16", "symfonycasts/reset-password-bundle": "^1.16",
"symfonycasts/verify-email-bundle": "^1.12", "symfonycasts/verify-email-bundle": "^1.12",

106
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "7d3d3e0369d1f8799e53d7d078431c55", "content-hash": "a389aa46db42a7da38ebb6610fb97a52",
"packages": [ "packages": [
{ {
"name": "dflydev/dot-access-data", "name": "dflydev/dot-access-data",
@ -564,37 +564,37 @@
}, },
{ {
"name": "doctrine/doctrine-bundle", "name": "doctrine/doctrine-bundle",
"version": "2.7.0", "version": "2.7.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git", "url": "https://github.com/doctrine/DoctrineBundle.git",
"reference": "d2088fc50494e4e7441fecca54732245a613eeb6" "reference": "a2dcad48741c9d12fd6040398cf075025030096e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d2088fc50494e4e7441fecca54732245a613eeb6", "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a2dcad48741c9d12fd6040398cf075025030096e",
"reference": "d2088fc50494e4e7441fecca54732245a613eeb6", "reference": "a2dcad48741c9d12fd6040398cf075025030096e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/annotations": "^1", "doctrine/annotations": "^1",
"doctrine/cache": "^1.11 || ^2.0", "doctrine/cache": "^1.11 || ^2.0",
"doctrine/dbal": "^2.13.1|^3.3.2", "doctrine/dbal": "^2.13.1 || ^3.3.2",
"doctrine/persistence": "^2.2|^3", "doctrine/persistence": "^2.2 || ^3",
"doctrine/sql-formatter": "^1.0.1", "doctrine/sql-formatter": "^1.0.1",
"php": "^7.1 || ^8.0", "php": "^7.1 || ^8.0",
"symfony/cache": "^4.3.3|^5.0|^6.0", "symfony/cache": "^4.4 || ^5.4 || ^6.0",
"symfony/config": "^4.4.3|^5.0|^6.0", "symfony/config": "^4.4.3 || ^5.4 || ^6.0",
"symfony/console": "^3.4.30|^4.3.3|^5.0|^6.0", "symfony/console": "^4.4 || ^5.4 || ^6.0",
"symfony/dependency-injection": "^4.4.18|^5.0|^6.0", "symfony/dependency-injection": "^4.4.18 || ^5.4 || ^6.0",
"symfony/deprecation-contracts": "^2.1|^3", "symfony/deprecation-contracts": "^2.1 || ^3",
"symfony/doctrine-bridge": "^4.4.22|^5.2.7|^6.0", "symfony/doctrine-bridge": "^4.4.22 || ^5.4 || ^6.0",
"symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.0",
"symfony/service-contracts": "^1.1.1|^2.0|^3" "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3"
}, },
"conflict": { "conflict": {
"doctrine/orm": "<2.10|>=3.0", "doctrine/orm": "<2.11 || >=3.0",
"twig/twig": "<1.34|>=2.0,<2.4" "twig/twig": "<1.34 || >=2.0,<2.4"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^9.0", "doctrine/coding-standard": "^9.0",
@ -603,16 +603,16 @@
"phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0",
"psalm/plugin-phpunit": "^0.16.1", "psalm/plugin-phpunit": "^0.16.1",
"psalm/plugin-symfony": "^3", "psalm/plugin-symfony": "^3",
"psr/log": "^1.1.4|^2.0|^3.0", "psr/log": "^1.1.4 || ^2.0 || ^3.0",
"symfony/phpunit-bridge": "^5.2|^6.0", "symfony/phpunit-bridge": "^6.1",
"symfony/property-info": "^4.3.3|^5.0|^6.0", "symfony/property-info": "^4.4 || ^5.4 || ^6.0",
"symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0", "symfony/proxy-manager-bridge": "^4.4 || ^5.4 || ^6.0",
"symfony/security-bundle": "^4.4|^5.0|^6.0", "symfony/security-bundle": "^4.4 || ^5.4 || ^6.0",
"symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0|^6.0", "symfony/twig-bridge": "^4.4 || ^5.4 || ^6.0",
"symfony/validator": "^3.4.30|^4.3.3|^5.0|^6.0", "symfony/validator": "^4.4 || ^5.4 || ^6.0",
"symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.0",
"symfony/yaml": "^3.4.30|^4.3.3|^5.0|^6.0", "symfony/yaml": "^4.4 || ^5.4 || ^6.0",
"twig/twig": "^1.34|^2.12|^3.0", "twig/twig": "^1.34 || ^2.12 || ^3.0",
"vimeo/psalm": "^4.7" "vimeo/psalm": "^4.7"
}, },
"suggest": { "suggest": {
@ -658,7 +658,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/DoctrineBundle/issues", "issues": "https://github.com/doctrine/DoctrineBundle/issues",
"source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.0" "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.1"
}, },
"funding": [ "funding": [
{ {
@ -674,7 +674,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-06-10T10:55:26+00:00" "time": "2022-10-23T09:47:06+00:00"
}, },
{ {
"name": "doctrine/doctrine-migrations-bundle", "name": "doctrine/doctrine-migrations-bundle",
@ -1453,16 +1453,16 @@
}, },
{ {
"name": "easycorp/easyadmin-bundle", "name": "easycorp/easyadmin-bundle",
"version": "v4.4.1", "version": "v4.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/EasyCorp/EasyAdminBundle.git", "url": "https://github.com/EasyCorp/EasyAdminBundle.git",
"reference": "5f6db8c1cdc63252bbfe80f383d487ae51fc6892" "reference": "7d0d1eae72024af6b7344ae7c945da9db59c0c5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/EasyCorp/EasyAdminBundle/zipball/5f6db8c1cdc63252bbfe80f383d487ae51fc6892", "url": "https://api.github.com/repos/EasyCorp/EasyAdminBundle/zipball/7d0d1eae72024af6b7344ae7c945da9db59c0c5e",
"reference": "5f6db8c1cdc63252bbfe80f383d487ae51fc6892", "reference": "7d0d1eae72024af6b7344ae7c945da9db59c0c5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1529,7 +1529,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/EasyCorp/EasyAdminBundle/issues", "issues": "https://github.com/EasyCorp/EasyAdminBundle/issues",
"source": "https://github.com/EasyCorp/EasyAdminBundle/tree/v4.4.1" "source": "https://github.com/EasyCorp/EasyAdminBundle/tree/v4.4.2"
}, },
"funding": [ "funding": [
{ {
@ -1537,7 +1537,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-10-27T18:36:25+00:00" "time": "2022-10-31T08:05:36+00:00"
}, },
{ {
"name": "egulias/email-validator", "name": "egulias/email-validator",
@ -1830,16 +1830,16 @@
}, },
{ {
"name": "league/commonmark", "name": "league/commonmark",
"version": "2.3.5", "version": "2.3.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/commonmark.git", "url": "https://github.com/thephpleague/commonmark.git",
"reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
"reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1859,7 +1859,7 @@
"erusev/parsedown": "^1.0", "erusev/parsedown": "^1.0",
"ext-json": "*", "ext-json": "*",
"github/gfm": "0.29.0", "github/gfm": "0.29.0",
"michelf/php-markdown": "^1.4", "michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5", "nyholm/psr7": "^1.5",
"phpstan/phpstan": "^1.8.2", "phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.21", "phpunit/phpunit": "^9.5.21",
@ -1932,7 +1932,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-29T10:59:45+00:00" "time": "2022-11-03T17:29:46+00:00"
}, },
{ {
"name": "league/config", "name": "league/config",
@ -2537,16 +2537,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.8.11", "version": "1.9.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "46e223dd68a620da18855c23046ddb00940b4014" "reference": "e08de53a5eec983de78a787a88e72518cf8fe43a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/46e223dd68a620da18855c23046ddb00940b4014", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e08de53a5eec983de78a787a88e72518cf8fe43a",
"reference": "46e223dd68a620da18855c23046ddb00940b4014", "reference": "e08de53a5eec983de78a787a88e72518cf8fe43a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2576,7 +2576,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpstan/phpstan/issues", "issues": "https://github.com/phpstan/phpstan/issues",
"source": "https://github.com/phpstan/phpstan/tree/1.8.11" "source": "https://github.com/phpstan/phpstan/tree/1.9.0"
}, },
"funding": [ "funding": [
{ {
@ -2592,7 +2592,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-10-24T15:45:13+00:00" "time": "2022-11-03T07:26:48+00:00"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@ -2914,16 +2914,16 @@
}, },
{ {
"name": "sensio/framework-extra-bundle", "name": "sensio/framework-extra-bundle",
"version": "v6.2.8", "version": "v6.2.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "bb962f8aed09e60b0942545f6e4842ffeee4aafd" "reference": "dcfac94d6bdcf95c126e8ccac2104917c7c8f135"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb962f8aed09e60b0942545f6e4842ffeee4aafd", "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/dcfac94d6bdcf95c126e8ccac2104917c7c8f135",
"reference": "bb962f8aed09e60b0942545f6e4842ffeee4aafd", "reference": "dcfac94d6bdcf95c126e8ccac2104917c7c8f135",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2986,9 +2986,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues",
"source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.8" "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.9"
}, },
"time": "2022-09-05T16:44:56+00:00" "time": "2022-11-01T17:17:13+00:00"
}, },
{ {
"name": "sunrise/slugger", "name": "sunrise/slugger",

View File

@ -31,7 +31,6 @@
"@typescript-eslint/eslint-plugin-tslint": "^5.26.0", "@typescript-eslint/eslint-plugin-tslint": "^5.26.0",
"axios": "^0.27.1", "axios": "^0.27.1",
"bootstrap": "^5.2.2", "bootstrap": "^5.2.2",
"bootstrap-dark-5": "^1.1.3",
"bootswatch": "^5.2.2", "bootswatch": "^5.2.2",
"eslint": "^8.15.0", "eslint": "^8.15.0",
"eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-base": "^15.0.0",

View File

@ -4,7 +4,6 @@ namespace App\Controller;
use App\Entity\Pages; use App\Entity\Pages;
use App\Repository\PagesRepository; use App\Repository\PagesRepository;
use App\Repository\UserRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
@ -12,9 +11,9 @@ use Symfony\Component\Routing\Annotation\Route;
class PagesController extends AbstractController class PagesController extends AbstractController
{ {
#[Route(path: '/pages/{slug}', name: 'pages_display')] #[Route(path: '/pages/{slug}', name: 'pages_display')]
public function display(PagesRepository $pagesRepository, UserRepository $userRepository, string $slug): Response public function display(PagesRepository $pagesRepository, string $slug): Response
{ {
$page = $pagesRepository->findOneBy([ $page = $pagesRepository->findOneBy(criteria: [
'slug' => $slug, 'slug' => $slug,
]); ]);
@ -24,17 +23,8 @@ class PagesController extends AbstractController
$page->setContent(content: '404 - The requested page was not found.'); $page->setContent(content: '404 - The requested page was not found.');
} }
dump($page);
dump($page->getOwner());
$user = $userRepository->findOneBy(['id' => $page->getOwner()->getId()]);
dd($user);
return $this->render(view: '@default/pages/index.html.twig', parameters: [ return $this->render(view: '@default/pages/index.html.twig', parameters: [
'page_name' => $page->getName(), 'page' => $page,
'page_content' => $page->getContent(),
'created_at' => $page->getCreatedAt(),
'modified_at' => $page->getModifiedAt(),
'owner' => $page->getOwner()
]); ]);
} }
} }

View File

@ -21,7 +21,7 @@ class UserController extends BaseController
{ {
#[Route(path: '/profile/edit/{username}', name: 'app_profile_edit')] #[Route(path: '/profile/edit/{username}', name: 'app_profile_edit')]
public function editProfile(Request $request, UserRepository $userRepository, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager, string $username = ''): Response public function editProfile(Request $request, UserRepository $userRepository, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager, string $username = ''): Response
{ {
if ($username !== '') { if ($username !== '') {
if ($this->isGranted(attribute: 'ROLE_ADMIN')) { if ($this->isGranted(attribute: 'ROLE_ADMIN')) {
@ -29,7 +29,7 @@ class UserController extends BaseController
'username' => $username, 'username' => $username,
]); ]);
} else { } else {
throw new AccessDeniedException(message: 'Only admins are allowed to edit Profiles.'); throw new AccessDeniedException(message: 'Only admins are allowed to edit foreign profiles.');
} }
} else { } else {
$user = $this->getUser(); $user = $this->getUser();
@ -43,12 +43,12 @@ class UserController extends BaseController
// if there's a new password, use it // if there's a new password, use it
if ($form->get(name: 'newPassword')->getData()) if ($form->get(name: 'newPassword')->getData())
$user->setPassword( $user->setPassword(
password: $userPasswordHasher->hashPassword( password: $userPasswordHasher->hashPassword(
user: $user, user: $user,
plainPassword: $form->get(name: 'newPassword')->getData() plainPassword: $form->get(name: 'newPassword')->getData()
) )
); );
$entityManager->persist(entity: $user); $entityManager->persist(entity: $user);
$entityManager->flush(); $entityManager->flush();
@ -64,14 +64,9 @@ class UserController extends BaseController
'user' => $user, 'user' => $user,
'userForm' => $form 'userForm' => $form
]); ]);
if (isset($user)) {
} else {
throw new UserNotFoundException();
}
} }
#[Route(path: '/profile/{username}', name: 'app_profile')] #[Route(path: '/profile/{username}', name: 'app_profile')]
public function showProfile(UserRepository $userRepository, string $username = ''): Response public function showProfile(UserRepository $userRepository, string $username = ''): Response
{ {
@ -84,7 +79,7 @@ class UserController extends BaseController
]); ]);
} }
return $this->render(view: 'user/show_profile.html.twig', parameters: [ return $this->render(view: '@default/user/show_profile.html.twig', parameters: [
'user' => $user, 'user' => $user,
]); ]);
} }
@ -94,7 +89,7 @@ class UserController extends BaseController
{ {
$users = $userRepository->findAll(); $users = $userRepository->findAll();
return $this->render(view: 'user/list_users.html.twig', parameters: [ return $this->render(view: '@default/user/list_users.html.twig', parameters: [
'users' => $users, 'users' => $users,
]); ]);
} }

View File

@ -42,27 +42,27 @@
<ul class="list-group ml1" id="main-menu"> <ul class="list-group ml1" id="main-menu">
<li class="list-group-item list-group-item-action"> <li class="list-group-item list-group-item-action">
<a href="{{ path('app_projects') }}" class="text-decoration-none"> <a href="{{ path('app_projects') }}" class="text-decoration-none">
<i class="fa fa-lg fa-fw fa-file-code-o" aria-hidden="true" title="Projects"></i> <span class="fa fa-lg fa-fw fa-file-code-o" aria-hidden="true" title="Projects"></span>
<span class="menuText">&nbsp;Projects</span> <span class="menuText">&nbsp;Projects</span>
</a> </a>
</li> </li>
<li class="list-group-item list-group-item-action"> <li class="list-group-item list-group-item-action">
<a href="//git.24unix.net" class="text-decoration-none" target="_blank"> <a href="//git.24unix.net" class="text-decoration-none" target="_blank">
<i class="fa fa-lg fa-fw fa-gitea" aria-hidden="true" title="Gitea"></i> <span class="fa fa-lg fa-fw fa-gitea" aria-hidden="true" title="Gitea"></span>
<span class="menuText">&nbsp;Gitea</span> <span class="menuText">&nbsp;Gitea</span>
</a> </a>
<span class="menuText"><i class="fa fa-external-link" aria-hidden="true"></i></span> <span class="menuText"><span class="fa fa-external-link" aria-hidden="true"></span></span>
</li> </li>
<li class="list-group-item list-group-item-action"> <li class="list-group-item list-group-item-action">
<a href="//cloud.24unix.net" class="text-decoration-none" target="_blank"> <a href="//cloud.24unix.net" class="text-decoration-none" target="_blank">
<i class="fa fa-lg fa-fw fa-nextcloud" aria-hidden="true" title="NextCloud"></i> <span class="fa fa-lg fa-fw fa-nextcloud" aria-hidden="true" title="NextCloud"></span>
<span class="menuText">&nbsp;NextCloud</span> <span class="menuText">&nbsp;NextCloud</span>
</a> </a>
<span class="menuText"><i class="fa fa-external-link" aria-hidden="true"></i></span> <span class="menuText"><span class="fa fa-external-link" aria-hidden="true"></span></span>
</li> </li>
<li class="list-group-item list-group-item-action"> <li class="list-group-item list-group-item-action">
<a href="#" id="toggleSidebar"> <a href="#" id="toggleSidebar">
<i id="toggleIcon" class="fa fa-lg fa-caret-square-o-left"></i> <span id="toggleIcon" class="fa fa-lg fa-caret-square-o-left"></span>
</a> </a>
</li> </li>
<!-- <a href="//pastebin.24unix.net">pastebin.24unix.net</a>--> <!-- <a href="//pastebin.24unix.net">pastebin.24unix.net</a>-->
@ -85,11 +85,12 @@
<div class="col m-3" id="main_content"> <div class="col m-3" id="main_content">
{% block body %} {% block body %}
<div class="m-5">
<h1 class="title-show">Quote of the Moment</h1> <h1 class="title-show">Quote of the Moment</h1>
<div class="quote-box p-3"> <div class="quote-box p-3">
<i class="fa fa-quote-left"></i><br> <span class="fa fa-quote-left"></span><br>
{{ quote | raw | nl2br }} {{ quote | raw | nl2br }}
</div>
</div> </div>
{% endblock %} {% endblock %}
</div> </div>

View File

@ -3,7 +3,11 @@
{% block title %}page_name{% endblock %} {% block title %}page_name{% endblock %}
{% block body %} {% block body %}
{{ page_content | raw }} {{ page.content | raw }}
<br> <br>
Page created by: {{ owner }} at {{ created_at }} Page created by: <a href="{{ path('app_profile', { 'username': page.owner.username }) }}">{{ page.owner.username }}</a>
{{ page.createdAt | ago }}
{% if page.modifiedAt %}
(last update: {{ page.modifiedAt | ago }})
{% endif %}
{% endblock %} {% endblock %}

View File

@ -62,7 +62,7 @@
{% if is_granted('ROLE_ADMIN') %} {% if is_granted('ROLE_ADMIN') %}
<div class="text-xl-start"> <div class="text-xl-start">
<a href="{{ path('app_main') }}"><i class="fa fa-plus-circle"></i></a> <a href="{{ path('app_main') }}"><span class="fa fa-plus-circle"></span></a>
</div> </div>
{% endif %} {% endif %}
</div> </div>

View File

@ -9,8 +9,8 @@
<div class="col-sm-12"> <div class="col-sm-12">
{% if is_granted('ROLE_ADMIN') %} {% if is_granted('ROLE_ADMIN') %}
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
<a href="{{ path('app_main', { id : project.id }) }}"><i class="fa fa-3x fa-fw fa-edit"></i></a> <a href="{{ path('app_main', { id : project.id }) }}"><span class="fa fa-3x fa-fw fa-edit"></span></a>
<a href="{{ path('app_main', { id : project.id }) }}"><i class="fa fa-3x fa-fw fa-trash"></i></a> <a href="{{ path('app_main', { id : project.id }) }}"><span class="fa fa-3x fa-fw fa-trash"></span></a>
</div> </div>
{% endif %} {% endif %}
@ -19,8 +19,8 @@
<h2>{{ project.name }}</h2> <h2>{{ project.name }}</h2>
</div> </div>
<div> <div>
Source: <a href="{{ project.url }}" target="_blank">{{ project.url }}</a>&nbsp;<i Source: <a href="{{ project.url }}" target="_blank">{{ project.url }}</a>&nbsp;
class="fa fa-external-link" aria-hidden="true"></i> <span class="fa fa-external-link" aria-hidden="true"></span>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">

View File

@ -15,7 +15,7 @@
src=" {{ asset('build/images/tracer_schmolle150x150.png') }}" alt="profile image"> src=" {{ asset('build/images/tracer_schmolle150x150.png') }}" alt="profile image">
<span class="font-weight-bold">{{ user.username }}</span> <span class="font-weight-bold">{{ user.username }}</span>
<span class="text-white-50"><i class="fa fa-lg fa-envelope me-1"></i>{{ user.email }}</span> <span class="text-white-50"><span class="fa fa-lg fa-envelope me-1"></span>{{ user.email }}</span>
</div> </div>
</div> </div>
<div class="col-md-5 border-right"> <div class="col-md-5 border-right">

View File

@ -1,4 +1,4 @@
{% extends '../themes/default/base.html.twig' %} {% extends '@default/base.html.twig' %}
{% block title %} {% block title %}
Userlist Userlist
@ -15,7 +15,9 @@
<th scope="col">Username</th> <th scope="col">Username</th>
<th scope="col">First</th> <th scope="col">First</th>
<th scope="col">Last</th> <th scope="col">Last</th>
<th scope="col">eMail</th>
<th scope="col">Registered</th> <th scope="col">Registered</th>
<th scope="col">Manage</th>
</tr> </tr>
</thead> </thead>
{% for user in users %} {% for user in users %}
@ -29,241 +31,19 @@
<td> <td>
{{ user.lastName }} {{ user.lastName }}
</td> </td>
<td>
{{ user.email }}
</td>
<td> <td>
{{ user.createdAt|ago }} {{ user.createdAt|ago }}
</td> </td>
<td>
<button type="button" class="btn btn-outline-primary btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
</td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
</div> </div>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="card bg-dark">
<div class="card-body">
<h5 class="card-title text-uppercase mb-0">Manage Users</h5>
</div>
<div class="table-responsive">
<table class="table no-wrap user-table mb-0">
<thead>
<tr>
<th scope="col" class="border-0 text-uppercase font-medium pl-4">#</th>
<th scope="col" class="border-0 text-uppercase font-medium">Name</th>
<th scope="col" class="border-0 text-uppercase font-medium">Occupation</th>
<th scope="col" class="border-0 text-uppercase font-medium">Email</th>
<th scope="col" class="border-0 text-uppercase font-medium">Added</th>
<th scope="col" class="border-0 text-uppercase font-medium">Category</th>
<th scope="col" class="border-0 text-uppercase font-medium">Manage</th>
</tr>
</thead>
<tbody>
<tr>
<td class="pl-4">1</td>
<td>
<h5 class="font-medium mb-0">Daniel Kristeen</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">15 Mar 1988</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">2</td>
<td>
<h5 class="font-medium mb-0">Emma Smith</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">15 Mar 1855</span><br>
<span class="text-muted">10: 00 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">3</td>
<td>
<h5 class="font-medium mb-0">Olivia Johnson</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">17 Aug 1988</span><br>
<span class="text-muted">12: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">4</td>
<td>
<h5 class="font-medium mb-0">Isabella Williams</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">26 Mar 1999</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">5</td>
<td>
<h5 class="font-medium mb-0">Sophia Jones</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">16 Aug 2001</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">6</td>
<td>
<h5 class="font-medium mb-0">Charlotte Brown</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">15 Mar 1988</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -12,9 +12,13 @@
<div class="d-flex flex-column align-items-center text-center p-3 py-5"> <div class="d-flex flex-column align-items-center text-center p-3 py-5">
<img class="rounded-circle mt-5" <img class="rounded-circle mt-5"
width="150px" width="150px"
src=" {{ asset('build/images/tracer_schmolle150x150.png') }}" alt="profile image"> src=" {{ asset('/uploads/avatars/' ~ user.avatar) }}" alt="profile image">
<span class="font-weight-bold">{{ user.username }}</span> <span class="font-weight-bold">{{ user.username }}</span>
<span class="font-weight-bold"><a href="{{ path('app_main', { '_switch_user': app.user.username }) }}">switch user {{ user.username }}</span> {% if is_granted('ROLE_ADMIN') %}
<span class="font-weight-bold">
<a href="{{ path('app_main', { '_switch_user': app.user.username }) }}">switch user {{ user.username }}</a>
</span>
{% endif %}
<span class="text-white-50"><i class="fa fa-lg fa-envelope me-1"></i>{{ user.email }}</span> <span class="text-white-50"><i class="fa fa-lg fa-envelope me-1"></i>{{ user.email }}</span>
</div> </div>
@ -27,18 +31,21 @@
<div class="row mt-2"> <div class="row mt-2">
<div class="col-md-6"> <div class="col-md-6">
<label class="labels" for="first-name">First Name</label> <label class="labels" for="first-name">First Name</label>
<input type="text" disabled id="first-name" class="form-control" placeholder="First Name" value="{{ user.firstName }}"> <input type="text" disabled id="first-name" class="form-control" placeholder="First Name"
value="{{ user.firstName }}">
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="labels" for="last-name">Last Name</label> <label class="labels" for="last-name">Last Name</label>
<input type="text" disabled id="last-name" class="form-control" value="{{ user.lastName }}" placeholder="Last Name"> <input type="text" disabled id="last-name" class="form-control" value="{{ user.lastName }}"
placeholder="Last Name">
</div> </div>
</div>
<div class="col-md-6"> <div class="col-md-6">
<label class="labels" for="username">Username</label> <label class="labels" for="username">Username</label>
<input type="text" disabled class="form-control" id="username" placeholder="eMail address" value="{{ user.email }}"> <input type="text" disabled class="form-control" id="username" placeholder="eMail address"
value="{{ user.email }}">
</div>
</div> </div>
<!-- <!--

2497
yarn.lock

File diff suppressed because it is too large Load Diff