mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-24 08:45:57 +08:00
Refactored Angular code to instead use VueJS, left with permissions, testing and load testing.
This commit is contained in:
parent
4df3267521
commit
ed375bfaf7
|
@ -18,7 +18,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'debug' => env('APP_DEBUG', false),
|
'debug' => env('APP_DEBUG', true),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
@ -79,9 +79,9 @@ return [
|
||||||
'mysql' => [
|
'mysql' => [
|
||||||
'driver' => 'mysql',
|
'driver' => 'mysql',
|
||||||
'host' => $mysql_host,
|
'host' => $mysql_host,
|
||||||
'database' => env('DB_DATABASE', 'forge'),
|
'database' => env('DB_DATABASE', 'bookstack'),
|
||||||
'username' => env('DB_USERNAME', 'forge'),
|
'username' => env('DB_USERNAME', 'root'),
|
||||||
'password' => env('DB_PASSWORD', ''),
|
'password' => env('DB_PASSWORD', 'Change123'),
|
||||||
'port' => $mysql_port,
|
'port' => $mysql_port,
|
||||||
'charset' => 'utf8mb4',
|
'charset' => 'utf8mb4',
|
||||||
'collation' => 'utf8mb4_unicode_ci',
|
'collation' => 'utf8mb4_unicode_ci',
|
||||||
|
|
|
@ -10,6 +10,7 @@ let vueMapping = {
|
||||||
'code-editor': require('./code-editor'),
|
'code-editor': require('./code-editor'),
|
||||||
'image-manager': require('./image-manager'),
|
'image-manager': require('./image-manager'),
|
||||||
'tag-manager': require('./tag-manager'),
|
'tag-manager': require('./tag-manager'),
|
||||||
|
'page-comments': require('./page-comments')
|
||||||
};
|
};
|
||||||
|
|
||||||
window.vues = {};
|
window.vues = {};
|
||||||
|
|
|
@ -1,18 +1,11 @@
|
||||||
<script type="text/ng-template" id="comment-list-item.html">
|
<div id="page-comments" page-id="<?= $page->id ?>" class="comments-list" v-cloak>
|
||||||
@include('comments/list-item')
|
<h3>@{{totalCommentsStr}}</h3>
|
||||||
</script>
|
<hr>
|
||||||
<script type="text/ng-template" id="comment-reply.html">
|
<comment v-for="(comment, index) in comments" :initial-comment="comment" :index="index" :level=1
|
||||||
@include('comments/comment-reply', ['pageId' => $pageId])
|
v-on:comment-added.stop="commentAdded"
|
||||||
</script>
|
:key="comment.id"></comment>
|
||||||
<div ng-controller="CommentListController as vm" ng-init="pageId = <?= $page->id ?>" class="comments-list" ng-cloak>
|
<div v-if="canComment">
|
||||||
<h3>@{{vm.totalCommentsStr}}</h3>
|
<comment-reply v-on:comment-added.stop="commentAdded" :page-id="<?= $page->id ?>">
|
||||||
<hr>
|
</comment-reply>
|
||||||
<div class="comment-box" ng-repeat="comment in vm.comments track by comment.id">
|
</div>
|
||||||
<div ng-include src="'comment-list-item.html'">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div ng-if="::vm.canComment()">
|
|
||||||
@include('comments/comment-reply', ['pageId' => $pageId])
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
|
@ -1,30 +1,33 @@
|
||||||
<div class='page-comment' id="comment-@{{::pageId}}-@{{::comment.id}}">
|
<div class="comment-box">
|
||||||
|
<div class='page-comment' id="comment-@{{::pageId}}-@{{::comment.id}}">
|
||||||
<div class="user-image">
|
<div class="user-image">
|
||||||
<img ng-src="@{{::comment.created_by.avatar_url}}" alt="user avatar">
|
<img ng-src="@{{::comment.created_by.avatar_url}}" alt="user avatar">
|
||||||
</div>
|
</div>
|
||||||
<div class="comment-container">
|
<div class="comment-container">
|
||||||
<div class="comment-header">
|
<div class="comment-header">
|
||||||
<a href="@{{::comment.created_by.profile_url}}">@{{ ::comment.created_by.name }}</a>
|
<a href="@{{::comment.created_by.profile_url}}">@{{ ::comment.created_by.name }}</a>
|
||||||
</div>
|
</div>
|
||||||
<div ng-bind-html="comment.html" ng-if="::comment.active" class="comment-body" ng-class="!comment.active ? 'comment-inactive' : ''">
|
<div ng-bind-html="comment.html" ng-if="::comment.active" class="comment-body" ng-class="!comment.active ? 'comment-inactive' : ''">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div ng-if="::!comment.active" class="comment-body comment-inactive">
|
||||||
|
{{ trans('entities.comment_deleted') }}
|
||||||
|
</div>
|
||||||
|
<div class="comment-actions">
|
||||||
|
<ul ng-if="!comment.is_hidden">
|
||||||
|
<li ng-if="::(level < 3 && vm.canComment())"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment" is-reply="true">{{ trans('entities.comment_reply') }}</a></li>
|
||||||
|
<li ng-if="::vm.canEditDelete(comment, 'comment_update')"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment">{{ trans('entities.comment_edit') }}</a></li>
|
||||||
|
<li ng-if="::vm.canEditDelete(comment, 'comment_delete')"><a href="#" comment-delete-link comment="comment">{{ trans('entities.comment_delete') }}</a></li>
|
||||||
|
<li>{{ trans('entities.comment_create') }} <a title="@{{::comment.created.day_time_str}}" href="#?cm=comment-@{{::pageId}}-@{{::comment.id}}">@{{::comment.created.diff}}</a></li>
|
||||||
|
<li ng-if="::comment.updated"><span title="@{{::comment.updated.day_time_str}}">@{{ ::vm.trans('entities.comment_updated_text', { updateDiff: comment.updated.diff }) }}
|
||||||
|
<a href="@{{::comment.updated_by.profile_url}}">@{{::comment.updated_by.name}}</a></span></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<comment v-for="comment in comments = comment.sub_comments" v-bind:comment="comment" v-bind:index="index" v-bind:key="comment.id"></comment>
|
||||||
|
<div class="comment-box" ng-repeat="comment in comments = comment.sub_comments track by comment.id" ng-init="level = level + 1">
|
||||||
|
<div ng-include src="'comment-list-item.html'">
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="::!comment.active" class="comment-body comment-inactive">
|
</div>
|
||||||
{{ trans('entities.comment_deleted') }}
|
|
||||||
</div>
|
|
||||||
<div class="comment-actions">
|
|
||||||
<ul ng-if="!comment.is_hidden">
|
|
||||||
<li ng-if="::(level < 3 && vm.canComment())"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment" is-reply="true">{{ trans('entities.comment_reply') }}</a></li>
|
|
||||||
<li ng-if="::vm.canEditDelete(comment, 'comment_update')"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment" >{{ trans('entities.comment_edit') }}</a></li>
|
|
||||||
<li ng-if="::vm.canEditDelete(comment, 'comment_delete')"><a href="#" comment-delete-link comment="comment" >{{ trans('entities.comment_delete') }}</a></li>
|
|
||||||
<li>{{ trans('entities.comment_create') }} <a title="@{{::comment.created.day_time_str}}" href="#?cm=comment-@{{::pageId}}-@{{::comment.id}}">@{{::comment.created.diff}}</a></li>
|
|
||||||
<li ng-if="::comment.updated"><span title="@{{::comment.updated.day_time_str}}">@{{ ::vm.trans('entities.comment_updated_text', { updateDiff: comment.updated.diff }) }}
|
|
||||||
<a href="@{{::comment.updated_by.profile_url}}">@{{::comment.updated_by.name}}</a></span></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="comment-box" ng-repeat="comment in comments = comment.sub_comments track by comment.id" ng-init="level = level + 1">
|
|
||||||
<div ng-include src="'comment-list-item.html'">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
Loading…
Reference in New Issue
Block a user