Refactor wiki views: Add tg-wiki-summary directive
parent
b10178810f
commit
17475c59cc
|
@ -147,43 +147,64 @@ module.controller("WikiDetailController", WikiDetailController)
|
|||
|
||||
|
||||
#############################################################################
|
||||
## Wiki User Info Directive
|
||||
## Wiki Summary Directive
|
||||
#############################################################################
|
||||
|
||||
WikiUserInfoDirective = ($log) ->
|
||||
WikiSummaryDirective = ($log) ->
|
||||
template = _.template("""
|
||||
<ul>
|
||||
<li>
|
||||
<span class="number"><%- totalEditions %></span>
|
||||
<span class="description">times <br />edited</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="number"><%- lastModifiedDate %></span>
|
||||
<span class="description"> last <br />edit</span>
|
||||
</li>
|
||||
<li class="username-edition">
|
||||
<figure class="avatar">
|
||||
<img src="<%= imgurl %>" alt="<%- name %>">
|
||||
<img src="<%= user.imgUrl %>" alt="<%- user.name %>">
|
||||
</figure>
|
||||
<span class="description">last modification</span>
|
||||
<span class="username"><%- name %></span>
|
||||
<span class="username"><%- user.name %></span>
|
||||
</li>
|
||||
</ul>
|
||||
""")
|
||||
|
||||
link = ($scope, $el, $attrs) ->
|
||||
if not $attrs.ngModel?
|
||||
return $log.error "WikiUserDirective: no ng-model attr is defined"
|
||||
|
||||
link = ($scope, $el, $attrs, $model) ->
|
||||
render = (wiki) ->
|
||||
if not $scope.usersById?
|
||||
$log.error "WikiUserDirective requires userById set in scope."
|
||||
$log.error "WikiSummaryDirective requires userById set in scope."
|
||||
else
|
||||
user = $scope.usersById[wiki.last_modifier]
|
||||
if user is undefined
|
||||
ctx = {name: "unknown", imgurl: "/images/unnamed.png"}
|
||||
else
|
||||
ctx = {name: user.full_name_display, imgurl: user.photo}
|
||||
|
||||
if user is undefined
|
||||
user = {name: "unknown", imgUrl: "/images/unnamed.png"}
|
||||
else
|
||||
user = {name: user.full_name_display, imgUrl: user.photo}
|
||||
|
||||
ctx = {
|
||||
totalEditions: wiki.editions
|
||||
lastModifiedDate: moment(wiki.modified_date).format("DD MMM YYYY HH:mm")
|
||||
user: user
|
||||
}
|
||||
html = template(ctx)
|
||||
$el.html(html)
|
||||
|
||||
bindOnce($scope, $attrs.ngModel, render)
|
||||
$scope.$watch $attrs.ngModel, (wikiPage) ->
|
||||
return if not wikiPage
|
||||
render(wikiPage)
|
||||
|
||||
$scope.$on "$destroy", ->
|
||||
$el.off()
|
||||
|
||||
return {
|
||||
link: link
|
||||
restrict: "AE"
|
||||
restrict: "EA"
|
||||
require: "ngModel"
|
||||
}
|
||||
|
||||
module.directive("tgWikiUserInfo", ["$tgRepo", "$log", "$tgLocation", "$tgConfirm", WikiUserInfoDirective])
|
||||
module.directive("tgWikiSummary", ["$log", WikiSummaryDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
div.summary.wiki-summary(ng-if="wiki.id")
|
||||
ul
|
||||
li
|
||||
span.number(tg-bo-bind="wiki.editions")
|
||||
span.description times <br />edited
|
||||
li(ng-if="wiki.modified_date")
|
||||
span.number(tg-bo-bind="wiki.modified_date|momentFormat:'DD MMM YYYY HH:mm'")
|
||||
span.description last <br />edit
|
||||
li.username-edition(tg-wiki-user-info, ng-model='wiki')
|
|
@ -15,8 +15,7 @@ block content
|
|||
span.green Wiki
|
||||
span.wiki-title(tg-bo-bind='wikiSlug|unslugify')
|
||||
|
||||
include views/modules/wiki-summary
|
||||
|
||||
section.wiki-content(tg-editable-wiki-content ng-model="wiki")
|
||||
div.summary.wiki-summary(tg-wiki-summary, ng-model="wiki", ng-if="wiki.id")
|
||||
section.wiki-content(tg-editable-wiki-content, ng-model="wiki")
|
||||
|
||||
tg-attachments(ng-model="wiki", type="wiki_page", ng-if="wiki.id")
|
||||
|
|
Loading…
Reference in New Issue