Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Зуев Егор
/
wiki.dev
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Authored by
Dan Brown
2016-02-20 18:51:01 +0000
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Commit
8eb2960950648c04c4a6d6facb913eaac81eabc4
8eb29609
1 parent
bab6fd1f
Added recently created & updated page listings
Closes #46.
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
185 additions
and
71 deletions
app/Http/Controllers/PageController.php
app/Http/routes.php
app/Repos/PageRepo.php
resources/assets/sass/_header.scss
resources/assets/sass/_lists.scss
resources/assets/sass/_text.scss
resources/views/home.blade.php
resources/views/pages/detailed-listing.blade.php
resources/views/pages/list-item.blade.php
resources/views/partials/entity-list.blade.php
resources/views/search/all.blade.php
tests/EntityTest.php
app/Http/Controllers/PageController.php
View file @
8eb2960
...
...
@@ -278,4 +278,30 @@ class PageController extends Controller
]);
}
/**
* Show a listing of recently created pages
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public
function
showRecentlyCreated
()
{
$pages
=
$this
->
pageRepo
->
getRecentlyCreatedPaginated
(
20
);
return
view
(
'pages/detailed-listing'
,
[
'title'
=>
'Recently Created Pages'
,
'pages'
=>
$pages
]);
}
/**
* Show a listing of recently created pages
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public
function
showRecentlyUpdated
()
{
$pages
=
$this
->
pageRepo
->
getRecentlyUpdatedPaginated
(
20
);
return
view
(
'pages/detailed-listing'
,
[
'title'
=>
'Recently Updated Pages'
,
'pages'
=>
$pages
]);
}
}
...
...
app/Http/routes.php
View file @
8eb2960
...
...
@@ -3,6 +3,11 @@
// Authenticated routes...
Route
::
group
([
'middleware'
=>
'auth'
],
function
()
{
Route
::
group
([
'prefix'
=>
'pages'
],
function
()
{
Route
::
get
(
'/recently-created'
,
'PageController@showRecentlyCreated'
);
Route
::
get
(
'/recently-updated'
,
'PageController@showRecentlyUpdated'
);
});
Route
::
group
([
'prefix'
=>
'books'
],
function
()
{
// Books
...
...
app/Repos/PageRepo.php
View file @
8eb2960
...
...
@@ -358,5 +358,22 @@ class PageRepo
$page
->
delete
();
}
/**
* Get the latest pages added to the system.
* @param $count
*/
public
function
getRecentlyCreatedPaginated
(
$count
=
20
)
{
return
$this
->
page
->
orderBy
(
'created_at'
,
'desc'
)
->
paginate
(
$count
);
}
/**
* Get the latest pages added to the system.
* @param $count
*/
public
function
getRecentlyUpdatedPaginated
(
$count
=
20
)
{
return
$this
->
page
->
orderBy
(
'updated_at'
,
'desc'
)
->
paginate
(
$count
);
}
}
\ No newline at end of file
...
...
resources/assets/sass/_header.scss
View file @
8eb2960
...
...
@@ -139,54 +139,6 @@ form.search-box {
height
:
43px
;
}
.dropdown-container
{
display
:
inline-block
;
vertical-align
:
top
;
position
:
relative
;
}
.dropdown-container
ul
{
display
:
none
;
position
:
absolute
;
z-index
:
999
;
top
:
0
;
list-style
:
none
;
right
:
0
;
margin
:
$-m
0
;
background-color
:
#FFFFFF
;
box-shadow
:
0
0
2px
0
rgba
(
0
,
0
,
0
,
0
.1
);
border-radius
:
1px
;
border
:
1px
solid
#EEE
;
min-width
:
180px
;
padding
:
$-xs
0
;
color
:
#555
;
text-align
:
left
!
important
;
&
.wide
{
min-width
:
220px
;
}
.text-muted
{
color
:
#999
;
}
a
{
display
:
block
;
padding
:
$-xs
$-m
;
color
:
#555
;
&
:hover
{
text-decoration
:
none
;
background-color
:
#EEE
;
}
i
{
margin-right
:
$-m
;
padding-right
:
0
;
display
:
inline
;
width
:
22px
;
}
}
li
.border-bottom
{
border-bottom
:
1px
solid
#DDD
;
}
}
.breadcrumbs
span
.sep
{
color
:
#aaa
;
padding
:
0
$-xs
;
...
...
resources/assets/sass/_lists.scss
View file @
8eb2960
...
...
@@ -285,18 +285,31 @@ ul.pagination {
}
}
.entity-list.compact
{
font-size
:
0
.6em
;
>
div
{
.entity-list
{
>
div
{
padding
:
$-m
0
;
}
h3
,
a
{
line-height
:
1
.2
;
}
h3
{
margin
:
0
;
}
p
{
margin
:
$-xs
0
0
0
;
}
hr
{
margin
:
0
;
}
.text-small.text-muted
{
color
:
#AAA
;
font-size
:
0
.75em
;
margin-top
:
$-xs
;
}
}
.entity-list.compact
{
font-size
:
0
.6em
;
h3
,
a
{
line-height
:
1
.2
;
}
p
{
display
:
none
;
font-size
:
$fs-m
*
0
.8
;
padding-top
:
$-xs
;
...
...
@@ -305,4 +318,52 @@ ul.pagination {
hr
{
margin
:
0
;
}
}
\ No newline at end of file
}
.dropdown-container
{
display
:
inline-block
;
vertical-align
:
top
;
position
:
relative
;
}
.dropdown-container
ul
{
display
:
none
;
position
:
absolute
;
z-index
:
999
;
top
:
0
;
list-style
:
none
;
right
:
0
;
margin
:
$-m
0
;
background-color
:
#FFFFFF
;
box-shadow
:
0
0
2px
0
rgba
(
0
,
0
,
0
,
0
.1
);
border-radius
:
1px
;
border
:
1px
solid
#EEE
;
min-width
:
180px
;
padding
:
$-xs
0
;
color
:
#555
;
text-align
:
left
!
important
;
&
.wide
{
min-width
:
220px
;
}
.text-muted
{
color
:
#999
;
}
a
{
display
:
block
;
padding
:
$-xs
$-m
;
color
:
#555
;
&
:hover
{
text-decoration
:
none
;
background-color
:
#EEE
;
}
i
{
margin-right
:
$-m
;
padding-right
:
0
;
display
:
inline
;
width
:
22px
;
}
}
li
.border-bottom
{
border-bottom
:
1px
solid
#DDD
;
}
}
...
...
resources/assets/sass/_text.scss
View file @
8eb2960
...
...
@@ -254,10 +254,15 @@ ol {
.text-bigger
{
font-size
:
1
.1em
;
}
.text-large
{
font-size
:
1
.6666em
;
}
.no-color
{
color
:
inherit
;
}
/**
* Grouping
*/
...
...
resources/views/home.blade.php
View file @
8eb2960
...
...
@@ -28,14 +28,15 @@
@else
<h3>
Recent Books
</h3>
@endif
@include('partials/entity-list', ['entities' => $recents, 's
iz
e' => 'compact'])
@include('partials/entity-list', ['entities' => $recents, 's
tyl
e' => 'compact'])
</div>
<div
class=
"col-sm-4"
>
<h3>
Recently Created Pages
</h3>
@include('partials/entity-list', ['entities' => $recentlyCreatedPages, 'size' => 'compact'])
<h3>
Recently Updated Pages
</h3>
@include('partials/entity-list', ['entities' => $recentlyCreatedPages, 'size' => 'compact'])
<h3><a
class=
"no-color"
href=
"/pages/recently-created"
>
Recently Created Pages
</a></h3>
@include('partials/entity-list', ['entities' => $recentlyCreatedPages, 'style' => 'compact'])
<h3><a
class=
"no-color"
href=
"/pages/recently-updated"
>
Recently Updated Pages
</a></h3>
@include('partials/entity-list', ['entities' => $recentlyCreatedPages, 'style' => 'compact'])
</div>
<div
class=
"col-sm-4"
id=
"recent-activity"
>
...
...
resources/views/pages/detailed-listing.blade.php
0 → 100644
View file @
8eb2960
@extends('base')
@section('content')
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"col-sm-7"
>
<h1>
{{ $title }}
</h1>
@include('partials/entity-list', ['entities' => $pages, 'style' => 'detailed'])
{!! $pages->links() !!}
</div>
<div
class=
"col-sm-4 col-sm-offset-1"
></div>
</div>
</div>
@stop
\ No newline at end of file
resources/views/pages/list-item.blade.php
View file @
8eb2960
...
...
@@ -3,18 +3,29 @@
<a
href=
"{{ $page->getUrl() }}"
class=
"text-page"
><i
class=
"zmdi zmdi-file-text"
></i>
{{ $page->name }}
</a>
</h3>
@if(isset($showMeta)
&&
$showMeta)
<div
class=
"meta"
>
<span
class=
"text-book"
><i
class=
"zmdi zmdi-book"
></i>
{{ $page->book->name }}
</span>
@if($page->chapter)
<span
class=
"text-chapter"
><i
class=
"zmdi zmdi-collection-bookmark"
></i>
{{ $page->chapter->name }}
</span>
@endif
</div>
@endif
@if(isset($page->searchSnippet))
<p
class=
"text-muted"
>
{!! $page->searchSnippet !!}
</p>
@else
<p
class=
"text-muted"
>
{{ $page->getExcerpt() }}
</p>
@endif
@if(isset($style)
&&
$style === 'detailed')
<div
class=
"row meta text-muted text-small"
>
<div
class=
"col-md-4"
>
Created {{$page->created_at->diffForHumans()}} @if($page->createdBy)by {{$page->createdBy->name}}@endif
<br>
Last updated {{ $page->updated_at->diffForHumans() }} @if($page->updatedBy)by {{$page->updatedBy->name}} @endif
</div>
<div
class=
"col-md-8"
>
<a
class=
"text-book"
href=
"{{ $page->book->getUrl() }}"
><i
class=
"zmdi zmdi-book"
></i>
{{ $page->book->getExcerpt(30) }}
</a>
<br>
@if($page->chapter)
<a
class=
"text-chapter"
href=
"{{ $page->chapter->getUrl() }}"
><i
class=
"zmdi zmdi-collection-bookmark"
></i>
{{ $page->chapter->getExcerpt(30) }}
</a>
@else
<i
class=
"zmdi zmdi-collection-bookmark"
></i>
Page is not in a chapter
@endif
</div>
</div>
@endif
</div>
\ No newline at end of file
...
...
resources/views/partials/entity-list.blade.php
View file @
8eb2960
<div
class=
"entity-list @if(isset($s
ize)){{ $size }}@endif"
>
<div
class=
"entity-list @if(isset($s
tyle)){{ $style }}@endif"
ng-non-bindable
>
@if(count($entities) > 0)
@foreach($entities as $index => $entity)
@if($entity->isA('page'))
...
...
resources/views/search/all.blade.php
View file @
8eb2960
...
...
@@ -13,7 +13,7 @@
<div
class=
"page-list"
>
@if(count($pages) > 0)
@foreach($pages as $page)
@include('pages/list-item', ['page' => $page, 's
howMeta' => true
])
@include('pages/list-item', ['page' => $page, 's
tyle' => 'detailed'
])
<hr>
@endforeach
@else
...
...
tests/EntityTest.php
View file @
8eb2960
...
...
@@ -250,5 +250,23 @@ class EntityTest extends TestCase
->
click
(
'Revisions'
)
->
seeStatusCode
(
200
);
}
public
function
test_recently_created_pages_view
()
{
$user
=
$this
->
getNewUser
();
$content
=
$this
->
createEntityChainBelongingToUser
(
$user
);
$this
->
asAdmin
()
->
visit
(
'/pages/recently-created'
)
->
seeInNthElement
(
'.entity-list .page'
,
0
,
$content
[
'page'
]
->
name
);
}
public
function
test_recently_updated_pages_view
()
{
$user
=
$this
->
getNewUser
();
$content
=
$this
->
createEntityChainBelongingToUser
(
$user
);
$this
->
asAdmin
()
->
visit
(
'/pages/recently-updated'
)
->
seeInNthElement
(
'.entity-list .page'
,
0
,
$content
[
'page'
]
->
name
);
}
}
...
...
Please
register
or
sign in
to post a comment