joosy
joosy.ws
front end framework
rails g joosy:application blog rails g joosy:preloader blog
class @Comment extends Joosy.Resource.REST @entity 'commen' @source '/foo' @promaryKey 'id' @collection CommentsCollection
class @Post extends Joosy.Resource.REST @beforeLoad (data)->
data.date = new Date(data.date) data
rails g joosy:page blog/posts/index rails g joosy:page blog/posts/show rails g joosy:page blog/posts/edit rails g joosy:page blog/posts/new
@beforeLoad ->
@navigate('/)
Joosy.Router.map 404 : (path) -> alter "Page '#{path}' was not found :(" '/' : -> @navigate '/posts'
'/posts'
'/' : Posts.IndexPage '/new': Posts.NewPage '/:id/edit': Posts.EditPage '/:id': Posts.ShowPage
templates/pages/posts/_form.js.haml %form.well %input.span10{:name => 'post[title]', :placeholder => 'Title'} %textarea.span10{:name => 'post[body]', :placeholder => 'Body'} %input.btn.btn-success.span4{:type => 'submit', :value => 'Save'}
raisl g joosy:widget blog/title_editor
class @TitleEditorWidget extends Joosy.Widget @view 'title_editor'
constructor: (post) ->
@data = post: post
elements:
'titlePane': 'h1' 'titleForm': 'form'
events:
'click $titlePane': (element)-> @titlePane.hide() @titleForm.show()
@afterLoad ->
Joosy.Form.attach @titleForm resource: @data.post success: => @data.post('title', @titleForm.find('input[type=text]').val()) @titleForm.hide() @titlePane.show()
helpers
!= @tag 'div', {id: 'foo'}, 'content'
= @renderWrapped '_partial', -> %span Inner
!= @render 'layouts/_menu' != @yield
!= @n12br 'foo\nbar'
!= @formFor resource, {class: 'foo'}, (f) -> != f.label 'field', {class: 'foo'}, 'inner text' != f.radioButton 'field', 'value', {class: 'foo'} != f.textArea 'field', {class: 'foo'} != f.checkBox 'field', {class: 'foo'} != f.textField 'field', {class: 'foo'} != f.fileField 'field', {class: 'foo'} != f.hiddenField 'field', {class: 'foo'} != f.passwordField 'field', {class: 'foo'}