# page header for signed in user class Pettanr.Views.User.Account extends Backbone.View tagName: 'div' initialize: (options) -> @author = Pettanr.cache.operators.author @artist = Pettanr.cache.operators.artist render: () -> this.$el.html('') @logo = new Pettanr.Views.Common.Logo({}) @listenTo(@logo, 'click', @logo_click) this.$el.append(@logo.render().el) if @author @author_view = @author.icon_with_caption_view() @listenTo(@author_view, 'click', @author_click) this.$el.append(@author_view.render().el) if @artist @artist_view = @artist.icon_with_caption_view() @listenTo(@artist_view, 'click', @artist_click) this.$el.append(@artist_view.render().el) if @author @quick = new Pettanr.Views.User.Account.Quick() @listenTo(@quick, 'click:mydoc', @click_mydoc) @listenTo(@quick, 'click:mynew', @click_mynew) this.$el.append(@quick.render().el) sign_out = new Tag.A({ attr: {href: '/users/sign_out'}, class_name: 'sign_out', content: 'sign out' }) @listenTo(sign_out, 'click', @sign_out_click) this.$el.append(sign_out.render().el) this logo_click: () -> @trigger('http_get', '') author_click: () -> @trigger('http_get', @author_view.url()) artist_click: () -> @trigger('http_get', @artist_view.url()) sign_out_click: () -> @trigger('http_post', 'users/sign_out') return false click_mydoc: (url) -> @trigger('http_get', url) return false click_mynew: (url) -> @trigger('http_get', url) return false class Pettanr.Views.User.Account.Quick extends Backbone.View tagName: 'span' initialize: (options) -> render: () -> this.$el.html('') @home() @create() this home: () -> params = { controller: 'folders', action: 'index', path: '/my documents/create/' } list = Locmare.ListGroup.list( 'folders', 'index', params ) list.open(() => if !_.isEmpty(list.items()) @mydoc = list.items()[0] @add_mydoc() ) create: () -> params = { controller: 'folders', action: 'index', path: '/my documents/' } list = Locmare.ListGroup.list( 'folders', 'index', params ) list.open(() => if !_.isEmpty(list.items()) @mynew = list.items()[0] @add_mynew() ) add_mydoc: () -> mydoc_icon = new Pettanr.Views.User.Account.LinkedMydocIcon({item: @mydoc, half: true}) @listenTo(mydoc_icon, 'click', @click_mydoc_icon) this.$el.append(mydoc_icon.render().el) add_mynew: () -> mynew_icon = new Pettanr.Views.User.Account.LinkedCreateIcon({item: @mynew, half: true}) @listenTo(mynew_icon, 'click', @click_mynew_icon) this.$el.append(mynew_icon.render().el) click_mydoc_icon: () -> @trigger('click:mydoc', @mydoc.show_url()) click_mynew_icon: () -> @trigger('click:mynew', @mynew.show_url()) class Pettanr.Views.User.Account.LinkedMydocIcon extends Tag.A initialize: (options) -> item = options.item half = options.half img = new Pettanr.Image.SymbolImg({ attr: {src: '/images/home.gif'}, half: half }) super({ attr: {href: '/' + item.show_url()}, content: img.render().el }) class Pettanr.Views.User.Account.LinkedCreateIcon extends Tag.A initialize: (options) -> item = options.item half = options.half img = new Pettanr.Image.SymbolImg({ attr: {src: '/images/inspire.gif'}, half: half }) super({ attr: {href: '/' + item.show_url()}, content: img.render().el })