diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php new file mode 100644 index 0000000..d55cc57 --- /dev/null +++ b/app/Http/Controllers/AdminController.php @@ -0,0 +1,13 @@ +middleware('guest'); - } -} diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php deleted file mode 100644 index b2ea669..0000000 --- a/app/Http/Controllers/Auth/LoginController.php +++ /dev/null @@ -1,39 +0,0 @@ -middleware('guest')->except('logout'); - } -} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php deleted file mode 100644 index 85b9057..0000000 --- a/app/Http/Controllers/Auth/RegisterController.php +++ /dev/null @@ -1,72 +0,0 @@ -middleware('guest'); - } - - /** - * Get a validator for an incoming registration request. - * - * @param array $data - * @return \Illuminate\Contracts\Validation\Validator - */ - protected function validator(array $data) - { - return Validator::make($data, [ - 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'password' => ['required', 'string', 'min:8', 'confirmed'], - ]); - } - - /** - * Create a new user instance after a valid registration. - * - * @param array $data - * @return \App\User - */ - protected function create(array $data) - { - return User::create([ - 'name' => $data['name'], - 'email' => $data['email'], - 'password' => Hash::make($data['password']), - ]); - } -} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php deleted file mode 100644 index cf726ee..0000000 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ /dev/null @@ -1,39 +0,0 @@ -middleware('guest'); - } -} diff --git a/app/Http/Controllers/Auth/VerificationController.php b/app/Http/Controllers/Auth/VerificationController.php deleted file mode 100644 index 23a43a8..0000000 --- a/app/Http/Controllers/Auth/VerificationController.php +++ /dev/null @@ -1,41 +0,0 @@ -middleware('auth'); - $this->middleware('signed')->only('verify'); - $this->middleware('throttle:6,1')->only('verify', 'resend'); - } -} diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php new file mode 100644 index 0000000..ec786e3 --- /dev/null +++ b/app/Http/Controllers/LoginController.php @@ -0,0 +1,26 @@ +middleware('guest')->except('logout'); + } + + public function redirectTo() + { + return route('admin'); + } + + public function showLoginForm() + { + return view('login'); + } +} diff --git a/app/Http/Controllers/NowController.php b/app/Http/Controllers/NowController.php new file mode 100644 index 0000000..774fe95 --- /dev/null +++ b/app/Http/Controllers/NowController.php @@ -0,0 +1,15 @@ +first(); + return view('now.index', ['now' => $now] ); + } +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index e4cec9c..e27860e 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -18,7 +18,7 @@ class RedirectIfAuthenticated public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { - return redirect('/home'); + return redirect('/'); } return $next($request); diff --git a/database/seeds/NowTableSeeder.php b/database/seeds/NowTableSeeder.php index 9010f16..4de68de 100644 --- a/database/seeds/NowTableSeeder.php +++ b/database/seeds/NowTableSeeder.php @@ -6,6 +6,6 @@ class NowTableSeeder extends Seeder { public function run() { - factory(App\Post::class, 50)->create(); + factory(App\Now::class, 50)->create(); } } diff --git a/public/css/admin.css b/public/css/admin.css new file mode 100644 index 0000000..42f4688 --- /dev/null +++ b/public/css/admin.css @@ -0,0 +1,61 @@ +body { + margin: 0; + color: #212121; +} + +.sidebar { + position: fixed; + left: 0; + top: 0; + height: 100%; + width: 20ch; + border-right: 1px solid #f2f2f2; +} + +.sidebar .items { + display: -webkit-flex; + display: flex; + height: 100%; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-justify-content: flex-start; + justify-content: flex-start; +} + +.sidebar .item { + line-height: 2em; +} + +.sidebar .end { + margin-top: auto; +} + +.sidebar .end a { + padding: 2em 0; +} + +.sidebar a, +.sidebar span { + display: block; + text-align: center; + text-transform: uppercase; + font-weight: bold; + letter-spacing: 0.2rem; + text-decoration: none; + color: #212121; +} + +.sidebar a:hover { + color: #0fa0ce; +} + +.sidebar span { + font-size: 1.2rem; + margin: 2em 0; +} + +.container { + margin-left: 20ch; + height: 100vh; +} + diff --git a/public/css/app.css b/public/css/app.css index fe5f88f..fe5938a 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -19,6 +19,38 @@ a { color: #212121; } +form label { + display: block; + text-transform: uppercase; + font-weight: bold; + font-size: 0.9em; +} + +form input { + display: block; + width: 100%; + height: 2em; + border: 1px solid #212121; + border-radius: 4px; + margin-bottom: 1em; + padding: 0.4em; +} + +button { + display: inline-block; + box-sizing: border-box; + text-align: center; + cursor: pointer; + color: #212121; + border: 1px solid #212121; + border-radius: 4px; + background-color: #fff; + font-weight: bold; + height: 3em; + padding: 0 3em; + text-transform: uppercase; +} + .navbar { display: -webkit-flex; display: flex; @@ -29,6 +61,7 @@ a { display: -webkit-flex; display: flex; list-style: none; + padding-left: 0; } .navbar-item a { diff --git a/public/js/app.js b/public/js/app.js index 34ffdf8..616f462 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -95,6 +95,17 @@ +/***/ }), + +/***/ "./resources/sass/admin.scss": +/*!***********************************!*\ + !*** ./resources/sass/admin.scss ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// removed by extract-text-webpack-plugin + /***/ }), /***/ "./resources/sass/app.scss": @@ -109,14 +120,15 @@ /***/ }), /***/ 0: -/*!*************************************************************!*\ - !*** multi ./resources/js/app.js ./resources/sass/app.scss ***! - \*************************************************************/ +/*!*****************************************************************************************!*\ + !*** multi ./resources/js/app.js ./resources/sass/app.scss ./resources/sass/admin.scss ***! + \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! /home/data/src/www.danielcortes.xyz/resources/js/app.js */"./resources/js/app.js"); -module.exports = __webpack_require__(/*! /home/data/src/www.danielcortes.xyz/resources/sass/app.scss */"./resources/sass/app.scss"); +__webpack_require__(/*! /home/data/src/www.danielcortes.xyz/resources/sass/app.scss */"./resources/sass/app.scss"); +module.exports = __webpack_require__(/*! /home/data/src/www.danielcortes.xyz/resources/sass/admin.scss */"./resources/sass/admin.scss"); /***/ }) diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 2d60117..dba4e88 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,5 @@ { "/js/app.js": "/js/app.js", - "/css/app.css": "/css/app.css" + "/css/app.css": "/css/app.css", + "/css/admin.css": "/css/admin.css" } diff --git a/resources/sass/admin.scss b/resources/sass/admin.scss new file mode 100644 index 0000000..d40c19f --- /dev/null +++ b/resources/sass/admin.scss @@ -0,0 +1,61 @@ +$colorfg: #212121; +$colorborder: #f2f2f2; +$color01: #0fa0ce; + +body { + margin: 0; + color: $colorfg; +} + +.sidebar { + position:fixed; + left: 0; + top: 0; + height: 100%; + width: 20ch; + border-right: 1px solid $colorborder; + + .items { + display: flex; + height: 100%; + flex-direction: column; + justify-content: flex-start; + } + + .item { + line-height: 2em; + } + + .end { + margin-top: auto; + + a { + padding: 2em 0; + } + } + + a, span { + display:block; + text-align: center; + text-transform: uppercase; + font-weight: bold; + letter-spacing: .2rem; + text-decoration: none; + color: $colorfg; + + } + + a:hover { + color: $color01; + } + + span { + font-size: 1.2rem; + margin: 2em 0; + } +} + +.container { + margin-left: 20ch; + height:100vh; +} diff --git a/resources/sass/app.scss b/resources/sass/app.scss index a48006a..1897036 100644 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -23,6 +23,39 @@ a { color: $colorfg; } +form label { + display: block; + text-transform: uppercase; + font-weight: bold; + font-size: .9em; +} + +form input { + display: block; + width: 100%; + height: 2em; + border: 1px solid $colorfg; + border-radius: 4px; + margin-bottom: 1em; + padding: .4em; +} + +button { + display: inline-block; + box-sizing: border-box; + text-align: center; + cursor: pointer; + color: $colorfg; + border: 1px solid $colorfg; + border-radius: 4px; + background-color: #fff; + + font-weight: bold; + height: 3em; + padding: 0 3em; + text-transform: uppercase; +} + .navbar { display: flex; border-bottom: 1px solid $colorborder; @@ -31,6 +64,7 @@ a { .navbar-items { display: flex; list-style: none; + padding-left: 0; } .navbar-item a { diff --git a/resources/views/admin/index.blade.php b/resources/views/admin/index.blade.php new file mode 100644 index 0000000..d9dd114 --- /dev/null +++ b/resources/views/admin/index.blade.php @@ -0,0 +1,28 @@ + + + + + + @section('title') + Daniel Cortés + @show + + + + + +
+
+ + + + diff --git a/resources/views/base.blade.php b/resources/views/base.blade.php index 45c9857..e19df9a 100644 --- a/resources/views/base.blade.php +++ b/resources/views/base.blade.php @@ -18,21 +18,24 @@ Blog - + + @auth + + @endauth - @yield('content') + @yield('content') diff --git a/resources/views/blog/archive.blade.php b/resources/views/blog/archive.blade.php index 684b725..b6b984d 100644 --- a/resources/views/blog/archive.blade.php +++ b/resources/views/blog/archive.blade.php @@ -1,14 +1,13 @@ @extends('base') @section('content') -
-

Archive

-
+ @endsection diff --git a/resources/views/blog/index.blade.php b/resources/views/blog/index.blade.php index dcbf14c..ba8c763 100644 --- a/resources/views/blog/index.blade.php +++ b/resources/views/blog/index.blade.php @@ -5,14 +5,12 @@ @endphp @section('content') -
- @foreach($posts as $post) -
-

{{$post->title}}

- {!! $parse->text($post->md) !!} -
-
- @endforeach - Mas posts en el archivo -
+ @foreach($posts as $post) +
+

{{$post->title}}

+ {!! $parse->text($post->md) !!} +
+
+ @endforeach + Mas posts en el archivo @endsection diff --git a/resources/views/blog/show.blade.php b/resources/views/blog/show.blade.php index 57f978b..b6aa223 100644 --- a/resources/views/blog/show.blade.php +++ b/resources/views/blog/show.blade.php @@ -5,11 +5,10 @@ @endphp @section('content') -
-
-

{{$post->title}}

+
+

{{$post->title}}

{!! $parse->text($post->md) !!}
+
Para posts antiguos, ve al archivo -
@endsection diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index a1e1dea..df427f2 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -1,7 +1,5 @@ @extends('base') @section('content') -
-

HOLA

-
+

Home

@endsection diff --git a/resources/views/login.blade.php b/resources/views/login.blade.php new file mode 100644 index 0000000..d6175b3 --- /dev/null +++ b/resources/views/login.blade.php @@ -0,0 +1,18 @@ +@extends('base') + +@section('content') +
+ @csrf +
+ + +
+ +
+ + +
+ + +
+@endsection diff --git a/resources/views/now.blade.php b/resources/views/now.blade.php index a1e1dea..8b0ed1d 100644 --- a/resources/views/now.blade.php +++ b/resources/views/now.blade.php @@ -1,7 +1,5 @@ @extends('base') @section('content') -
-

HOLA

-
+

Now

@endsection diff --git a/resources/views/now/index.blade.php b/resources/views/now/index.blade.php new file mode 100644 index 0000000..c492b1e --- /dev/null +++ b/resources/views/now/index.blade.php @@ -0,0 +1,12 @@ +@extends('base') + +@php + $parse = new Parsedown(); +@endphp + +@section('content') +
+ {!! $parse->text($now->md) !!} +
+
+@endsection diff --git a/resources/views/projects.blade.php b/resources/views/projects.blade.php index a1e1dea..34846d1 100644 --- a/resources/views/projects.blade.php +++ b/resources/views/projects.blade.php @@ -1,7 +1,5 @@ @extends('base') @section('content') -
-

HOLA

-
+

Projects

@endsection diff --git a/resources/views/setup.blade.php b/resources/views/setup.blade.php index a1e1dea..2c5bf39 100644 --- a/resources/views/setup.blade.php +++ b/resources/views/setup.blade.php @@ -1,7 +1,5 @@ @extends('base') @section('content') -
-

HOLA

-
+

Setup

@endsection diff --git a/routes/web.php b/routes/web.php index e7bc6fe..bb8e9ff 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,16 +1,23 @@ name('index'); -Route::get('/now', function () { - return view('now'); -})->name('now'); +Route::get('/login', 'LoginController@showLoginForm')->name('login'); +Route::post('/login', 'LoginController@login'); + +Route::get('/now', 'NowController@index')->name('now.index'); Route::get('/blog', 'BlogController@index')->name('blog.index'); Route::get('blog/archive', 'BlogController@archive')->name('blog.archive'); Route::get('/blog/{post}', 'BlogController@show')->name('blog.show'); +Route::middleware('auth')->group(function() { + Route::get('/logout', 'LoginController@logout')->name('logout'); + Route::get('/admin', 'AdminController@index')->name('admin'); +}); + +Route::get('/', function () { + return view('index'); +})->name('index'); + Route::get('/projects', function () { return view('projects'); })->name('projects'); @@ -18,3 +25,4 @@ Route::get('/projects', function () { Route::get('/setup', function () { return view('setup'); })->name('setup'); + diff --git a/webpack.mix.js b/webpack.mix.js index 1199713..d14da7c 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -13,4 +13,5 @@ const mix = require('laravel-mix'); mix.disableNotifications(); mix.js('resources/js/app.js', 'public/js') - .sass('resources/sass/app.scss', 'public/css'); + .sass('resources/sass/app.scss', 'public/css') + .sass('resources/sass/admin.scss', 'public/css');