Preview Functionality

This commit is contained in:
Daniel Cortés
2019-10-16 12:14:35 -03:00
parent 4043831ccd
commit 5a1923299a
16 changed files with 229 additions and 56 deletions

View File

@@ -20,6 +20,10 @@ class NowController extends Controller
public function save(Request $request)
{
if($request->action === "preview") {
return $this->preview($request);
}
$now = new Now();
$now->md = $request->md;
$now->save();
@@ -34,6 +38,10 @@ class NowController extends Controller
public function update(Request $request, $id)
{
if($request->action === "preview") {
return $this->preview($request);
}
$now = Now::find($id);
$now->md = $request->md;
@@ -42,6 +50,14 @@ class NowController extends Controller
return redirect()->route('admin.now.index');
}
public function preview(Request $request)
{
return view('admin.preview', [
'md' => $request->md,
'title' => "Now"
]);
}
public function delete($id)
{
$now= Now::find($id);

View File

@@ -14,6 +14,10 @@ class PostController extends Controller
public function save(Request $request)
{
if($request->action === "preview") {
return $this->preview($request);
}
$post = new Post();
$post->title = $request->title;
$post->md = $request->md;
@@ -29,6 +33,10 @@ class PostController extends Controller
public function update(Request $request, $id)
{
if($request->action === "preview") {
return $this->preview($request);
}
$post = Post::find($id);
$post->title = $request->title;
@@ -38,6 +46,14 @@ class PostController extends Controller
return redirect()->route('admin.post.index');
}
public function preview(Request $request)
{
return view('admin.preview', [
'md' => $request->md,
'title' => $request->title
]);
}
public function delete($id)
{
$post = Post::find($id);

View File

@@ -22,6 +22,10 @@ class ProjectController extends Controller
public function save(Request $request)
{
if($request->action === "preview") {
return $this->preview($request);
}
$project = new Project();
$project->title = $request->title;
$project->md = $request->md;
@@ -37,6 +41,10 @@ class ProjectController extends Controller
public function update(Request $request, $id)
{
if($request->action === "preview") {
return $this->preview($request);
}
$project = Project::find($id);
$project->title = $request->title;
$project->md = $request->md;
@@ -45,6 +53,14 @@ class ProjectController extends Controller
return redirect()->route('admin.project.index');
}
public function preview(Request $request)
{
return view('admin.preview', [
'md' => $request->md,
'title' => $request->title
]);
}
public function delete($id)
{
Project::find($id)->delete();

View File

@@ -20,6 +20,10 @@ class SetupController extends Controller
public function save(Request $request)
{
if($request->action === "preview") {
return $this->preview($request);
}
$setup = new Setup();
$setup->title = $request->title;
$setup->md = $request->md;
@@ -35,6 +39,10 @@ class SetupController extends Controller
public function update(Request $request, $id)
{
if($request->action === "preview") {
return $this->preview($request);
}
$setup = Setup::find($id);
$setup->title = $request->title;
$setup->md = $request->md;
@@ -43,6 +51,14 @@ class SetupController extends Controller
return redirect()->route('admin.setup.index');
}
public function preview(Request $request)
{
return view('admin.preview', [
'md' => $request->md,
'title' => $request->title
]);
}
public function delete($id)
{
Setup::find($id)->delete();

63
public/js/admin.js vendored
View File

@@ -93,20 +93,67 @@
/*! no static exports found */
/***/ (function(module, exports) {
posts_edit_regexp = new RegExp("/admin/posts/\\d+/edit");
now_edit_regexp = new RegExp("/admin/now/\\d+/edit");
projects_edit_regexp = new RegExp("/admin/projects/\\d+/edit");
setups_edit_regexp = new RegExp("/admin/setups/\\d+/edit");
function is_admin_post_route() {
var posts_edit_regexp = new RegExp("/admin/posts/\\d+/edit");
return window.location.pathname === "/admin/posts" || window.location.pathname === "/admin/posts/create" || window.location.pathname.match(posts_edit_regexp);
}
if (window.location.pathname === "/admin/posts" || window.location.pathname === "/admin/posts/create" || window.location.pathname.match(posts_edit_regexp)) {
function is_admin_now_route() {
var now_edit_regexp = new RegExp("/admin/now/\\d+/edit");
return window.location.pathname === "/admin/now" || window.location.pathname === "/admin/now/create" || window.location.pathname.match(now_edit_regexp);
}
function is_admin_projects_route() {
var projects_edit_regexp = new RegExp("/admin/projects/\\d+/edit");
return window.location.pathname === "/admin/projects" || window.location.pathname === "/admin/projects/create" || window.location.pathname.match(projects_edit_regexp);
}
function is_admin_setups_route() {
var setups_edit_regexp = new RegExp("/admin/setups/\\d+/edit");
return window.location.pathname === "/admin/setups" || window.location.pathname === "/admin/setups/create" || window.location.pathname.match(setups_edit_regexp);
}
function admin_highlight() {
if (is_admin_post_route()) {
document.getElementById("posts-link").classList.add("menu-highlight");
} else if (window.location.pathname === "/admin/now" || window.location.pathname === "/admin/now/create" || window.location.pathname.match(now_edit_regexp)) {
}
if (is_admin_now_route()) {
document.getElementById("now-link").classList.add("menu-highlight");
} else if (window.location.pathname === "/admin/projects" || window.location.pathname === "/admin/projects/create" || window.location.pathname.match(projects_edit_regexp)) {
}
if (is_admin_projects_route()) {
document.getElementById("projects-link").classList.add("menu-highlight");
} else if (window.location.pathname === "/admin/setups" || window.location.pathname === "/admin/setups/create" || window.location.pathname.match(setups_edit_regexp)) {
}
if (is_admin_setups_route()) {
document.getElementById("setup-link").classList.add("menu-highlight");
}
}
function preview() {
var previewButton = document.getElementById("preview");
var mainButton = document.getElementById("main");
if (previewButton == null) {
return;
}
var form = document.getElementsByTagName("form")[0];
previewButton.addEventListener("click", function (e) {
form.setAttribute("target", "_blank");
});
mainButton.addEventListener("click", function (e) {
form.removeAttribute("target");
});
}
function main() {
admin_highlight();
preview();
}
window.onload = main;
/***/ }),

78
resources/js/admin.js vendored
View File

@@ -1,30 +1,76 @@
posts_edit_regexp = new RegExp("/admin/posts/\\d+/edit");
now_edit_regexp = new RegExp("/admin/now/\\d+/edit");
projects_edit_regexp = new RegExp("/admin/projects/\\d+/edit");
setups_edit_regexp = new RegExp("/admin/setups/\\d+/edit");
if(
function is_admin_post_route() {
const posts_edit_regexp = new RegExp("/admin/posts/\\d+/edit");
return (
window.location.pathname === "/admin/posts" ||
window.location.pathname === "/admin/posts/create" ||
window.location.pathname.match(posts_edit_regexp)
){
document.getElementById("posts-link").classList.add("menu-highlight");
} else if(
);
}
function is_admin_now_route() {
const now_edit_regexp = new RegExp("/admin/now/\\d+/edit");
return (
window.location.pathname === "/admin/now" ||
window.location.pathname === "/admin/now/create" ||
window.location.pathname.match(now_edit_regexp)
){
document.getElementById("now-link").classList.add("menu-highlight");
} else if(
);
}
function is_admin_projects_route() {
const projects_edit_regexp = new RegExp("/admin/projects/\\d+/edit");
return (
window.location.pathname === "/admin/projects" ||
window.location.pathname === "/admin/projects/create" ||
window.location.pathname.match(projects_edit_regexp)
){
document.getElementById("projects-link").classList.add("menu-highlight");
} else if(
);
}
function is_admin_setups_route() {
const setups_edit_regexp = new RegExp("/admin/setups/\\d+/edit");
return (
window.location.pathname === "/admin/setups" ||
window.location.pathname === "/admin/setups/create" ||
window.location.pathname.match(setups_edit_regexp)
){
);
}
function admin_highlight() {
if(is_admin_post_route()){
document.getElementById("posts-link").classList.add("menu-highlight");
}
if(is_admin_now_route()){
document.getElementById("now-link").classList.add("menu-highlight");
}
if(is_admin_projects_route()){
document.getElementById("projects-link").classList.add("menu-highlight");
}
if(is_admin_setups_route()){
document.getElementById("setup-link").classList.add("menu-highlight");
}
}
function preview() {
const previewButton = document.getElementById("preview");
const mainButton = document.getElementById("main");
if(previewButton == null){
return;
}
const form = document.getElementsByTagName("form")[0];
previewButton.addEventListener("click", (e) => {
form.setAttribute("target", "_blank");
});
mainButton.addEventListener("click", (e) => {
form.removeAttribute("target");
});
}
function main() {
admin_highlight();
preview();
}
window.onload = main;

View File

@@ -15,7 +15,8 @@
<textarea id="md" name="md"></textarea>
<div class="control">
<button type="submit" class="pure-button button-black-white">Create</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="create">Create</button>
</div>
</fieldset>
</form>

View File

@@ -15,7 +15,8 @@
<textarea id="md" name="md">{{ old('md', $now->md) }}</textarea>
<div class="control">
<button type="submit" class="pure-button button-black-white">Update</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="update">Update</button>
</div>
</fieldset>
</form>

View File

@@ -19,7 +19,8 @@
<textarea id="md" name="md"></textarea>
<div class="control">
<button class="pure-button button-black-white" type="submit">Create</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="create">Create</button>
</div>
</fieldset>
</form>

View File

@@ -19,7 +19,8 @@
<textarea id="md" name="md">{{ old('md', $post->md) }}</textarea>
<div class="control">
<button type="submit" class="pure-button button-black-white">Update</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="update">Update</button>
</div>
</fieldset>
</form>

View File

@@ -0,0 +1,14 @@
@extends('base')
@php
$parse = new Parsedown();
@endphp
@section('content')
<article>
<header>
<h1 class="post-title">{{$title}}</h1>
</header>
{!! $parse->text($md) !!}
</article>
@endsection

View File

@@ -18,7 +18,8 @@
<textarea id="md" name="md"></textarea>
<div class="control">
<button class="pure-button button-black-white" type="submit">Create</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="create">Create</button>
</div>
</fieldset>
</form>

View File

@@ -18,7 +18,8 @@
<textarea class="form-input" id="md" name="md">{{ old('md', $project->md) }}</textarea>
<div class="control">
<button type="submit" class="pure-button button-black-white">Back</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="update">Update</button>
</div>
</fieldset>
</form>

View File

@@ -18,7 +18,8 @@
<textarea id="md" name="md"></textarea>
<div class="control">
<button class="pure-button button-black-white" type="submit">Create</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="create">Create</button>
</div>
</fieldset>
</form>

View File

@@ -18,7 +18,8 @@
<textarea id="md" name="md">{{ old('md', $setup->md) }}</textarea>
<div class="control">
<button type="submit" class="pure-button button-black-white">Update</button>
<button class="pure-button button-black-white" name="action" id="preview" type="submit" value="preview">Preview</button>
<button class="pure-button button-black-white" name="action" id="main" type="submit" value="update">Update</button>
</div>
</fieldset>
</form>

View File

@@ -62,9 +62,3 @@ Route::middleware('auth')->group(function() {
Route::get('/', function () {
return view('index');
})->name('index');
Route::get('/setup', function () {
return view('setup');
})->name('setup');