This commit is contained in:
Nick Winter 2014-08-28 10:50:20 -07:00
parent a0e1806239
commit 54207f0f7d
11 changed files with 42 additions and 57 deletions

View file

@ -212,6 +212,11 @@ class CocoModel extends Backbone.Model
return false
getOwner: ->
return null unless permissions = @get 'permissions'
ownerPermission = _.find permissions, access: 'owner'
ownerPermission?.target
getDelta: ->
differ = deltasLib.makeJSONDiffer()
differ.diff @_revertAttributes, @attributes

View file

@ -16,6 +16,9 @@
overflow: hidden
text-overflow: ellipsis
tr.mine
background-color: #f8ecaa
.loading
text-align: center

View file

@ -1,21 +1 @@
table.table
tr
th(colspan=3)
span(data-i18n="general.results")
| Results
span
|: #{documents.length}
tr
th(data-i18n="general.name") Name
th(data-i18n="general.description") Description
th(data-i18n="general.version") Version
for data in documents
- data = data.attributes;
tr
td
a(href="/editor/article/#{data.slug || data._id}")
| #{data.name}
td.body-row #{data.description}
td #{data.version.major}.#{data.version.minor}
extends /templates/kinds/table

View file

@ -1,21 +1 @@
table.table
tr
th(colspan=3)
span(data-i18n="general.results")
| Results
span
|: #{documents.length}
tr
th(data-i18n="general.name") Name
th(data-i18n="general.description") Description
th(data-i18n="general.version") Version
for data in documents
- data = data.attributes;
tr
td
a(href="/editor/level/#{data.slug || data._id}")
| #{data.name}
td.body-row #{data.description}
td #{data.version.major}.#{data.version.minor}
extends /templates/kinds/table

View file

@ -1,17 +1,21 @@
table.table
extends /templates/kinds/table
block tableResultsHeader
tr
th(colspan=3)
th(colspan=4)
span(data-i18n="general.results")
| Results
span
|: #{documents.length}
block tableHeader
tr
th#portrait-col
th(data-i18n="general.name") Name
th(data-i18n="general.description") Description
th(data-i18n="general.version") Version
block tableBody
for thang in documents
tr
td

View file

@ -1,10 +1,11 @@
table.table
tr
th(colspan=3)
span(data-i18n="general.results")
| Results
span
|: #{documents.length}
block tableResultsHeader
tr
th(colspan=3)
span(data-i18n="general.results")
| Results
span
|: #{documents.length}
block tableHeader
tr
@ -13,9 +14,9 @@ table.table
th(data-i18n="general.version") Version
block tableBody
for data in documents
- data = data.attributes;
tr
for document in documents
- var data = document.attributes;
tr(class=document.getOwner() == me.id ? 'mine' : '')
td
a(href="/editor/#{page}/#{data.slug || data._id}")
| #{data.name}

View file

@ -6,6 +6,7 @@ module.exports = class ArticleSearchView extends SearchView
model: require 'models/Article'
modelURL: '/db/article'
tableTemplate: require 'templates/editor/article/table'
page: 'article'
getRenderData: ->
context = super()

View file

@ -6,6 +6,7 @@ module.exports = class LevelSearchView extends SearchView
model: require 'models/Level'
modelURL: '/db/level'
tableTemplate: require 'templates/editor/level/table'
page: 'editor'
getRenderData: ->
context = super()

View file

@ -7,6 +7,7 @@ module.exports = class ThangTypeSearchView extends SearchView
modelURL: '/db/thang.type'
tableTemplate: require 'templates/editor/thang/table'
projection: ['original', 'name', 'version', 'description', 'slug', 'kind', 'rasterIcon']
page: 'thang'
getRenderData: ->
context = super()

View file

@ -7,11 +7,19 @@ class SearchCollection extends Backbone.Collection
initialize: (modelURL, @model, @term, @projection) ->
@url = "#{modelURL}?project="
if @projection? and not (@projection == [])
@url += projection[0]
@url += ',' + projected for projected in projection[1..]
@url += 'created,permissions'
@url += ',' + projected for projected in projection
else @url += 'true'
@url += "&term=#{term}" if @term
comparator: (a, b) ->
score = 0
score -= 9001900190019001 if a.getOwner() is me.id
score += 9001900190019001 if b.getOwner() is me.id
score -= new Date(a.get 'created')
score -= -(new Date(b.get 'created'))
if score < 0 then -1 else (if score > 0 then 1 else 0)
module.exports = class SearchView extends RootView
template: template
className: 'search-view'
@ -67,8 +75,9 @@ module.exports = class SearchView extends RootView
onSearchChange: ->
@hideLoading()
@collection.sort()
documents = @collection.models
table = $(@tableTemplate(documents:documents))
table = $(@tableTemplate(documents: documents, me: me, page: @page))
@$el.find('table').replaceWith(table)
@$el.find('table').i18n()

View file

@ -7,7 +7,7 @@ Patch = require '../patches/Patch'
User = require '../users/User'
sendwithus = require '../sendwithus'
PROJECT = {original: 1, name: 1, version: 1, description: 1, slug: 1, kind: 1}
PROJECT = {original: 1, name: 1, version: 1, description: 1, slug: 1, kind: 1, created: 1, permissions: 1}
FETCH_LIMIT = 300
module.exports = class Handler