投稿の編集・削除機能性
このコミットが含まれているのは:
コミット
07dfaf1387
|
@ -102,16 +102,17 @@ class Content {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete (Request $r) {
|
public function delete (Request $r) {
|
||||||
if (($this->valid['blg_delpost'] && $bdl['isPost'] == 1) || ($this->valid['blg_delpage'] && $bdl['isPost'] == 0)) {
|
$chk = DB::table('blg_content')->select('isPost')->where('slug', $r->slug)->first();
|
||||||
|
if (($this->valid['blg_delpost'] && $chk->isPost == 1) || ($this->valid['blg_delpage'] && $chk->isPost == 0)) {
|
||||||
return DB::table('blg_content')->where('slug', $r->slug)->delete();
|
return DB::table('blg_content')->where('slug', $r->slug)->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return '許可がありません。';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function edit (Request $r) {
|
public function edit (Request $r) {
|
||||||
if ($this->user && ($this->user->perm['blg_editpost'] || $this->user->perm['blg_editpage'])) {
|
if ($this->user && ($this->user->perm['blg_editpost'] || $this->user->perm['blg_editpage'])) {
|
||||||
$frm = DB::table('blg_content')->where('slug', $r->slug)->first();////////////////////
|
$frm = DB::table('blg_content')->where('slug', $r->slug)->first();
|
||||||
$err = '';
|
$err = '';
|
||||||
$res = '';
|
$res = '';
|
||||||
|
|
||||||
|
@ -137,49 +138,44 @@ class Content {
|
||||||
$r->isMenu = (int)$r->isMenu;
|
$r->isMenu = (int)$r->isMenu;
|
||||||
|
|
||||||
// フォームの値を保存して
|
// フォームの値を保存して
|
||||||
$frm['title'] = $r->title;
|
$frm->title = $r->title;
|
||||||
$frm['slug'] = $r->slug;
|
$frm->public_status = $r->public_status;
|
||||||
$frm['public_status'] = $r->public_status;
|
$frm->publish_date = $r->publish_date;
|
||||||
$frm['publish_date'] = $r->publish_date;
|
$frm->isMenu = $r->isMenu;
|
||||||
$frm['isMenu'] = $r->isMenu;
|
$frm->isPost = $r->isPost;
|
||||||
$frm['isPost'] = $r->isPost;
|
$frm->message = $r->message;
|
||||||
$frm['message'] = $r->message;
|
|
||||||
|
|
||||||
// 件名、文章又はスラッグがなければ、エラーを出て
|
// 件名、文章又はスラッグがなければ、エラーを出て
|
||||||
$verify = array('件名' => $r->title, 'スラッグ' => $r->slug, '文章' => $r->message);
|
$verify = array('件名' => $r->title, '文章' => $r->message);
|
||||||
$incomplete = array();
|
$incomplete = array();
|
||||||
foreach ($verify as $k => $v) { if (is_null($v) || empty($v) || !isset($v)) $incomplete[] = $k; }
|
foreach ($verify as $k => $v) { if (is_null($v) || empty($v) || !isset($v)) $incomplete[] = $k; }
|
||||||
if (count($incomplete) > 0) $err = implode('、', $incomplete).'をご入力下さい。';
|
if (count($incomplete) > 0) $err = implode('、', $incomplete).'をご入力下さい。';
|
||||||
|
|
||||||
// スラッグが既に存在したら、エラーを出て
|
|
||||||
$sl = DB::table('blg_content')->select('slug')->where('slug', $r->slug)->first();
|
|
||||||
if ($sl && $sl->slug == $r->slug) $err = 'このスラッグがもう存在しています。';
|
|
||||||
|
|
||||||
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
|
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
|
||||||
if (!empty($err)) return view('pages.site.content.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
|
if (!empty($err)) return view('pages.site.content.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
|
||||||
else {
|
else {
|
||||||
// データベースに追加できるには、値を修正して
|
// データベースに追加できるには、値を修正して
|
||||||
$gs = DB::table('blg_content')->select('sortorder')->orderBy('sortorder', 'desc')->first();
|
$gs = DB::table('blg_content')->select('sortorder')->orderBy('sortorder', 'desc')->first();
|
||||||
if (!isset($r->publish_date)) $frm['publish_date'] = ($r->isPost == 1 ? time() : 0);
|
if (!isset($r->publish_date)) $frm->publish_date = ($r->isPost == 1 ? time() : 0);
|
||||||
if (!isset($r->public_status)) $frm['public_status'] = 0;
|
if (!isset($r->public_status)) $frm->public_status = 0;
|
||||||
if (!isset($r->isPost)) $frm['isPost'] = 0;
|
if (!isset($r->isPost)) $frm->isPost = 0;
|
||||||
if (!isset($r->isMenu)) $frm['isMenu'] = 0;
|
if (!isset($r->isMenu)) $frm->isMenu = 0;
|
||||||
$frm['post_date'] = ($r->isPost == 1 ? time() : 0);
|
$frm->post_date = ($r->isPost == 1 ? time() : 0);
|
||||||
$frm['sortorder'] = ($r->isPost == 0 ? $gs->sortorder+1 : 0);
|
$frm->sortorder = ($r->isPost == 0 ? $gs->sortorder+1 : 0);
|
||||||
|
|
||||||
// できたの?
|
// できたの?
|
||||||
if ($res = DB::table('blg_content')->where('slug', $bdl['slug'])->update($frm)) return redirect(($r->isPost == 1 ? '/blog/' : '/').$r->slug);
|
if ($res = DB::table('blg_content')->where('slug', $r->slug)->update((array)$frm)) return redirect(($r->isPost == 1 ? '/blog/' : '/').$r->slug);
|
||||||
else {
|
else {
|
||||||
// やれやれ…
|
// やれやれ…
|
||||||
$frm['publish_date'] = $sav;
|
$frm->publish_date = $sav;
|
||||||
unset($frm['post_date']);
|
unset($frm->post_date);
|
||||||
unset($frm['sortorder']);
|
unset($frm->sortorder);
|
||||||
return view('pages.site.content.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $res['err']]);
|
return view('pages.site.content.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $res['err']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('pages.site.content.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
|
return view('pages.site.content.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect('');
|
return redirect('');
|
||||||
|
|
|
@ -20,9 +20,13 @@ window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
||||||
Vue.component('appbar', require('./components/appbar.vue').default);
|
Vue.component('appbar', require('./components/appbar.vue').default);
|
||||||
Vue.component('comments', require('./components/comments.vue').default);
|
Vue.component('comments', require('./components/comments.vue').default);
|
||||||
Vue.component('content-type', require('./components/contenttype.vue').default);
|
Vue.component('content-type', require('./components/contenttype.vue').default);
|
||||||
|
Vue.component('delete-content', require('./components/deletecontent.vue').default);
|
||||||
|
Vue.component('delete-video', require('./components/deletevideo.vue').default);
|
||||||
|
Vue.component('delete-game', require('./components/deletegame.vue').default);
|
||||||
Vue.component('discord', require('./components/discord.vue').default);
|
Vue.component('discord', require('./components/discord.vue').default);
|
||||||
|
|
||||||
const app = new Vue({ el: '#app' });
|
const app = new Vue({ el: '#app' });
|
||||||
|
const men = new Vue({ el: '#men' });
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Echo exposes an expressive API for subscribing to channels and listening
|
* Echo exposes an expressive API for subscribing to channels and listening
|
||||||
|
|
|
@ -0,0 +1,230 @@
|
||||||
|
<template>
|
||||||
|
<div class="col">
|
||||||
|
<button @click="show = true" class="btn btn-block btn-danger">投稿の削除</button>
|
||||||
|
<span v-if="show">
|
||||||
|
<vue-draggable-resizable style="border: 0px solid #232629;" :drag-handle="'.drag-handle'" class-name-handle="resize-handle" class="disco" :x="-500" :y="10" :z="99999999">
|
||||||
|
<div style="width: 100%; position: relative;">
|
||||||
|
<div class="drag-handle-left"></div>
|
||||||
|
<div class="drag-handle">投稿の削除</div>
|
||||||
|
<div class="drag-handle-right" @click="show = false"></div>
|
||||||
|
</div>
|
||||||
|
<div class="konsole_left"></div>
|
||||||
|
<div style="text-align: center; font-size: 18px; padding-top: 10px;">本当に現在の投稿を削除しますか?</div>
|
||||||
|
<div style="text-align:right; line-height: 15; padding: 10px;">
|
||||||
|
<button type="button" class="btn btn2 btn-popup" @click="show = false">キャンセル</button>
|
||||||
|
<button type="button" class="btn btn2 btn-popup" @click="del">削除</button>
|
||||||
|
</div>
|
||||||
|
<div class="konsole_right"></div>
|
||||||
|
<div class="konsole_bottom_left"></div>
|
||||||
|
<div class="konsole_bottom"></div>
|
||||||
|
<div class="konsole_bottom_right"></div>
|
||||||
|
</vue-draggable-resizable>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import VueDraggableResizable from 'vue-draggable-resizable';
|
||||||
|
import 'vue-draggable-resizable/dist/VueDraggableResizable.css';
|
||||||
|
|
||||||
|
Vue.component('vue-draggable-resizable', VueDraggableResizable);
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: { slug: '' },
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
show: false,
|
||||||
|
width: 0,
|
||||||
|
height: 0,
|
||||||
|
x: 0,
|
||||||
|
y: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: { text (x) { localStorage.shotanote = x; } },
|
||||||
|
methods: {
|
||||||
|
del () { axios.post('/api/content/del', { slug: this.slug }).then(() => { window.location.href = '/'; }); },
|
||||||
|
onResize: function (x, y, width, height) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
this.width = width
|
||||||
|
this.height = height
|
||||||
|
},
|
||||||
|
onDrag: function (x, y) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.konsole {
|
||||||
|
width: 600px;
|
||||||
|
height: 358px;
|
||||||
|
margin: auto;
|
||||||
|
color: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #452886;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-left {
|
||||||
|
height: 30px;
|
||||||
|
width: 30px;
|
||||||
|
background: url('/img/bash/discord_top_left.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle {
|
||||||
|
cursor: default;
|
||||||
|
height: 30px;
|
||||||
|
background: url('/img/bash/top_bg.png') repeat-x;
|
||||||
|
width: auto;
|
||||||
|
margin-left: 30px;
|
||||||
|
margin-right: 28px;
|
||||||
|
padding-top: 7px;
|
||||||
|
padding-right: 0px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-right {
|
||||||
|
height: 30px;
|
||||||
|
width: 28px;
|
||||||
|
background: url('/img/bash/top_right.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-right:hover {
|
||||||
|
background: url('/img/bash/top_right_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-max {
|
||||||
|
height: 30px;
|
||||||
|
width: 23px;
|
||||||
|
background: url('/img/bash/top_max.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-max:hover {
|
||||||
|
background: url('/img/bash/top_max_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-min {
|
||||||
|
height: 30px;
|
||||||
|
width: 23px;
|
||||||
|
background: url('/img/bash/top_min.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 51px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-min:hover {
|
||||||
|
background: url('/img/bash/top_min_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_left {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/left_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 0;
|
||||||
|
height: 167px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_right {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/right_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
height: 167px;
|
||||||
|
top: 30px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disco { background-color: #252a35; }
|
||||||
|
|
||||||
|
.noter, .noter:active, .noter:focus {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
min-height: 360px;
|
||||||
|
width: 290px;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2 {
|
||||||
|
width: 120px;
|
||||||
|
border: 1px solid #4d4d4d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2:hover {
|
||||||
|
cursor: default;
|
||||||
|
border: 1px solid #3daee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-popup {
|
||||||
|
color: #fcfcfc;
|
||||||
|
background-color: #252a35;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vdr {
|
||||||
|
background-size: cover;
|
||||||
|
backdrop-filter: blur(17px);
|
||||||
|
font-family: "Lucida Console", Monospace, "DejaVu Sans Mono", "Courier New", MiscFixed;
|
||||||
|
font-size: 12px;
|
||||||
|
/* white-space: pre; */
|
||||||
|
color: #fcfcfc;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 2px;
|
||||||
|
height: 200px !important;
|
||||||
|
width: 500px !important;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resize-handle-mr {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/right_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
height: 325px;
|
||||||
|
top: 30px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom_left {
|
||||||
|
width: 3px;
|
||||||
|
height: 3px;
|
||||||
|
background: url('/img/bash/bottom_left.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom {
|
||||||
|
height: 2px;
|
||||||
|
background: url('/img/bash/bottom_bg.png') repeat-x;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 2px;
|
||||||
|
width: 495px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom_right {
|
||||||
|
height: 3px;
|
||||||
|
width: 3px;
|
||||||
|
background: url('/img/bash/bottom_right.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,230 @@
|
||||||
|
<template>
|
||||||
|
<div class="col">
|
||||||
|
<button @click="show = true" class="btn btn-block btn-danger">ゲームの削除</button>
|
||||||
|
<span v-if="show">
|
||||||
|
<vue-draggable-resizable style="border: 0px solid #232629;" :drag-handle="'.drag-handle'" class-name-handle="resize-handle" class="disco" :x="-500" :y="10" :z="99999999">
|
||||||
|
<div style="width: 100%; position: relative;">
|
||||||
|
<div class="drag-handle-left"></div>
|
||||||
|
<div class="drag-handle">ゲームの削除</div>
|
||||||
|
<div class="drag-handle-right" @click="show = false"></div>
|
||||||
|
</div>
|
||||||
|
<div class="konsole_left"></div>
|
||||||
|
<div style="text-align: center; font-size: 18px; padding-top: 10px;">本当に現在のゲームを削除しますか?</div>
|
||||||
|
<div style="text-align:right; line-height: 15; padding: 10px;">
|
||||||
|
<button type="button" class="btn btn2 btn-popup" @click="show = false">キャンセル</button>
|
||||||
|
<button type="button" class="btn btn2 btn-popup" @click="del">削除</button>
|
||||||
|
</div>
|
||||||
|
<div class="konsole_right"></div>
|
||||||
|
<div class="konsole_bottom_left"></div>
|
||||||
|
<div class="konsole_bottom"></div>
|
||||||
|
<div class="konsole_bottom_right"></div>
|
||||||
|
</vue-draggable-resizable>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import VueDraggableResizable from 'vue-draggable-resizable';
|
||||||
|
import 'vue-draggable-resizable/dist/VueDraggableResizable.css';
|
||||||
|
|
||||||
|
Vue.component('vue-draggable-resizable', VueDraggableResizable);
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: { slug: '' },
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
show: false,
|
||||||
|
width: 0,
|
||||||
|
height: 0,
|
||||||
|
x: 0,
|
||||||
|
y: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: { text (x) { localStorage.shotanote = x; } },
|
||||||
|
methods: {
|
||||||
|
del () { axios.post('/api/game/del', { slug: this.slug }).then(() => { window.location.href = '/'; }); },
|
||||||
|
onResize: function (x, y, width, height) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
this.width = width
|
||||||
|
this.height = height
|
||||||
|
},
|
||||||
|
onDrag: function (x, y) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.konsole {
|
||||||
|
width: 600px;
|
||||||
|
height: 358px;
|
||||||
|
margin: auto;
|
||||||
|
color: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #452886;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-left {
|
||||||
|
height: 30px;
|
||||||
|
width: 30px;
|
||||||
|
background: url('/img/bash/discord_top_left.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle {
|
||||||
|
cursor: default;
|
||||||
|
height: 30px;
|
||||||
|
background: url('/img/bash/top_bg.png') repeat-x;
|
||||||
|
width: auto;
|
||||||
|
margin-left: 30px;
|
||||||
|
margin-right: 28px;
|
||||||
|
padding-top: 7px;
|
||||||
|
padding-right: 0px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-right {
|
||||||
|
height: 30px;
|
||||||
|
width: 28px;
|
||||||
|
background: url('/img/bash/top_right.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-right:hover {
|
||||||
|
background: url('/img/bash/top_right_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-max {
|
||||||
|
height: 30px;
|
||||||
|
width: 23px;
|
||||||
|
background: url('/img/bash/top_max.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-max:hover {
|
||||||
|
background: url('/img/bash/top_max_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-min {
|
||||||
|
height: 30px;
|
||||||
|
width: 23px;
|
||||||
|
background: url('/img/bash/top_min.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 51px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-min:hover {
|
||||||
|
background: url('/img/bash/top_min_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_left {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/left_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 0;
|
||||||
|
height: 167px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_right {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/right_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
height: 167px;
|
||||||
|
top: 30px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disco { background-color: #252a35; }
|
||||||
|
|
||||||
|
.noter, .noter:active, .noter:focus {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
min-height: 360px;
|
||||||
|
width: 290px;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2 {
|
||||||
|
width: 120px;
|
||||||
|
border: 1px solid #4d4d4d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2:hover {
|
||||||
|
cursor: default;
|
||||||
|
border: 1px solid #3daee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-popup {
|
||||||
|
color: #fcfcfc;
|
||||||
|
background-color: #252a35;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vdr {
|
||||||
|
background-size: cover;
|
||||||
|
backdrop-filter: blur(17px);
|
||||||
|
font-family: "Lucida Console", Monospace, "DejaVu Sans Mono", "Courier New", MiscFixed;
|
||||||
|
font-size: 12px;
|
||||||
|
/* white-space: pre; */
|
||||||
|
color: #fcfcfc;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 2px;
|
||||||
|
height: 200px !important;
|
||||||
|
width: 500px !important;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resize-handle-mr {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/right_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
height: 325px;
|
||||||
|
top: 30px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom_left {
|
||||||
|
width: 3px;
|
||||||
|
height: 3px;
|
||||||
|
background: url('/img/bash/bottom_left.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom {
|
||||||
|
height: 2px;
|
||||||
|
background: url('/img/bash/bottom_bg.png') repeat-x;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 2px;
|
||||||
|
width: 495px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom_right {
|
||||||
|
height: 3px;
|
||||||
|
width: 3px;
|
||||||
|
background: url('/img/bash/bottom_right.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,230 @@
|
||||||
|
<template>
|
||||||
|
<div class="col">
|
||||||
|
<button @click="show = true" class="btn btn-block btn-danger">動画の削除</button>
|
||||||
|
<span v-if="show">
|
||||||
|
<vue-draggable-resizable style="border: 0px solid #232629;" :drag-handle="'.drag-handle'" class-name-handle="resize-handle" class="disco" :x="-500" :y="10" :z="99999999">
|
||||||
|
<div style="width: 100%; position: relative;">
|
||||||
|
<div class="drag-handle-left"></div>
|
||||||
|
<div class="drag-handle">動画の削除</div>
|
||||||
|
<div class="drag-handle-right" @click="show = false"></div>
|
||||||
|
</div>
|
||||||
|
<div class="konsole_left"></div>
|
||||||
|
<div style="text-align: center; font-size: 18px; padding-top: 10px;">本当に現在の動画を削除しますか?</div>
|
||||||
|
<div style="text-align:right; line-height: 15; padding: 10px;">
|
||||||
|
<button type="button" class="btn btn2 btn-popup" @click="show = false">キャンセル</button>
|
||||||
|
<button type="button" class="btn btn2 btn-popup" @click="del">削除</button>
|
||||||
|
</div>
|
||||||
|
<div class="konsole_right"></div>
|
||||||
|
<div class="konsole_bottom_left"></div>
|
||||||
|
<div class="konsole_bottom"></div>
|
||||||
|
<div class="konsole_bottom_right"></div>
|
||||||
|
</vue-draggable-resizable>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import VueDraggableResizable from 'vue-draggable-resizable';
|
||||||
|
import 'vue-draggable-resizable/dist/VueDraggableResizable.css';
|
||||||
|
|
||||||
|
Vue.component('vue-draggable-resizable', VueDraggableResizable);
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: { slug: '' },
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
show: false,
|
||||||
|
width: 0,
|
||||||
|
height: 0,
|
||||||
|
x: 0,
|
||||||
|
y: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: { text (x) { localStorage.shotanote = x; } },
|
||||||
|
methods: {
|
||||||
|
del () { axios.post('/api/video/del', { slug: this.slug }).then(() => { window.location.href = '/'; }); },
|
||||||
|
onResize: function (x, y, width, height) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
this.width = width
|
||||||
|
this.height = height
|
||||||
|
},
|
||||||
|
onDrag: function (x, y) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.konsole {
|
||||||
|
width: 600px;
|
||||||
|
height: 358px;
|
||||||
|
margin: auto;
|
||||||
|
color: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #452886;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-left {
|
||||||
|
height: 30px;
|
||||||
|
width: 30px;
|
||||||
|
background: url('/img/bash/discord_top_left.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle {
|
||||||
|
cursor: default;
|
||||||
|
height: 30px;
|
||||||
|
background: url('/img/bash/top_bg.png') repeat-x;
|
||||||
|
width: auto;
|
||||||
|
margin-left: 30px;
|
||||||
|
margin-right: 28px;
|
||||||
|
padding-top: 7px;
|
||||||
|
padding-right: 0px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-right {
|
||||||
|
height: 30px;
|
||||||
|
width: 28px;
|
||||||
|
background: url('/img/bash/top_right.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-right:hover {
|
||||||
|
background: url('/img/bash/top_right_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-max {
|
||||||
|
height: 30px;
|
||||||
|
width: 23px;
|
||||||
|
background: url('/img/bash/top_max.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-max:hover {
|
||||||
|
background: url('/img/bash/top_max_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-min {
|
||||||
|
height: 30px;
|
||||||
|
width: 23px;
|
||||||
|
background: url('/img/bash/top_min.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 51px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drag-handle-min:hover {
|
||||||
|
background: url('/img/bash/top_min_hover.png') no-repeat;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_left {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/left_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 0;
|
||||||
|
height: 167px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_right {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/right_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
height: 167px;
|
||||||
|
top: 30px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disco { background-color: #252a35; }
|
||||||
|
|
||||||
|
.noter, .noter:active, .noter:focus {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
min-height: 360px;
|
||||||
|
width: 290px;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2 {
|
||||||
|
width: 120px;
|
||||||
|
border: 1px solid #4d4d4d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2:hover {
|
||||||
|
cursor: default;
|
||||||
|
border: 1px solid #3daee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-popup {
|
||||||
|
color: #fcfcfc;
|
||||||
|
background-color: #252a35;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vdr {
|
||||||
|
background-size: cover;
|
||||||
|
backdrop-filter: blur(17px);
|
||||||
|
font-family: "Lucida Console", Monospace, "DejaVu Sans Mono", "Courier New", MiscFixed;
|
||||||
|
font-size: 12px;
|
||||||
|
/* white-space: pre; */
|
||||||
|
color: #fcfcfc;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 30px;
|
||||||
|
left: 2px;
|
||||||
|
height: 200px !important;
|
||||||
|
width: 500px !important;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resize-handle-mr {
|
||||||
|
width: 2px;
|
||||||
|
background: url('/img/bash/right_bg.png') repeat-y;
|
||||||
|
position: absolute;
|
||||||
|
height: 325px;
|
||||||
|
top: 30px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom_left {
|
||||||
|
width: 3px;
|
||||||
|
height: 3px;
|
||||||
|
background: url('/img/bash/bottom_left.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom {
|
||||||
|
height: 2px;
|
||||||
|
background: url('/img/bash/bottom_bg.png') repeat-x;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 2px;
|
||||||
|
width: 495px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.konsole_bottom_right {
|
||||||
|
height: 3px;
|
||||||
|
width: 3px;
|
||||||
|
background: url('/img/bash/bottom_right.png') no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -70,52 +70,9 @@
|
||||||
@if ($user->perm['blg_addpost'] || $user->perm['blg_addpage'])
|
@if ($user->perm['blg_addpost'] || $user->perm['blg_addpage'])
|
||||||
<a href="/content/add" class="dropdown-item">投稿の追加</a>
|
<a href="/content/add" class="dropdown-item">投稿の追加</a>
|
||||||
@endif
|
@endif
|
||||||
<?php
|
|
||||||
$current = '';
|
|
||||||
$slug = '';
|
|
||||||
$url = url()->current();
|
|
||||||
$url = explode('/', $url);
|
|
||||||
|
|
||||||
if (isset($url[3])) {
|
|
||||||
if ($url[3] == 'blog') {
|
|
||||||
$current = $res->slug;
|
|
||||||
$slug = $res->slug;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
foreach ($menu as $i) {
|
|
||||||
if ($url[3] == $i['slug']) $current = $url[3];
|
|
||||||
$slug = $url[3];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_editpost'] || $user->perm['blg_editpage']))
|
|
||||||
<a href="/content/{{ $current }}/edit" class="dropdown-item">投稿の編集</a>
|
|
||||||
@endif
|
|
||||||
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_delpost'] || $user->perm['blg_delpage']))
|
|
||||||
<a href="/content/{{ $current }}/delete" class="dropdown-item">投稿の削除</a>
|
|
||||||
@endif
|
|
||||||
<?php
|
|
||||||
if (isset($url[3]) && isset($url[4]) && isset($url[5]) && $url[3] == 'video' && $url[4] == 'play') {
|
|
||||||
$current = $url[5];
|
|
||||||
$slug = $res->vid;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
@if ($user->perm['blg_addpost'] || $user->perm['blg_editpost'] || $user->perm['blg_delpost'])
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
@endif
|
|
||||||
@if ($user->perm['blg_addpost'])
|
@if ($user->perm['blg_addpost'])
|
||||||
<a href="/video/add" class="dropdown-item">動画の追加</a>
|
<a href="/video/add" class="dropdown-item">動画の追加</a>
|
||||||
@endif
|
@endif
|
||||||
@if (isset($url[3]) && isset($url[4]) && isset($url[5]) && $url[3] == 'video' && $url[4] == 'play')
|
|
||||||
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_editpost'] || $user->perm['blg_editpage']))
|
|
||||||
<a href="/video/{{ $current }}/edit" class="dropdown-item">動画の編集</a>
|
|
||||||
@endif
|
|
||||||
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_delpost'] || $user->perm['blg_delpage']))
|
|
||||||
<a href="/video/{{ $current }}/delete" class="dropdown-item">動画の削除</a>
|
|
||||||
@endif
|
|
||||||
@endif
|
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a href="/logout" class="dropdown-item">サインアウト</a>
|
<a href="/logout" class="dropdown-item">サインアウト</a>
|
||||||
@else
|
@else
|
||||||
|
@ -165,6 +122,50 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md">
|
<div class="col-md">
|
||||||
|
@if (isset($user->perm) && ($user->perm['blg_editpost'] || $user->perm['blg_editpage'] || $user->perm['blg_delpost'] || $user->perm['blg_delpage']))
|
||||||
|
<div class="row" style="margin-bottom: 15px;">
|
||||||
|
<?php
|
||||||
|
$current = '';
|
||||||
|
$slug = '';
|
||||||
|
$url = url()->current();
|
||||||
|
$url = explode('/', $url);
|
||||||
|
|
||||||
|
if (isset($url[3])) {
|
||||||
|
if ($url[3] == 'blog') {
|
||||||
|
$current = $res->slug;
|
||||||
|
$slug = $res->slug;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
foreach ($menu as $i) {
|
||||||
|
if ($url[3] == $i['slug']) $current = $url[3];
|
||||||
|
$slug = $url[3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_editpost'] || $user->perm['blg_editpage']))
|
||||||
|
<div class="col"><a href="/content/{{ $current }}/edit" class="btn btn-block btn-warning">投稿の編集</a></div>
|
||||||
|
@endif
|
||||||
|
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_delpost'] || $user->perm['blg_delpage']))
|
||||||
|
<delete-content slug="{{ $current }}" />
|
||||||
|
@endif
|
||||||
|
<?php
|
||||||
|
if (isset($url[3]) && isset($url[4]) && isset($url[5]) && $url[3] == 'video' && $url[4] == 'play') {
|
||||||
|
$current = $url[5];
|
||||||
|
$slug = $res->vid;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
@if (isset($url[3]) && isset($url[4]) && isset($url[5]) && $url[3] == 'video' && $url[4] == 'play')
|
||||||
|
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_editpost']))
|
||||||
|
<div class="col"><a href="/video/{{ $current }}/edit" class="btn btn-block btn-warning">動画の編集</a></div>
|
||||||
|
@endif
|
||||||
|
@if ($current != '' && $slug != '' && $slug == $current && ($user->perm['blg_delpost']))
|
||||||
|
<delete-video slug="$current" />
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
@yield('content')
|
@yield('content')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
@extends('layouts.site')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="within">
|
||||||
|
<div class="bar">投稿の編集</div>
|
||||||
|
<div class="back">
|
||||||
|
@if ($err)
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
{{ $err }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
<form method="POST" action="/content/{{ $frm->slug }}/edit">
|
||||||
|
@csrf
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-md-3"><b>件名</b></div>
|
||||||
|
<div class="col"><input id="title" name="title" type="text" class="form-control" value="{{ $frm->title }}" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="col"><input id="slug" name="slug" type="hidden" class="form-control" value="{{ $frm->slug }}" /></div>
|
||||||
|
<div>
|
||||||
|
<content-type p="{{$frm->public_status}}" c="{{$frm->isPost}}" d="{{$frm->publish_date}}" m="{{$frm->isMenu}}" />
|
||||||
|
</div>
|
||||||
|
<b>文章</b>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col"><textarea id="message" name="message" rows="16" class="form-control">{{ $frm->message }}</textarea></div>
|
||||||
|
</div>
|
||||||
|
<div class="row body" style="margin-top: 24px;">
|
||||||
|
<div class="col"><input name="submit" type="submit" class="btn btn-success btn-block" value="編集" /></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
Route::post('/api/comment/new', 'HomeController@newComment');
|
Route::post('/api/comment/new', 'HomeController@newComment');
|
||||||
Route::post('/content/del', 'HomeController@delContent');
|
Route::post('/api/content/del', 'HomeController@delContent');
|
||||||
|
Route::post('/api/video/del', 'VideoController@delVideo');
|
||||||
|
Route::post('/api/game/del', 'VideoController@delGame');
|
||||||
|
|
新しいイシューから参照