site.coffee 996 B

123456789101112131415161718192021222324252627282930
  1. Spine = require('spine/core')
  2. utils = require('lib/utils')
  3. BaseModel = require('models/base')
  4. class Site extends BaseModel
  5. @configure "Site", "_id", "name", "name_html", "tagline", "menu_html", "header_html", "bottom_html", "footer_html", "link", "social_links", "theme", "css", "seo_description", "seo_keywords", "google_analytics_code", "editor_email", "admin_email", "default_ad_unit", "default_ad_enabled"
  6. @extend @CouchAjax
  7. @extend @CouchChanges
  8. handler: @CouchChanges.PrivateChanges
  9. @queryOn: ['name','tagline','_id']
  10. validate: ->
  11. return 'Site ID is required' unless @_id
  12. return 'Name is required' unless @name
  13. return 'Name HTML is required' unless @name_html
  14. # Validate the `_id` to be unique in the system
  15. if @isNew()
  16. found = Site.exists(@_id)
  17. return 'Site ID has been already used.' if found
  18. # Convert some boolean properties
  19. @default_ad_enabled = Boolean(@default_ad_enabled)
  20. return false
  21. module.exports = Site