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'}