//= require ./pettanr
//= require ./routes
//= require ./i18n/translations
-// require_directory ./controllers
+//= require_directory ./controllers
//= require_directory ./models
//= require_directory ./views
//= require_directory ./pettanr
-class Pettanr.Admin extends Backbone.Model\r
+class Pettanr.AdminsController extends Pettanr.AppController\r
\r
defaults: {\r
id: null\r
class Pettanr.ArtistsController extends Pettanr.AppController\r
\r
index: () ->\r
- filer_list\r
+ list_result = new Pettanr.Artist.Collection({})\r
+ new Pettanr.FilerRender('artist', list_result, 'default', window.operators)\r
\r
show_html_format: (format) -> \r
\r
-class Pettanr.Author extends Peta.Owner\r
+class Pettanr.AuthorsController extends Pettanr.AppController\r
url: '/authors/'\r
\r
@singular: () ->\r
-class Pettanr.Balloon extends Peta.Element\r
+class Pettanr.BalloonsController extends Pettanr.AppController\r
\r
-class Pettanr.Comic extends Peta.Binder\r
+class Pettanr.ComicsController extends Pettanr.AppController\r
@single: () ->\r
'Comic'\r
\r
--- /dev/null
+class Pettanr.ComicStoriesController extends Pettanr.AppController\r
+ @single: () ->\r
+ 'ComicStory'\r
+ \r
+ @plural: () ->\r
+ 'ComicStories'\r
+ \r
+ defaults: {\r
+ id: null\r
+ } \r
+ \r
+ initialize: () ->\r
+ \r
+\r
-class Pettanr.Demander extends Backbone.Model\r
+class Pettanr.DemandersController extends Pettanr.AppController\r
\r
defaults: {\r
id: null\r
--- /dev/null
+class Pettanr.FoldersController extends Pettanr.AppController\r
+ index: () ->\r
+ \r
+ root: () ->\r
+ \r
+ show_html_format: (format) -> \r
+ \r
+ show: (id) ->\r
+ console.log(id)\r
+ item = new Pettanr.FolderWatch({id: id})\r
+ _this = this\r
+ item.fetch({}).done () ->\r
+ if item.is_remote()\r
+ window.router.navigate(item.remote_name(), true)\r
+ else\r
+ list_result = new Pettanr.Folder.Children({id: item.id})\r
+ new Pettanr.FilerRender('folder', list_result, 'default', window.operators)\r
+ \r
+ count: () ->\r
+ \r
+ folders_new: () ->\r
+ \r
+ edit: () ->\r
+ \r
-class Pettanr.GroundColor extends Peta.Element\r
+class Pettanr.GroundColorsController extends Pettanr.AppController\r
\r
-class Pettanr.GroundPicture extends Peta.Element\r
+class Pettanr.GroundPicturesController extends Pettanr.AppController\r
@single: () ->\r
'GroundPicture'\r
\r
--- /dev/null
+class Pettanr.HomeController extends Pettanr.AppController\r
+\r
-class Pettanr.License extends Peta.SystemResource\r
+class Pettanr.LicensesController extends Pettanr.AppController\r
@single: () ->\r
'License'\r
\r
-class Pettanr.LicenseGroup extends Peta.Template\r
+class Pettanr.LicenseGroupsController extends Pettanr.AppController\r
@single: () ->\r
'LicenseGroup'\r
\r
-class Pettanr.OriginalPicture extends Peta.Content\r
+class Pettanr.OriginalPicturesController extends Pettanr.AppController\r
@single: () ->\r
'OriginalPicture'\r
\r
-class Pettanr.OriginalPictureLicense extends Peta.Item\r
+class Pettanr.OriginalPictureLicensesController extends Pettanr.AppController\r
@single: () ->\r
'OriginalPictureLicense'\r
\r
-class Pettanr.OriginalPictureLicenseGroup extends Peta.Item\r
+class Pettanr.OriginalPictureLicenseGroupsController extends Pettanr.AppController\r
@single: () ->\r
'OriginalPictureLicenseGroup'\r
\r
-class Pettanr.Panel extends Peta.Root\r
+class Pettanr.PanelsController extends Pettanr.AppController\r
@single: () ->\r
'Panel'\r
\r
-class Pettanr.PanelPicture extends Peta.Element\r
+class Pettanr.PanelPicturesController extends Pettanr.AppController\r
@single: () ->\r
'PanelPicture'\r
\r
-class Pettanr.Picture extends Peta.Content\r
+class Pettanr.PicturesController extends Pettanr.AppController\r
@single: () ->\r
'Picture'\r
\r
-class Pettanr.ResourcePicture extends Peta.Content\r
+class Pettanr.ResourcePicturesController extends Pettanr.AppController\r
@single: () ->\r
'ResourcePicture'\r
\r
class Pettanr.ScrollsController extends Pettanr.AppController\r
+ \r
+ index: () ->\r
+ list_result = new Pettanr.Scroll.Collection({})\r
+ new Pettanr.FilerRender('scroll', list_result, 'default', window.operators)\r
\r
+ root: () ->\r
+ \r
+ show_html_format: (format) -> \r
+ \r
+ show: (id) ->\r
+ console.log(id)\r
+ item = new Pettanr.Scroll({id: id})\r
+ _this = this\r
+ item.fetch({}).done () ->\r
+ \r
+ count: () ->\r
+ \r
+ folders_new: () ->\r
+ \r
+ edit: () ->\r
+ \r
-class Pettanr.ScrollPanel extends Peta.Leaf\r
+class Pettanr.ScrollPanelsController extends Pettanr.AppController\r
@single: () ->\r
'ScrollPanel'\r
\r
-class Pettanr.Sheet extends Peta.Root\r
+class Pettanr.SheetsController extends Pettanr.AppController\r
@single: () ->\r
'Sheet'\r
\r
-class Pettanr.SheetPanel extends Peta.Leaf\r
+class Pettanr.SheetPanelsController extends Pettanr.AppController\r
@single: () ->\r
'SheetPanel'\r
\r
-class Pettanr.SpeechBalloon extends Peta.Element\r
+class Pettanr.SpeechesController extends Pettanr.AppController\r
@single: () ->\r
'Speech'\r
\r
-class Pettanr.SpeechBalloon extends Peta.Element\r
+class Pettanr.SpeechBalloonsController extends Pettanr.AppController\r
@single: () ->\r
'SpeechBalloon'\r
\r
-class Pettanr.SpeechBalloonTemplate extends Peta.Template\r
+class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController\r
\r
-class Pettanr.Story extends Peta.Binder\r
+class Pettanr.StoriesController extends Pettanr.AppController\r
@single: () ->\r
'Story'\r
\r
-class Pettanr.StorySheet extends Peta.Leaf\r
+class Pettanr.StorySheetsController extends Pettanr.AppController\r
@single: () ->\r
'StorySheet'\r
\r
-class Pettanr.SystemPicture extends Peta.SystemResource\r
+class Pettanr.SystemPicturesController extends Pettanr.AppController\r
-class Pettanr.User extends Backbone.Model\r
+class Pettanr.UsersController extends Pettanr.AppController\r
\r
url: '/users/'\r
\r
-class Pettanr.WritingFormat extends Peta.Template\r
+class Pettanr.WritingFormatsController extends Pettanr.AppController\r
\r
\r
defaults: {\r
id: null,\r
+ visible: 0\r
} \r
\r
initialize: () ->\r
class Pettanr.ScrollPanel extends Peta.Leaf\r
+ url: ''\r
+ \r
@single: () ->\r
'ScrollPanel'\r
\r
'ScrollPanels'\r
\r
defaults: {\r
- id: 11\r
+ id: null,\r
} \r
\r
initialize: () ->\r
- confirm("Welcome to Panel")\r
+ if @id\r
+ @url = @url + @id\r
\r
-\r
+class Pettanr.ScrollPanel.Collection extends Backbone.Collection\r
+ model: Pettanr.ScrollPanel\r
+ url: '/scroll_panels'\r
@is_blank: (str) ->\r
!str?.trim()\r
\r
+ @is_a_string: (str) ->\r
+ if (str instanceof String) or (typeof str == "string")\r
+ true\r
+ else\r
+ false\r
+ \r
+ @to_s: (str) ->\r
+ if @is_a_string(str)\r
+ str\r
+ else\r
+ ''\r
+ \r
class Pettanr.AppHelper\r
@manifest: () ->\r
Manifest.manifest\r
\r
@distance_of_time_in_words_to_now: (datetime) ->\r
datetime\r
-\r
+ \r
class Pettanr.AppController\r
\r
class Pettanr.FilerRender\r
pieces = input.replace(/([A-Z])/g, '_$1').split(/[\W_-]/).filter (n) -> !!n\r
@xeach(pieces, @lowercase ).join("_")\r
# <<\r
- @is_a_string: (str) ->\r
- if (str instanceof String) or (typeof str == "string")\r
- true\r
- else\r
- false\r
- \r
- @to_s: (str) ->\r
- if @is_a_string(str)\r
- str\r
- else\r
- ''\r
- \r
@Pettanr = Pettanr\r
class Pettanr.Router extends Backbone.Router\r
- routes: {\r
- 'folders/:id': 'folders_show'\r
- 'scrolls/': 'scrolls_index'\r
- 'aa': 'folders_show'\r
- }\r
\r
- index: (r, a) ->\r
+ _index: () ->\r
+ list_result = new Pettanr.Scroll.Collection({})\r
+ new Pettanr.FilerRender('scroll', list_result, 'default', window.operators)\r
\r
show_html_format: (format) -> \r
\r
- show: (id) ->\r
+ folders_show: (id) ->\r
+ console.log(controller_name)\r
\r
count: () ->\r
\r
\r
destroy: () ->\r
\r
- folders_index: () ->\r
- \r
- folders_root: () ->\r
\r
- folders_show_html_format: (format) -> \r
- \r
- folders_show: (id) ->\r
- @item = new Pettanr.FolderWatch({id: id})\r
+ initialize: () ->\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
_this = this\r
- @item.fetch({}).done () ->\r
- _this.render()\r
- \r
- render: () ->\r
- if @item.is_remote()\r
- window.router.navigate(@item.remote_name(), true)\r
- else\r
- list_result = new Pettanr.Folder.Children({id: @item.id})\r
- new Pettanr.FilerRender('folder', list_result, 'default', window.operators)\r
- \r
- folders_count: () ->\r
- \r
- folders_new: () ->\r
- \r
- folders_edit: () ->\r
- \r
- scrolls_index: () ->\r
- list_result = new Pettanr.Scroll.Collection({})\r
- new Pettanr.FilerRender('scroll', list_result, 'default', window.operators)\r
- \r
+ _.each _.flatten(names), (status) ->\r
+ _status = status\r
+ f = switch status.action_manifest.type\r
+ when 'list'\r
+ _this[status.event_name] = () ->\r
+ _status.controller[_status.action_name]()\r
+ r = _status.controller_name + '/' + _status.action_name\r
+ _this.route(r, _status.event_name)\r
+ if _status.action_name == 'index'\r
+ r = _status.controller_name + '/'\r
+ _this.route(r, _status.event_name)\r
+ when 'show'\r
+ _this[status.event_name] = (id) ->\r
+ _status.controller[_status.action_name](id)\r
+ r = _status.controller_name + '/:id/' + _status.action_name\r
+ _this.route(r, _status.event_name)\r
+ if _status.action_name == 'show'\r
+ r = _status.controller_name + '/:id'\r
+ _this.route(r, _status.event_name)\r
+\r
\r
\r
<script type="text/template" id="folders-summary">\r
+-\r
</script>\r
<script type="text/template" id="scrolls-summary">\r
+-\r
</script>\r
<script type="text/template" id="scroll_panels-summary">\r
</script>\r