|
@@ -2,7 +2,8 @@ Spine = require('spine/core')
|
|
# $ = Spine.$
|
|
# $ = Spine.$
|
|
templates = require('duality/templates')
|
|
templates = require('duality/templates')
|
|
|
|
|
|
-MultiSelect = require('controllers/ui/multi-select')
|
|
|
|
|
|
+MultiSelectUI = require('controllers/ui/multi-select')
|
|
|
|
+FileUploadUI = require('controllers/ui/file-upload')
|
|
|
|
|
|
Essay = require('models/essay')
|
|
Essay = require('models/essay')
|
|
Author = require('models/author')
|
|
Author = require('models/author')
|
|
@@ -22,6 +23,7 @@ class EssayForm extends Spine.Controller
|
|
'select[name=author_id]': 'formAuthorId'
|
|
'select[name=author_id]': 'formAuthorId'
|
|
'select[name=sponsor_id]': 'formSponsorId'
|
|
'select[name=sponsor_id]': 'formSponsorId'
|
|
'.collections-list': 'collectionsList'
|
|
'.collections-list': 'collectionsList'
|
|
|
|
+ '.files-list': 'filesList'
|
|
'.save-button': 'saveButton'
|
|
'.save-button': 'saveButton'
|
|
'.cancel-button': 'cancelButton'
|
|
'.cancel-button': 'cancelButton'
|
|
|
|
|
|
@@ -51,6 +53,7 @@ class EssayForm extends Spine.Controller
|
|
@item = {}
|
|
@item = {}
|
|
|
|
|
|
@item.collections ?= []
|
|
@item.collections ?= []
|
|
|
|
+ @item._attachments ?= {}
|
|
|
|
|
|
@item.sites = Site.all().sort(Site.nameSort)
|
|
@item.sites = Site.all().sort(Site.nameSort)
|
|
@item.sponsors = Sponsor.all().sort(Sponsor.nameSort)
|
|
@item.sponsors = Sponsor.all().sort(Sponsor.nameSort)
|
|
@@ -66,6 +69,12 @@ class EssayForm extends Spine.Controller
|
|
@formSite.val(@stack.stack.filterBox.siteId)
|
|
@formSite.val(@stack.stack.filterBox.siteId)
|
|
@siteChange()
|
|
@siteChange()
|
|
|
|
|
|
|
|
+ # Files upload area
|
|
|
|
+ @fileUpload = new FileUploadUI
|
|
|
|
+ docId: @item.id
|
|
|
|
+ attachments: @item._attachments
|
|
|
|
+ @filesList.find('.upload-ui').html @fileUpload.el
|
|
|
|
+
|
|
siteChange: ->
|
|
siteChange: ->
|
|
$siteSelected = @formSite.parents('.field').find('.site-selected')
|
|
$siteSelected = @formSite.parents('.field').find('.site-selected')
|
|
site = Site.exists(@formSite.val())
|
|
site = Site.exists(@formSite.val())
|
|
@@ -86,7 +95,7 @@ class EssayForm extends Spine.Controller
|
|
|
|
|
|
makeCollectionsList: (site) ->
|
|
makeCollectionsList: (site) ->
|
|
collections = Collection.findAllByAttribute('site', site.id)
|
|
collections = Collection.findAllByAttribute('site', site.id)
|
|
- @collectionSelect = new MultiSelect
|
|
|
|
|
|
+ @collectionSelect = new MultiSelectUI
|
|
items: collections
|
|
items: collections
|
|
selectedItems: (c.id for c in @item.collections)
|
|
selectedItems: (c.id for c in @item.collections)
|
|
valueFields: ['id','slug']
|
|
valueFields: ['id','slug']
|
|
@@ -104,6 +113,10 @@ class EssayForm extends Spine.Controller
|
|
|
|
|
|
@item.collections = @collectionSelect.selected()
|
|
@item.collections = @collectionSelect.selected()
|
|
|
|
|
|
|
|
+ # TODO: Take care of files and photo
|
|
|
|
+ @item._attachments = @fileUpload.attachments
|
|
|
|
+ @item.photo = null
|
|
|
|
+
|
|
# Take care of some dates if need be
|
|
# Take care of some dates if need be
|
|
try
|
|
try
|
|
if @item.published_at
|
|
if @item.published_at
|