@trigger('retitle', @params, @item.get('name'))\r
collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
collection.fetch({cache: true}).done =>\r
- f = new Locmare.Filer({\r
+ filer = new Locmare.Filer({\r
item_name: 'folder', \r
items: collection.models, \r
pager: null, \r
- operators: window.operators\r
+ operators: @operators\r
})\r
- @trigger('ready', f)\r
+ @listenTo(filer, 'navigate', @navigate)\r
+ @trigger('ready', filer)\r
\r
show: () ->\r
if @params['format'] == 'prof'\r
@item = new Pettanr.FolderWatch({id: @params['id']})\r
@item.fetch({cache: true}).done () =>\r
if @item.is_remote()\r
- c = @item.get('controller_name')\r
- a = if Pettanr.is_blank(@item.get('action_name'))\r
+ # redirect to remote item list\r
+ params = {}\r
+ params['controller'] = @item.get('controller_name')\r
+ params['action'] = if Pettanr.is_blank(@item.get('action_name'))\r
'index'\r
else\r
@item.get('action_name')\r
- window.router['c_i'](c, a, '') # call action event in router for redirect\r
+ # self fire\r
+ c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+ controller = new c(@operators)\r
+ controller.params = params\r
+ @listenTo(controller, 'ready', @refresh)\r
+ @listenTo(controller, 'retitle', @retitle)\r
+ controller[params['action']]()\r
else\r
@children_html()\r
\r
+ refresh: (view) ->\r
+ @trigger('ready', view)\r
+ \r
+ retitle: (params, str = null) ->\r
+ @trigger('retitle', @params, str = null)\r
+ \r
count: () ->\r
\r
new: () ->\r
view.render()\r
@trigger('ready', view)\r
\r
+ # use in case guest landing for blog mode\r
demo: () ->\r
view = new Pettanr.Views.Top.Demo({operators: @operators})\r
view.render()\r
class Pettanr.UserSeeeionsController extends Pettanr.AppController\r
\r
+ # login form\r
new: () ->\r
view = new Pettanr.Views.UserSeeeion.New({})\r
view.render()\r
class Pettanr.UsersController extends Pettanr.AppController\r
\r
- # login form\r
- index: () ->\r
- view = new Pettanr.Views.User.Index({})\r
- view.render()\r
- @trigger('ready', view)\r
- \r
+ # receive user authoring form data as post\r
sign_in: () ->\r
- @user = new Pettanr.User.Current()\r
+ @user = new Pettanr.User.Session()\r
+ @listenTo(@user, 'sign_in:success', @sign_in_success)\r
+ @listenTo(@user, 'sign_in:fail', @sign_in_fail)\r
+ @user.save({})\r
+ \r
+ # try getting current user\r
+ test: () ->\r
+ @user = new Pettanr.User.Session()\r
@listenTo(@user, 'sign_in:success', @sign_in_success)\r
@listenTo(@user, 'sign_in:fail', @sign_in_fail)\r
- # try getting current user\r
@user.save({})\r
\r
+ sign_out: () ->\r
+ user = new Backbone.Model({id: 0})\r
+ user.url = '/users/sign_out'\r
+ user.destroy({success: () ->\r
+ r = new Pettanr.Views.Top.Index({})\r
+ $("#header").html(r.render().el)\r
+ $("#pettanr").html('')\r
+ })\r
+ \r
account: () ->\r
- view = new Pettanr.Views.User.Account({})\r
+ view = new Pettanr.Views.User.Account({operators: @operators})\r
view.render()\r
@trigger('ready', view)\r
\r
class Locmare.Filer extends Backbone.View\r
tagName: 'div'\r
+ className: 'filer'\r
+ \r
initialize: (options) ->\r
@item_name = options.item_name\r
@items = options.items\r
\r
click_header: (url) ->\r
@trigger('click:header', url)\r
- window.router.navigate(url, true)\r
+ @trigger('navigate', url)\r
\r
click_symbol: (item_view) ->\r
@trigger('click:symbol', item_view)\r
\r
navigate: (url) ->\r
@trigger('navigate', url)\r
- window.router.navigate(url, true)\r
\r
class Locmare.FilerModule\r
\r
class Locmare.FilerModule.Body extends Backbone.View\r
- tagName: 'div'\r
+ tagName: 'ul'\r
+ className: 'filer-body'\r
\r
initialize: (options) ->\r
@filer = options.filer\r
ready_symbol: (symbol) ->\r
view = if @has_link()\r
linked_symbol = new Tag.A({\r
- attr: {href: @link.url()}, \r
+ attr: {href: '/' + @link.url()}, \r
content: symbol.render().el\r
})\r
@listenTo(linked_symbol, 'click', @click)\r
id: @item.get('id'),\r
format: 'html'\r
}\r
- '/' + action.url(params)\r
+ action.url(params)\r
\r
@header = new Locmare.ProfilerModule.Header({profiler: this})\r
@columns = new Locmare.ProfilerModule.Column({profiler: this})\r
@associations = new Locmare.ProfilerModule.Association({'profiler': this, association_manifest: @profiler_manifest.associations})\r
+ @listenTo(@header, 'navigate', @navigate)\r
+ @listenTo(@associations, 'navigate', @navigate)\r
\r
render: () ->\r
this.$el.html('')\r
image_dir: () ->\r
'/images/'\r
\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
class Locmare.ProfilerModule\r
\r
\r
return('leave?')\r
Backbone.history.start({silent: true, pushState: true, root: '/'})\r
\r
- layout = new Pettanr.Views.Layout.Default()\r
+ layout = if Manifest.manifest().magic_numbers.run_mode == 1\r
+ new Pettanr.Views.Layout.Sns()\r
+ else\r
+ new Pettanr.Views.Layout.Blog()\r
$('#pettanr').html(layout.render().el)\r
layout.start()\r
\r
- t: () ->\r
- #i = new Pettanr.Balloon({id: 49})\r
- #i = new Pettanr.Speech({id: 49})\r
- #i = new Pettanr.GroundColor({id: 1})\r
- #i = new Pettanr.PanelPicture({id: 21})\r
- #i = new Pettanr.License({id: 4})\r
- i = new Pettanr.SpeechBalloon({id: 49})\r
- i.fetch().done =>\r
- b = new Pettanr.Balloon({id: 49})\r
- b.fetch().done =>\r
- s = new Pettanr.Speech({id: 49})\r
- s.fetch().done =>\r
- i.speech = s\r
- i.balloon= b\r
- form = new Locmare.Bucket.factory(\r
- i.item_name(), \r
- i, \r
- true, \r
- 'default', \r
- window.operators,\r
- '/' + i.table_name() + '/' + Pettanr.to_s(i.get('id'))\r
- )\r
- $("#pettanr").html(form.render().el)\r
- \r
- test_router: () ->\r
- window.router.navigate('folders/98', true)\r
- window.router.navigate('folders/99?a=b&c=d', true)\r
- window.router.navigate('folders/100.prof', true)\r
- window.router.navigate('folders/101.json?a=b&c=d', true)\r
- window.router.navigate('folders/102/show', true)\r
- window.router.navigate('folders/103/show?a=b&c=d', true)\r
- window.router.navigate('folders/104/show.json', true)\r
- window.router.navigate('folders/105/show.json?a=b&c=d', true)\r
- window.router.navigate('scrolls/', true)\r
- window.router.navigate('scrolls/?a=b&c=d', true)\r
- window.router.navigate('scrolls', true)\r
- window.router.navigate('scrolls.json', true)\r
- window.router.navigate('scrolls.json?a=b&c=d', true)\r
- window.router.navigate('scrolls/by_author/1', true)\r
- window.router.navigate('scrolls/by_author/2?a=b&c=d', true)\r
- window.router.navigate('scrolls/by_author/3.json', true)\r
- window.router.navigate('scrolls/by_author/4.json?a=b&c=d', true)\r
if @id\r
@url = @url + @id\r
\r
-class Pettanr.User.Current extends Pettanr.User\r
+class Pettanr.User.Session extends Pettanr.User\r
\r
save: (model_attr) ->\r
super(model_attr, {\r
pager: pager, \r
operators: @operators\r
})\r
+ @listenTo(filer, 'navigate', @navigate)\r
@trigger('ready', filer)\r
)\r
false\r
)\r
false\r
\r
- show_prof: (el) ->\r
+ show_prof: () ->\r
@item.fetch({cache: true}).done =>\r
@item.boosts 'post'\r
profiler = new Locmare.Profiler({\r
item: @item, \r
operators: @operators\r
})\r
- el ||= $("#pettanr")\r
- el.html(profiler.render().el)\r
+ @listenTo(profiler, 'navigate', @navigate)\r
+ profiler.render()\r
+ @trigger('ready', profiler)\r
@trigger('retitle', @params)\r
\r
set_new: () ->\r
form_edit: () ->\r
@set_edit()\r
\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
class Pettanr.Dialog extends Backbone.View\r
\r
initialize: (options) ->\r
controller[params['action']]()\r
\r
local_navigate: (url) ->\r
- window.router.local_navigate(url, true)\r
+ @router.local_navigate(url, true)\r
\r
\r
#>> https://gist.github.com/davidjbeveridge/3813724\r
_.extend(params, o)\r
params\r
\r
- initialize: () ->\r
- _.extend(this, Backbone.Events)\r
- _.each @peta_routes(), (r) =>\r
- @route(r.route, r.callback)\r
- \r
peta_routes: () ->\r
[\r
{route: '', callback: 'home'}, \r
params['action'] = 'index'\r
params\r
\r
- top_a: (action) ->\r
- params = @users_a_params(action)\r
+ top_a: (action, query_string) ->\r
+ params = @users_a_params(action, query_string)\r
@trigger('fire', params)\r
\r
- top_a_params: (action) ->\r
+ top_a_params: (action, query_string) ->\r
params = @parse_query_string(query_string)\r
params['controller'] = 'top'\r
params['format'] = 'html'\r
params['action'] = action\r
params\r
\r
- user_sessions_a: (action) ->\r
- params = @users_a_params(action)\r
+ user_sessions_a: (action, query_string) ->\r
+ params = @users_a_params(action, query_string)\r
@trigger('fire', params)\r
\r
- user_sessions_a_params: (action) ->\r
+ user_sessions_a_params: (action, query_string) ->\r
params = @parse_query_string(query_string)\r
params['controller'] = 'user_sessions'\r
params['format'] = 'html'\r
params['action'] = action\r
params\r
\r
- users_a: (action) ->\r
- params = @users_a_params(action)\r
+ users_a: (action, query_string) ->\r
+ params = @users_a_params(action, query_string)\r
@trigger('fire', params)\r
\r
- users_a_params: (action) ->\r
+ users_a_params: (action, query_string) ->\r
params = @parse_query_string(query_string)\r
params['controller'] = 'users'\r
params['format'] = 'html'\r
params['action'] = action\r
params\r
\r
+class Pettanr.GlobalRouter extends Pettanr.Router\r
+ \r
+ initialize: () ->\r
+ _.extend(this, Backbone.Events)\r
+ _.each @peta_routes(), (r) =>\r
+ @route(r.route, r.callback)\r
+ \r
navigate: (fragment, options) ->\r
if window.editor\r
if confirm('leave? edit data unsaved')\r
else\r
super(fragment, options)\r
\r
- local_navigate: (url, el) ->\r
+class Pettanr.LocalRouter extends Pettanr.Router\r
+ \r
+ initialize: () ->\r
+ _.extend(this, Backbone.Events)\r
+ \r
+ # selfish navigate\r
+ navigate: (url) ->\r
_.any @peta_routes(), (r) =>\r
route = @_routeToRegExp(r.route)\r
if route.test(url)\r
args = @_extractParameters(route, url)\r
- args.unshift(el)\r
- n = 'local_' + r.callback\r
- this[n].apply(this, args)\r
- \r
- # from Backbone.History.loadUrl(fragment)\r
- local_home: (el) ->\r
- params = @home_params()\r
- @fire(params, el)\r
+ n = r.callback\r
+ this[n].apply(this, args) # call to c_i_a, c_i, c\r
\r
- local_c_i_a: (el, controller, id, action, query_string) ->\r
- params = @c_i_a_params(controller, id, action, query_string)\r
- @fire(params, el)\r
- \r
- local_c_i: (el, controller, id, query_string) ->\r
- params = @c_i_params(controller, id, query_string)\r
- @fire(params, el)\r
- \r
- local_c: (el, controller, query_string) ->\r
- params = @c_params(controller, query_string)\r
- @fire(params, el)\r
- \r
- local_user_sign_in: (el) ->\r
- console.log('user_sign_in');\r
- \r
- hoge: () ->\r
- names = _.map Manifest.manifest().controllers, (controller_manifest, controller_name) ->\r
- c = Pettanr[Pettanr.camelize(controller_name) + 'Controller']\r
- controller = new c\r
- _.map controller_manifest.actions, (action_manifest, action_name) =>\r
- {\r
- event_name: controller_name + '_' + action_name, \r
- controller: controller,\r
- controller_name: controller_name,\r
- action_manifest: action_manifest,\r
- action_name: action_name\r
- }\r
- _.each _.flatten(names), (status) =>\r
- _status = status\r
- switch status.action_manifest.type\r
- when 'list'\r
- e = status.event_name\r
- e_f = e + '_format'\r
- this[e] = (queryString) =>\r
- params = @parse_query_string(query_string)\r
- console.log(params)\r
- _status.controller[_status.action_name](params)\r
- c = _status.controller_name\r
- a = _status.action_name\r
- c_a_url = c + '/' + a\r
- @route(c_a_url, e)\r
- r = r + '?*queryString'\r
- @route(r, _status.event_name)\r
- if _status.action_name == 'index'\r
- r = _status.controller_name + '/'\r
- @route(r, _status.event_name)\r
- when 'show'\r
- e = status.event_name\r
- e_f = e + '_format'\r
- this[e] = (id, query_string) =>\r
- params = @parse_query_string(query_string)\r
- t = id.split('.')\r
- if t.length > 1\r
- params['format'] = t[1]\r
- id = t[0]\r
- console.log(id)\r
- console.log(params)\r
- _status.controller[_status.action_name](id, params)\r
- this[e_f] = (id, format, query_string) =>\r
- params = @parse_query_string(query_string)\r
- params['format'] = format\r
- console.log(id)\r
- console.log(params)\r
- _status.controller[_status.action_name](id, params)\r
- c = _status.controller_name\r
- a = _status.action_name\r
- q = '?*query_string'\r
- i = '\/([0-9]+)'\r
- c_id_a_url = c + '/:id/' + a\r
- c_id_a_f_url = c + '/:id/' + a + '.:format'\r
- c_id_a_q_url = c_id_a_url + q\r
- c_id_a_q_url = c_id_a_url + '.:format' + q\r
- @route(c_id_a_q_url, e_f)\r
- @route(c_id_a_q_url, e)\r
- @route(c_id_a_f_url, e_f)\r
- @route(c_id_a_url, e)\r
- if a == 'show'\r
- c_id_url = c + '/:id'\r
- c_id_q_url = c_id_url + q\r
- @route(c_id_q_url, e)\r
- @route(c_id_url, e)\r
-\r
this.$el.append(rb.render().el)\r
\r
click_show: () ->\r
- window.router.navigate(@item.show_url(), true)\r
+ @trigger('navigate', @item.show_url())\r
\r
click_author: () ->\r
- window.router.navigate(@panel.author().show_url(), true)\r
+ @trigger('navigate', @panel.author().show_url())\r
\r
click_prof: () ->\r
- window.router.navigate(@item.prof_url(), true)\r
+ @trigger('navigate', @item.prof_url())\r
\r
click_credit_icon: (item) ->\r
- window.router.navigate(item.show_url(), true)\r
+ @trigger('navigate', item.show_url())\r
\r
})\r
@author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
@owner = new Pettanr.Views.Comic.ShowModule.Owner({item: @item, operators: @operators})\r
+ @listenTo(@header, 'click:icon', @click_show)\r
+ @listenTo(@header, 'click:caption', @click_show)\r
+ @listenTo(@header, 'click:prof', @click_prof)\r
+ @listenTo(@author, 'click:author', @click_author)\r
+ @listenTo(@owner, 'click:edit', @click_edit)\r
+ @listenTo(@owner, 'click:destroy', @click_destroy)\r
\r
render: () ->\r
this.$el.html('')\r
this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
this\r
\r
+ click_show: () ->\r
+ @trigger('navigate', @item.show_url())\r
+ \r
+ click_author: () ->\r
+ @trigger('navigate', @panel.author().show_url())\r
+ \r
+ click_prof: () ->\r
+ @trigger('navigate', @item.prof_url())\r
+ \r
+ click_edit: () ->\r
+ @trigger('navigate', @item.edit_url())\r
+ \r
+ click_destroy: () ->\r
+ @trigger('navigate', @item.destroy_url())\r
+ \r
this.$el.append(rb.render().el)\r
\r
click_show: () ->\r
- window.router.navigate(@item.show_url(), true)\r
+ @trigger('navigate', @item.show_url())\r
\r
click_author: () ->\r
- window.router.navigate(@panel.author().show_url(), true)\r
+ @trigger('navigate', @panel.author().show_url())\r
\r
click_prof: () ->\r
- window.router.navigate(@item.prof_url(), true)\r
+ @trigger('navigate', @item.prof_url())\r
\r
click_credit_icon: (item) ->\r
- window.router.navigate(item.show_url(), true)\r
+ @trigger('navigate', item.show_url())\r
\r
this.$el.append(rb.render().el)\r
\r
click_show: () ->\r
- window.router.navigate(@item.show_url(), true)\r
+ @trigger('navigate', @item.show_url())\r
\r
click_author: () ->\r
- window.router.navigate(@panel.author().show_url(), true)\r
+ @trigger('navigate', @panel.author().show_url())\r
\r
click_prof: () ->\r
- window.router.navigate(@item.prof_url(), true)\r
+ @trigger('navigate', @item.prof_url())\r
\r
click_credit_icon: (item) ->\r
- window.router.navigate(item.show_url(), true)\r
+ @trigger('navigate', item.show_url())\r
\r
--- /dev/null
+class Pettanr.Views.Layout\r
+class Pettanr.Views.Layout.Base extends Backbone.View\r
+ tagName: 'div'\r
+ className: 'layout-base'\r
+ \r
+ initialize: (options) ->\r
+ @operators = new Pettanr.Operator({})\r
+ # router for refresh body\r
+ @global_router = new Pettanr.GlobalRouter()\r
+ # router for refresh body. but not replace url\r
+ @local_router = new Pettanr.LocalRouter()\r
+ # router for refresh header\r
+ @header_router = new Pettanr.LocalRouter()\r
+ @listenTo(@global_router, 'fire', @fire_for_body)\r
+ @listenTo(@local_router, 'fire', @fire_for_body)\r
+ @listenTo(@header_router, 'fire', @fire_for_header)\r
+ @header = new (@header_class())({parent: this})\r
+ @body = new (@body_class())({parent: this})\r
+ @footer = new (@footer_class())({parent: this})\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@body.render().el)\r
+ this.$el.append(@footer.render().el)\r
+ this\r
+ \r
+ start: () ->\r
+ # check current user signed in?\r
+ # callback sign_in_success from users controller if signed in\r
+ @local_router.navigate('users/test')\r
+ \r
+ fire: (refresh_function, params) ->\r
+ c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+ controller = new c(@operators)\r
+ controller.params = params\r
+ @listenTo(controller, 'ready', refresh_function)\r
+ @listenTo(controller, 'retitle', @retitle)\r
+ @listenTo(controller, 'sign_in:success', @sign_in_success)\r
+ @listenTo(controller, 'sign_in:fail', @sign_in_fail)\r
+ controller[params['action']]()\r
+ \r
+ fire_for_header: (params) ->\r
+ @fire(@refresh_header, params)\r
+ \r
+ fire_for_body: (params) ->\r
+ @fire(@refresh_body, params)\r
+ \r
+ init_operators: (user) ->\r
+ author = new Pettanr.Author(user.get('author')) if user.get('author')\r
+ artist = new Pettanr.Artist(user.get('artist')) if user.get('artist')\r
+ @operators.init({\r
+ user: user, \r
+ author: author, \r
+ artist: artist\r
+ })\r
+ \r
+ sign_in_success: (user, response) ->\r
+ @init_operators(user)\r
+ \r
+ sign_in_fail: (user, response) ->\r
+ false\r
+ \r
+ retitle: (params, str = null) ->\r
+ t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
+ site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
+ $(document).attr('title', t + ' - ' + site_caption)\r
+ \r
+ refresh_header: (view) ->\r
+ @header.refresh(view)\r
+ \r
+ refresh_body: (view) ->\r
+ @body.refresh(view)\r
+ \r
+ header_class: () ->\r
+ null\r
+ \r
+ body_class: () ->\r
+ null\r
+ \r
+ footer_class: () ->\r
+ null\r
+ \r
+class Pettanr.Views.Layout.Sns extends Pettanr.Views.Layout.Base\r
+ className: 'layout-sns'\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ @listenTo(@header, 'navigate', @header_navigate)\r
+ @listenTo(@body, 'navigate', @body_navigate)\r
+ \r
+ start: () ->\r
+ # initial page\r
+ super()\r
+ \r
+ sign_in_success: (user, response) ->\r
+ super(user, response)\r
+ # navigate users/account\r
+ # callback from fire to refresh_header\r
+ @header_router.navigate('users/account')\r
+ # navigate home\r
+ # callback from fire to refresh_body\r
+ @local_router.navigate('')\r
+ \r
+ sign_in_fail: (user, response) ->\r
+ @header.navigate('users/guest')\r
+ @body.navigate('user_seeeions/new')\r
+ \r
+ header_navigate: (url) ->\r
+ @global_router.navigate(url, true)\r
+ \r
+ body_navigate: (url) ->\r
+ @global_router.navigate(url, true)\r
+ \r
+ header_class: () ->\r
+ Pettanr.Views.Layout.Sns.Header\r
+ \r
+ body_class: () ->\r
+ Pettanr.Views.Layout.Sns.Body\r
+ \r
+ footer_class: () ->\r
+ Pettanr.Views.Layout.Sns.Footer\r
+ \r
+class Pettanr.Views.Layout.Blog extends Pettanr.Views.Layout.Base\r
+ className: 'layout-blog'\r
+ \r
+ start: () ->\r
+ # initial page\r
+ @router.navigate('users/sign_in')\r
+ @header.navigate('users/guest')\r
+ @body.navigate('top/demo')\r
+ \r
+ sign_in_fail: (user, response) ->\r
+ view = new Pettanr.Views.UserSeeeion.New({\r
+ operators: @operators\r
+ })\r
+ view.render()\r
+ @body.navigate('top/demo')\r
+ \r
+ header_class: () ->\r
+ Pettanr.Views.Layout.Blog.Header\r
+ \r
+ body_class: () ->\r
+ Pettanr.Views.Layout.Blog.Body\r
+ \r
+ footer_class: () ->\r
+ Pettanr.Views.Layout.Blog.Footer\r
+ \r
--- /dev/null
+class Pettanr.Views.Layout.Blog.Header extends Backbone.View\r
+ tagName: 'div'\r
+ id: 'header'\r
+ \r
+ initialize: (options) ->\r
+ @operators = options.operators\r
+ @router = new Pettanr.Router()\r
+ @listenTo(@router, 'fire', @fire)\r
+ \r
+ render: () ->\r
+ this.$el.html('xx')\r
+ this\r
+ \r
+ fire: (params) ->\r
+ c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+ controller = new c(@operators)\r
+ controller.params = params\r
+ @listenTo(controller, 'ready', @refresh)\r
+ @listenTo(controller, 'retitle', @retitle)\r
+ controller[params['action']]()\r
+ \r
+ retitle: (params, str = null) ->\r
+ t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
+ site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
+ $(document).attr('title', t + ' - ' + site_caption)\r
+ \r
+ refresh: (view) ->\r
+ @listenTo(view, 'navigate', @navigate)\r
+ this.$el.html(view.el)\r
+ \r
+ refresh: () ->\r
+ \r
+ sign_out: () ->\r
+ \r
+ navigate: (url) ->\r
+ @router.navigate(url, {trigger: true, replace: false})\r
+ @trigger('navigate', url)\r
+ \r
+class Pettanr.Views.Layout.Blog.Body extends Backbone.View\r
+ tagName: 'div'\r
+ id: 'body'\r
+ \r
+ initialize: (options) ->\r
+ @operators = options.operators\r
+ @router = new Pettanr.Router()\r
+ @listenTo(@router, 'fire', @fire)\r
+ \r
+ render: () ->\r
+ this.$el.html('cc')\r
+ this\r
+ \r
+ fire: (params) ->\r
+ c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+ controller = new c(@operators)\r
+ controller.params = params\r
+ @listenTo(controller, 'ready', @refresh)\r
+ @listenTo(controller, 'retitle', @retitle)\r
+ controller[params['action']]()\r
+ \r
+ retitle: (params, str = null) ->\r
+ t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
+ site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
+ $(document).attr('title', t + ' - ' + site_caption)\r
+ \r
+ refresh: (view) ->\r
+ @listenTo(view, 'navigate', @navigate)\r
+ this.$el.html(view.el)\r
+ \r
+ navigate: (url) ->\r
+ @router.navigate(url, {trigger: true, replace: false})\r
+ @trigger('navigate', url)\r
+ \r
+class Pettanr.Views.Layout.Blog.Footer extends Backbone.View\r
+ tagName: 'div'\r
+ id: 'footer'\r
+ \r
+ initialize: (options) ->\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this\r
+ \r
+++ /dev/null
-class Pettanr.Views.Layout\r
-class Pettanr.Views.Layout.Default extends Backbone.View\r
- tagName: 'div'\r
- \r
- initialize: (options) ->\r
- @operators = new Pettanr.Operator({})\r
- @router = new Pettanr.Router()\r
- @listenTo(@router, 'fire', @fire)\r
- @header = new Pettanr.Views.Layout.Default.Header({operators: @operators})\r
- @body = new Pettanr.Views.Layout.Default.Body({operators: @operators})\r
- @footer = new Pettanr.Views.Layout.Default.Footer()\r
- @listenTo(@body, 'refresh', @refresh)\r
- @listenTo(@body, 'refresh:top', @refresh_top)\r
- \r
- render: () ->\r
- this.$el.html('zz')\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@body.render().el)\r
- this.$el.append(@footer.render().el)\r
- this\r
- \r
- start: () ->\r
- # initial page\r
- @router.navigate('users/sign_in')\r
- @header.navigate('users/sign_in')\r
- @body.navigate('top/demo')\r
- \r
- fire: (params) ->\r
- c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
- controller = new c(@operators)\r
- controller.params = params\r
- @listenTo(controller, 'ready', @refresh)\r
- @listenTo(controller, 'retitle', @retitle)\r
- @listenTo(controller, 'sign_in:success', @sign_in_success)\r
- @listenTo(controller, 'sign_in:fail', @sign_in_fail)\r
- controller[params['action']]()\r
- \r
- sign_in_success: (user, response) ->\r
- author = new Pettanr.Author(user.get('author')) if user.get('author')\r
- artist = new Pettanr.Artist(user.get('artist')) if user.get('artist')\r
- @operators.init({\r
- user: user, \r
- author: author, \r
- artist: artist\r
- })\r
- view = new Pettanr.Views.User.Account({\r
- item: @item,\r
- operators: @operators\r
- })\r
- @header.navigate('users/account')\r
- @body.navigate('')\r
- \r
- sign_in_fail: (user, response) ->\r
- view = new Pettanr.Views.UserSeeeion.New({\r
- operators: @operators\r
- })\r
- view.render()\r
- @body.navigate('users/index')\r
- \r
-class Pettanr.Views.Layout.Default.Header extends Backbone.View\r
- tagName: 'div'\r
- id: 'header'\r
- \r
- initialize: (options) ->\r
- @operators = options.operators\r
- @router = new Pettanr.Router()\r
- @listenTo(@router, 'fire', @fire)\r
- \r
- render: () ->\r
- this.$el.html('xx')\r
- this\r
- \r
- fire: (params) ->\r
- c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
- controller = new c(@operators)\r
- controller.params = params\r
- @listenTo(controller, 'ready', @refresh)\r
- @listenTo(controller, 'retitle', @retitle)\r
- controller[params['action']]()\r
- \r
- retitle: (params, str = null) ->\r
- t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
- site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
- $(document).attr('title', t + ' - ' + site_caption)\r
- \r
- refresh: (view) ->\r
- @listenTo(view, 'navigate', @navigate)\r
- this.$el.html(view.el)\r
- \r
- refresh: () ->\r
- \r
- sign_out: () ->\r
- \r
- navigate: (url) ->\r
- @router.navigate(url, {trigger: true, replace: false})\r
- @trigger('navigate', url)\r
- \r
-class Pettanr.Views.Layout.Default.Body extends Backbone.View\r
- tagName: 'div'\r
- id: 'body'\r
- \r
- initialize: (options) ->\r
- @operators = options.operators\r
- @router = new Pettanr.Router()\r
- @listenTo(@router, 'fire', @fire)\r
- \r
- render: () ->\r
- this.$el.html('cc')\r
- this\r
- \r
- fire: (params) ->\r
- c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
- controller = new c(@operators)\r
- controller.params = params\r
- @listenTo(controller, 'ready', @refresh)\r
- @listenTo(controller, 'retitle', @retitle)\r
- controller[params['action']]()\r
- \r
- retitle: (params, str = null) ->\r
- t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
- site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
- $(document).attr('title', t + ' - ' + site_caption)\r
- \r
- refresh: (view) ->\r
- @listenTo(view, 'navigate', @navigate)\r
- this.$el.html(view.el)\r
- \r
- navigate: (url) ->\r
- @router.navigate(url)\r
- @trigger('navigate', url)\r
- \r
-class Pettanr.Views.Layout.Default.Footer extends Backbone.View\r
- tagName: 'div'\r
- id: 'footer'\r
- \r
- initialize: (options) ->\r
- \r
- render: () ->\r
- this.$el.html('')\r
- this\r
- \r
--- /dev/null
+class Pettanr.Views.Layout.Sns.Header extends Backbone.View\r
+ tagName: 'div'\r
+ id: 'header'\r
+ \r
+ initialize: (options) ->\r
+ @parent = options.parent\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this\r
+ \r
+ refresh: (view) ->\r
+ @listenTo(view, 'navigate', @navigate)\r
+ this.$el.html(view.el)\r
+ \r
+ sign_out: () ->\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
+ operators: () ->\r
+ @parent.operators\r
+ \r
+class Pettanr.Views.Layout.Sns.Body extends Backbone.View\r
+ tagName: 'div'\r
+ id: 'body'\r
+ \r
+ initialize: (options) ->\r
+ @parent = options.parent\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this\r
+ \r
+ refresh: (view) ->\r
+ @listenTo(view, 'navigate', @navigate)\r
+ this.$el.html(view.el)\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
+ operators: () ->\r
+ @parent.operators\r
+ \r
+class Pettanr.Views.Layout.Sns.Footer extends Backbone.View\r
+ tagName: 'div'\r
+ id: 'footer'\r
+ \r
+ initialize: (options) ->\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this\r
+ \r
this.$el.append(rb.render().el)\r
\r
click_show: () ->\r
- window.router.navigate(@item.show_url(), true)\r
+ @trigger('navigate', @item.show_url())\r
\r
click_author: () ->\r
- window.router.navigate(@panel.author().show_url(), true)\r
+ @trigger('navigate', @panel.author().show_url())\r
\r
click_prof: () ->\r
- window.router.navigate(@item.prof_url(), true)\r
+ @trigger('navigate', @item.prof_url())\r
\r
click_credit_icon: (item) ->\r
- window.router.navigate(item.show_url(), true)\r
+ @trigger('navigate', item.show_url())\r
\r
this\r
\r
click_show: () ->\r
- window.router.navigate(@panel.show_url(), true)\r
+ @trigger('navigate', @item.show_url())\r
\r
click_author: () ->\r
- window.router.navigate(@panel.author().show_url(), true)\r
+ @trigger('navigate', @panel.author().show_url())\r
\r
click_edit: () ->\r
- window.router.navigate(@panel.edit_url(), true)\r
+ @trigger('navigate', @panel.edit_url())\r
\r
click_prof: () ->\r
- window.router.navigate(@panel.prof_url(), true)\r
+ @trigger('navigate', @item.prof_url())\r
\r
click_credit_icon: (item) ->\r
- window.router.navigate(item.show_url(), true)\r
+ @trigger('navigate', item.show_url())\r
\r
class Pettanr.Views.Panel.ShowModule\r
class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header\r
this\r
\r
click_show: () ->\r
- window.router.navigate(@item.show_url(), true)\r
+ @trigger('navigate', @item.show_url())\r
\r
click_play: () ->\r
- window.router.navigate(@item.play_url(), true)\r
+ @trigger('navigate', @item.play_url())\r
\r
click_prof: () ->\r
- window.router.navigate(@item.prof_url(), true)\r
+ @trigger('navigate', @item.prof_url())\r
\r
click_author: () ->\r
- window.router.navigate(@item.author().show_url(), true)\r
+ @trigger('navigate', @item.author().show_url())\r
\r
click_edit: () ->\r
- window.router.navigate(@item.edit_url(), true)\r
+ @trigger('navigate', @item.edit_url())\r
\r
click_destroy: () ->\r
- window.router.navigate(@item.destroy_url(), true)\r
+ @trigger('navigate', @item.destroy_url())\r
\r
+# form for user sign in\r
class Pettanr.Views.UserSeeeion.New extends Backbone.View\r
tagName: 'div'\r
\r
+# page header for signed in user\r
class Pettanr.Views.User.Account extends Backbone.View\r
tagName: 'div'\r
\r
@trigger('navigate', @artist_view.url())\r
\r
sign_out: () ->\r
- user = new Backbone.Model({id: 0})\r
- user.url = '/users/sign_out'\r
- user.destroy({success: () ->\r
- r = new Pettanr.Views.Top.Index({})\r
- $("#header").html(r.render().el)\r
- $("#pettanr").html('')\r
- })\r
+ @trigger('navigate', 'users/sign_out')\r
return false\r
\r
-class Pettanr.Views.Top.Index extends Backbone.View\r
+# page header for guest\r
+class Pettanr.Views.User.Guest extends Backbone.View\r
tagName: 'div'\r
className: 'account'\r
\r
this\r
\r
click_logo: () ->\r
- window.router.navigate('', true)\r
+ @trigger('navigate', '')\r
return false\r
\r
click_sign_in: () ->\r
- window.router.navigate('users/sign_in', true)\r
+ @trigger('navigate', 'user_sessions/new')\r
return false\r
\r
+++ /dev/null
-class Pettanr.Views.User.Index extends Backbone.View\r
- tagName: 'div'\r
- \r
- initialize: (options) ->\r
- @operators = options.operators\r
- \r
- render: () ->\r
- this.$el.html('')\r
- t = _.template($("#sign_in").html())\r
- this.$el.append(t())\r
- @delegateEvents({'submit': 'sign_in'})\r
- this\r
- \r
- sign_in: () ->\r
- m = $('#user_email').val()\r
- p = $('#user_password').val()\r
- user = new Pettanr.User.Current()\r
- user.save({user: {email: m, password: p}}, (current_user) ->\r
- r = new Pettanr.Views.Top.Account({operators: window.operators})\r
- $('#account').html(r.render().el)\r
- window.router.home()\r
- )\r
- return false\r
- \r
}
.filer {
- list-style-type: none;
- margin: 0;
- padding: 0;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
}
.filer-head {
float: left;
}
+.filer-body {
+ padding-left: 0;
+}
.filer-item {
clear: both;
margin: 0;