aura 0.0.1.pre10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. data/.gitignore +6 -0
  2. data/.travis.yml +3 -0
  3. data/Gemfile +2 -0
  4. data/HISTORY.md +95 -0
  5. data/README.md +53 -0
  6. data/Rakefile +27 -0
  7. data/Scribefile +8 -0
  8. data/app/css/_utilities.scss +88 -0
  9. data/app/css/admin.scss +21 -0
  10. data/app/css/admin/_settings.scss +136 -0
  11. data/app/css/admin/chrome.scss +208 -0
  12. data/app/css/admin/common.scss +78 -0
  13. data/app/css/admin/forms.scss +342 -0
  14. data/app/css/admin/jquery_wysiwyg.scss +96 -0
  15. data/app/css/admin/loading.scss +18 -0
  16. data/app/css/admin/meta.scss +42 -0
  17. data/app/css/admin/reset.scss +46 -0
  18. data/app/css/admin/sections.scss +79 -0
  19. data/app/css/admin/setup.scss +22 -0
  20. data/app/css/admin/sidebar.scss +136 -0
  21. data/app/css/admin/slug.scss +78 -0
  22. data/app/css/admin/uiscreen.scss +22 -0
  23. data/app/css/admin/wysiwyg_field.scss +11 -0
  24. data/app/css/admin_watermark.scss +23 -0
  25. data/app/css/default_home_page.scss +13 -0
  26. data/app/css/login.scss +47 -0
  27. data/app/helpers/admin_helpers.rb +59 -0
  28. data/app/helpers/flash_helpers.rb +86 -0
  29. data/app/helpers/form_builder_helpers.rb +9 -0
  30. data/app/helpers/html_helpers.rb +27 -0
  31. data/app/helpers/jquery_helpers.rb +26 -0
  32. data/app/helpers/main_helpers.rb +67 -0
  33. data/app/helpers/page_helpers.rb +92 -0
  34. data/app/helpers/template_helpers.rb +94 -0
  35. data/app/helpers/user_helpers.rb +45 -0
  36. data/app/init/admin.rb +34 -0
  37. data/app/init/extensions.rb +18 -0
  38. data/app/init/pistol.rb +11 -0
  39. data/app/init/sequel.rb +11 -0
  40. data/app/main.rb +106 -0
  41. data/app/migrations/page.rb +29 -0
  42. data/app/migrations/settings.rb +11 -0
  43. data/app/migrations/user.rb +13 -0
  44. data/app/models/page.rb +116 -0
  45. data/app/models/page_seed.rb +47 -0
  46. data/app/models/settings.rb +59 -0
  47. data/app/models/user.rb +60 -0
  48. data/app/routes/admin.rb +44 -0
  49. data/app/routes/css_js.rb +53 -0
  50. data/app/routes/design_tests.rb +15 -0
  51. data/app/routes/editor.rb +152 -0
  52. data/app/routes/site.rb +33 -0
  53. data/app/routes/user.rb +48 -0
  54. data/app/views/admin/_back_to_dashboard.haml +3 -0
  55. data/app/views/admin/dashboard.haml +46 -0
  56. data/app/views/admin/layout.haml +73 -0
  57. data/app/views/admin/settings.haml +40 -0
  58. data/app/views/admin/settings/database.haml +42 -0
  59. data/app/views/base/crumbs.haml +50 -0
  60. data/app/views/base/delete.haml +19 -0
  61. data/app/views/base/edit.haml +61 -0
  62. data/app/views/base/errors.haml +10 -0
  63. data/app/views/base/form.haml +11 -0
  64. data/app/views/base/list.haml +14 -0
  65. data/app/views/base/list_actions.haml +4 -0
  66. data/app/views/base/list_item.haml +7 -0
  67. data/app/views/base/nav.haml +36 -0
  68. data/app/views/base/new.haml +36 -0
  69. data/app/views/base/preview.haml +28 -0
  70. data/app/views/base/tabs.haml +12 -0
  71. data/app/views/default_home_page.haml +15 -0
  72. data/app/views/design_tests/admin_styles.haml +58 -0
  73. data/app/views/form_builder/builder.haml +29 -0
  74. data/app/views/page/edit.haml +29 -0
  75. data/app/views/page/form.haml +22 -0
  76. data/app/views/page/meta_form.haml +22 -0
  77. data/app/views/page/new.haml +26 -0
  78. data/app/views/user/edit.haml +52 -0
  79. data/app/views/user/form.haml +43 -0
  80. data/app/views/user/list.haml +11 -0
  81. data/app/views/user/login.haml +33 -0
  82. data/app/views/user/new.haml +25 -0
  83. data/app/views/user/welcome.haml +29 -0
  84. data/app/views/watermark/watermark.haml +16 -0
  85. data/aura.gemspec +36 -0
  86. data/bin/aura +8 -0
  87. data/config/database.rb +12 -0
  88. data/config/extensions.rb +5 -0
  89. data/config/scss.rb +14 -0
  90. data/config/user.rb +10 -0
  91. data/default/.gitignore +6 -0
  92. data/default/Gemfile +11 -0
  93. data/default/README.md +24 -0
  94. data/default/Rakefile +8 -0
  95. data/default/app/README +3 -0
  96. data/default/app/css/.gitignore +0 -0
  97. data/default/app/helpers/helpers.rb.example +9 -0
  98. data/default/app/js/.gitignore +0 -0
  99. data/default/app/migrations/model.rb.example +20 -0
  100. data/default/app/models/model.rb.example +11 -0
  101. data/default/app/models/page-ext.rb.example +17 -0
  102. data/default/app/routes/site.rb.example +5 -0
  103. data/default/app/views/hello.haml.example +1 -0
  104. data/default/config.ru +3 -0
  105. data/default/config/.gitignore +0 -0
  106. data/default/config/database.rb.example +30 -0
  107. data/default/config/extensions.rb +5 -0
  108. data/default/config/user.rb.example +10 -0
  109. data/default/db/.gitignore +0 -0
  110. data/default/init.rb +15 -0
  111. data/default/public/.gitignore +0 -0
  112. data/extensions/contact_form/migrations/contact_form.rb +13 -0
  113. data/extensions/contact_form/models/contact_form.rb +13 -0
  114. data/extensions/contact_form/routes/contact_form.rb +11 -0
  115. data/extensions/contact_form/views/contact_form/edit.haml +8 -0
  116. data/extensions/contact_form/views/contact_form/form.haml +3 -0
  117. data/extensions/contact_form/views/contact_form/nav.haml +42 -0
  118. data/extensions/contact_form/views/contact_form/responses.haml +20 -0
  119. data/extensions/contact_form/views/contact_form/tabs.haml +8 -0
  120. data/extensions/default_theme/css/theme/_settings.scss +3 -0
  121. data/extensions/default_theme/css/theme/chrome.scss +66 -0
  122. data/extensions/default_theme/css/theme/reset.scss +34 -0
  123. data/extensions/default_theme/css/theme/style.scss +3 -0
  124. data/extensions/default_theme/info.yml +2 -0
  125. data/extensions/default_theme/public/browse.png +0 -0
  126. data/extensions/default_theme/views/base/id_portfolio.haml +32 -0
  127. data/extensions/default_theme/views/base/show.haml +31 -0
  128. data/extensions/default_theme/views/errors/error.haml +9 -0
  129. data/extensions/default_theme/views/errors/not_found.haml +11 -0
  130. data/extensions/default_theme/views/layout.haml +33 -0
  131. data/lib/aura.rb +315 -0
  132. data/lib/aura/admin.rb +41 -0
  133. data/lib/aura/app.rb +4 -0
  134. data/lib/aura/cli.rb +19 -0
  135. data/lib/aura/cli/base.rb +89 -0
  136. data/lib/aura/cli/helpers.rb +32 -0
  137. data/lib/aura/editor.rb +30 -0
  138. data/lib/aura/extension.rb +189 -0
  139. data/lib/aura/files.rb +38 -0
  140. data/lib/aura/menu.rb +142 -0
  141. data/lib/aura/models.rb +80 -0
  142. data/lib/aura/public.rb +68 -0
  143. data/lib/aura/rendering.rb +134 -0
  144. data/lib/aura/seeder.rb +38 -0
  145. data/lib/aura/slugs.rb +87 -0
  146. data/lib/aura/subtype.rb +48 -0
  147. data/lib/aura/tasks.rb +24 -0
  148. data/lib/aura/tasks/common.rb +17 -0
  149. data/lib/aura/tasks/db.rake +54 -0
  150. data/lib/aura/utils.rb +81 -0
  151. data/lib/aura/version.rb +25 -0
  152. data/lib/core/hasharray.rb +65 -0
  153. data/lib/core/object_ext.rb +9 -0
  154. data/lib/sequel/plugins/aura_custom.rb +16 -0
  155. data/lib/sequel/plugins/aura_editable.rb +39 -0
  156. data/lib/sequel/plugins/aura_hierarchy.rb +82 -0
  157. data/lib/sequel/plugins/aura_model.rb +271 -0
  158. data/lib/sequel/plugins/aura_renderable.rb +42 -0
  159. data/lib/sequel/plugins/aura_sluggable.rb +103 -0
  160. data/lib/sequel/plugins/aura_subtyped.rb +83 -0
  161. data/lib/terra.rb +185 -0
  162. data/lib/terra/ext.rb +16 -0
  163. data/lib/terra/field.rb +98 -0
  164. data/lib/terra/fields.rb +122 -0
  165. data/lib/terra/fieldset.rb +93 -0
  166. data/lib/terra/form.rb +111 -0
  167. data/manual/configuration.md +42 -0
  168. data/manual/extensions.md +45 -0
  169. data/manual/files.md +70 -0
  170. data/manual/helpers.md +39 -0
  171. data/manual/index.md +65 -0
  172. data/manual/models.md +58 -0
  173. data/manual/recipes.md +38 -0
  174. data/manual/recipes/bundling_sample_data.md +30 -0
  175. data/manual/recipes/creating_themes.md +10 -0
  176. data/manual/recipes/using_markdown_or_textile.md +24 -0
  177. data/manual/routes.md +39 -0
  178. data/manual/theming.md +55 -0
  179. data/manual/views.md +128 -0
  180. data/public/hi.html +0 -0
  181. data/public/images/admin/back.png +0 -0
  182. data/public/images/admin/browse.png +0 -0
  183. data/public/images/admin/mock-bg.png +0 -0
  184. data/public/images/admin/top-loader.gif +0 -0
  185. data/public/images/admin/uiscreen-loader.gif +0 -0
  186. data/public/images/admin_icons/add.png +0 -0
  187. data/public/images/admin_icons/contact.png +0 -0
  188. data/public/images/admin_icons/dashboard.png +0 -0
  189. data/public/images/admin_icons/generic.png +0 -0
  190. data/public/images/admin_icons/home-12.png +0 -0
  191. data/public/images/admin_icons/page.png +0 -0
  192. data/public/images/admin_icons/settings.png +0 -0
  193. data/public/images/jquery.wysiwyg.gif +0 -0
  194. data/public/js/admin.form_builder.js +15 -0
  195. data/public/js/admin.js +62 -0
  196. data/public/js/admin.layout.js +53 -0
  197. data/public/js/admin.nav.js +241 -0
  198. data/public/js/admin.slug.js +46 -0
  199. data/public/js/admin.subpage.js +15 -0
  200. data/public/js/jquery.hashlisten.js +85 -0
  201. data/public/js/jquery.js +166 -0
  202. data/public/js/jquery.livenavigate.js +58 -0
  203. data/public/js/jquery.livequery.js +226 -0
  204. data/public/js/jquery.quickvalidate.js +164 -0
  205. data/public/js/jquery.tmpl.js +486 -0
  206. data/public/js/jquery.uiscreen.js +150 -0
  207. data/public/js/jquery.wysiwyg.js +2339 -0
  208. data/public/js/jqueryui.js +766 -0
  209. data/public/js/lib.dirty.js +11 -0
  210. data/public/js/lib.loading.js +23 -0
  211. data/public/js/lib.wysiwyg.js +155 -0
  212. data/public/js/underscore-1.1.7.js +27 -0
  213. data/test/app/app/css/test_raw.css +1 -0
  214. data/test/app/app/css/test_sass.sass +3 -0
  215. data/test/app/app/damogram.txt +1 -0
  216. data/test/app/app/js/test_coffee.coffee +4 -0
  217. data/test/app/app/js/test_javascript.js +4 -0
  218. data/test/app/init.rb +5 -0
  219. data/test/stories/admin_css_story.rb +18 -0
  220. data/test/stories/css_js_story.rb +29 -0
  221. data/test/stories/first_login_story.rb +29 -0
  222. data/test/stories/visit_story.rb +39 -0
  223. data/test/stories_helper.rb +58 -0
  224. data/test/test_cli_helper.rb +31 -0
  225. data/test/test_helper.rb +111 -0
  226. data/test/test_temp_helper.rb +9 -0
  227. data/test/unit/cli_test.rb +38 -0
  228. data/test/unit/dump_test.rb +14 -0
  229. data/test/unit/extensions_test.rb +18 -0
  230. data/test/unit/files_test.rb +14 -0
  231. data/test/unit/flash_helper_test.rb +36 -0
  232. data/test/unit/html_helper_test.rb +29 -0
  233. data/test/unit/jquery_helper_test.rb +18 -0
  234. data/test/unit/model_test.rb +34 -0
  235. data/test/unit/page_helpers_test.rb +36 -0
  236. data/test/unit/seeder_test.rb +15 -0
  237. data/test/unit/settings_test.rb +29 -0
  238. data/test/unit/slug_test.rb +39 -0
  239. data/test/unit/ss_migration_test.rb +14 -0
  240. data/test/unit/terra_test.rb +125 -0
  241. data/test/unit/utils_test.rb +11 -0
  242. data/vendor/sinatra-sequel/.gitignore +3 -0
  243. data/vendor/sinatra-sequel/COPYING +18 -0
  244. data/vendor/sinatra-sequel/README.md +84 -0
  245. data/vendor/sinatra-sequel/Rakefile +67 -0
  246. data/vendor/sinatra-sequel/lib/sinatra/sequel.rb +73 -0
  247. data/vendor/sinatra-sequel/sinatra-sequel.gemspec +39 -0
  248. data/vendor/sinatra-sequel/spec/spec_sinatra_sequel.rb +70 -0
  249. metadata +536 -0
@@ -0,0 +1,36 @@
1
+ - items ||= []
2
+
3
+ -# Either parent or model will be given
4
+ - parent ||= nil
5
+ - model ||= nil
6
+
7
+ %nav
8
+ - unless model.nil?
9
+ %h3= model.title_plural
10
+
11
+ %ul
12
+ - items.each do |item|
13
+ %li{ :class => ('browse' if item.children.any?) }
14
+ != link_to(item.path(:edit)) do
15
+ != admin_icon('page')
16
+ = item.to_s
17
+
18
+ - if item.path(:new) == request.fullpath
19
+ %ul
20
+ %li.add
21
+ != link_to item.path(:new) do
22
+ != admin_icon('add')
23
+ = "New #{item.class.title.downcase}"
24
+
25
+ - if parent
26
+ %li.add
27
+ != link_to parent.path(:new) do
28
+ != admin_icon('add')
29
+ = "New #{parent.class.title.downcase}"
30
+
31
+ - unless model.nil?
32
+ - unless model.try(:root_creatable?) == false
33
+ %li.add
34
+ != link_to model.path(:new) do
35
+ != admin_icon('add')
36
+ = "New #{model.title.downcase}"
@@ -0,0 +1,36 @@
1
+ - body_class 'form'
2
+
3
+ - content_for :tabs do
4
+ != partial item, :tabs, :item => nil, :model => model
5
+
6
+ - content_for :nav do
7
+ - if parent.nil?
8
+ != yield_content_of 'admin/dashboard', :nav
9
+ - else
10
+ != yield_content_of item, :edit, :nav, { :item => parent }
11
+
12
+
13
+ - content_for :title do
14
+ %h1= "New %s" % [item.class.title]
15
+
16
+ - content_for :toolbar do
17
+ %li
18
+ %a.black{:href => '#submit'} Save
19
+
20
+ - content_for :body do
21
+ != partial item, :crumbs, :item => parent, :new => true
22
+
23
+ != partial item, :errors, :errors => item.errors
24
+
25
+ .slim
26
+ - unless parent.nil?
27
+ .message
28
+ This new page will be created under
29
+ %a{:href => parent.path(:edit)}<= parent
30
+ %span>= "."
31
+
32
+ %form{:action => action, :method => 'post' }
33
+ != partial item, :form, :item => item
34
+ %p.submit
35
+ %button{:type => 'submit'}
36
+ %span Save
@@ -0,0 +1,28 @@
1
+ - area_class 'full no-sidebar'
2
+
3
+ - content_for :title do
4
+ %a.button{:href => item.path(:edit)}
5
+ Back
6
+
7
+ - content_for :toolbar do
8
+ %li
9
+ %span You are seeing a preview.
10
+ %li
11
+ %a.ext{:href => item.path} View live
12
+
13
+ - content_for :tabs do
14
+ != partial item, :tabs, :item => item
15
+
16
+ - content_for :nav do
17
+ != yield_content_of item, :edit, :nav, { :item => item, :action => '' }
18
+
19
+ %style
20
+ :plain
21
+ iframe { width: 100%; border: 0; height: 100%; }
22
+
23
+ #iframe_container
24
+ %script
25
+ :plain
26
+ window.setTimeout(function () {
27
+ jQuery('#iframe_container').html('<iframe src=\'#{item.path}\'>');
28
+ }, 200);
@@ -0,0 +1,12 @@
1
+ -# Parameters:
2
+ -# item [nil or Model]
3
+ -# model [Model class]
4
+
5
+ - unless item.nil?
6
+ %ul
7
+ %li
8
+ != link_to item.path(:edit), "Editor"
9
+
10
+ - if item.try(:renderable?)
11
+ %li
12
+ != link_to item.path(:preview), "Preview"
@@ -0,0 +1,15 @@
1
+ !!! 5
2
+ %link{:rel => 'stylesheet', :media => 'screen', :type => 'text/css', :href => '/css/default_home_page.css'}
3
+
4
+ #message
5
+ %h1 Welcome!
6
+ %p
7
+ Your site is has no home page yet.
8
+ Let's fix that!
9
+ %br
10
+ Let's get started.
11
+
12
+ %p.action
13
+ - message = logged_in? ? "Go to admin" : "Login"
14
+ %a.button{:href => R(:login)}!= "#{message} &nbsp; &rsaquo;"
15
+
@@ -0,0 +1,58 @@
1
+ - layout :'admin/layout'
2
+
3
+ - content_for :title do
4
+ %h1 H1 Title
5
+
6
+ .slim.fixed
7
+
8
+ / Section dialog
9
+ %section.dialog
10
+ %h3 Hello there
11
+ %p So and so
12
+
13
+ %ul.actions
14
+ %li
15
+ %a.button Do something
16
+ %a.button Something else
17
+
18
+
19
+ .slim
20
+ %section
21
+ %h3 This is a section
22
+ %p with something.
23
+
24
+ %section.message
25
+ This page has a message here.
26
+
27
+ .slim
28
+ %section.table
29
+ %table
30
+ - 5.times do
31
+ %tr
32
+ %td
33
+ Hi
34
+ %td.actions
35
+ %ul.actions
36
+ %li
37
+ %a Action one
38
+ %li
39
+ %a Two
40
+
41
+ / Buttons
42
+
43
+ .slim.split
44
+ .left
45
+ %p
46
+ %a.button A button
47
+ %p
48
+ %a.black.button A black button
49
+ %p
50
+ %a.blue.button A blue button
51
+ .right
52
+ %p
53
+ %a.small.button A small button
54
+ %p
55
+ %a.small.black.button A small black button
56
+ %p
57
+ %a.small.blue.button A small blue button
58
+
@@ -0,0 +1,29 @@
1
+ %input{:type => 'hidden', :name => name, :value => value}
2
+
3
+ .form-builder
4
+ %h2
5
+ %strong The form
6
+ %em This is the form that will be presented to the visitors.
7
+
8
+ %fieldset
9
+ %p
10
+ %input.label{:value=>'Name'}
11
+ %span.mock.input{:type => 'text'}
12
+ %span.toolbar
13
+ %span.type Text field
14
+ %a.options Options
15
+ %a.delete Delete
16
+ %p
17
+ %input.label{:value=>'Email'}
18
+ %span.mock.input{:type => 'text'}
19
+ %span.toolbar
20
+ %span.type Text field
21
+ %a.options Options
22
+ %a.delete Delete
23
+ %p
24
+ %input.label{:value=>'Message'}
25
+ %span.mock.textarea
26
+ %span.toolbar
27
+ %span.type Text area
28
+ %a.options Options
29
+ %a.delete Delete
@@ -0,0 +1,29 @@
1
+ - area_class 'editable-title'
2
+ - title "Edit: %s" % [ item.to_s ]
3
+ - options = { :item => item }
4
+
5
+ != extends :'base/edit', options
6
+
7
+ - content_for! :body do
8
+ != partial item, :crumbs, :item => item
9
+
10
+ != partial item, :errors, :errors => item.errors
11
+
12
+ %form{:action => action, :method => 'post' }
13
+ .split-250-side.meta
14
+ .left
15
+ != partial item, :form, options
16
+
17
+ %p.submit
18
+ %span.right
19
+ - if item.try(:deletable?)
20
+ %a{:href => item.path(:delete)} Delete this
21
+ != "&nbsp; | &nbsp;"
22
+ - if item.try(:renderable?)
23
+ %a{:href => item.path, :target => 'preview'} View this
24
+
25
+ %button{:type => 'submit'}
26
+ %span Save
27
+
28
+ .right
29
+ != partial item, :meta_form, options
@@ -0,0 +1,22 @@
1
+ -# The default fields of the subtype
2
+ - if (item.subform && item.subform.fieldset(:default).fields.any?)
3
+ !~ item.subform.fieldset(:default).fields_html(item)
4
+
5
+ - else
6
+ -# Default fields
7
+ - fieldset = item.class.form.fieldset(:default)
8
+ !~ fieldset.to_html(item)
9
+
10
+ -# The extra fieldset of the subtype
11
+ - unless item.subform.nil?
12
+ !~ item.subform.fieldset(:extra).try(:fields_html, item)
13
+
14
+ -# Other fields of the subtype
15
+ - unless item.subform.nil?
16
+ - item.subform.fieldsets.each do |fieldset|
17
+ !~ fieldset.to_html(item) unless (fieldset.default? or fieldset.id == :extra)
18
+
19
+ -# Other fields
20
+ - item.class.form.fieldsets.each do |fieldset|
21
+ !~ fieldset.to_html(item) unless fieldset.default?
22
+
@@ -0,0 +1,22 @@
1
+ %section
2
+ -# if item.try(:renderable?)
3
+ -# %dl
4
+ -# %dt
5
+ -# URL:
6
+ -# %dd
7
+ -# %span.line= item.path
8
+ -# - unless item.new?
9
+ -# %br
10
+ -# %a.ext.button.micro{:href => item.path} Visit
11
+ - if item.class.try(:subtyped?)
12
+ %dl
13
+ %dt Type:
14
+ %dd
15
+ %select#subtype_select.neutral{:name => 'editor[subtype]'}
16
+ != select_options(item.subtypes, item.subtype, :_id)
17
+ -# %dl
18
+ -# %dt
19
+ -# %dt Show:
20
+ -# %dd
21
+ -# != labeled_checkbox("Show in menus", 'editor[shown_in_menu]', item.shown_in_menu)
22
+
@@ -0,0 +1,26 @@
1
+ - options = { :item => item, :parent => parent, :model => model }
2
+ != extends :'base/new', options
3
+
4
+ - title "New: %s" % [ item.to_s ]
5
+
6
+ - content_for! :body do
7
+ != partial item, :crumbs, :item => parent, :model => model, :new => true
8
+ != partial item, :errors, :errors => item.errors
9
+
10
+ %form{:action => action, :method => 'post' }
11
+ .split-250-side.meta
12
+ .left
13
+ - unless parent.nil?
14
+ .message
15
+ This new page will be created under
16
+ %a{:href => parent.path(:edit)}<= parent
17
+ %span>= "."
18
+
19
+ != partial item, :form, options
20
+
21
+ %p.submit
22
+ %button{:type => 'submit'}
23
+ %span Save
24
+
25
+ .right
26
+ != partial item, :meta_form, options
@@ -0,0 +1,52 @@
1
+ -# This view is used for a user's settings, editing users, and the welcome page.
2
+
3
+ - action ||= ''
4
+ - first ||= false # True if this is the user's first time.
5
+ - options = { :item => item, :action => action, :first => first }
6
+
7
+ - if first
8
+ - area_class 'no-sidebar'
9
+
10
+ - content_for :title do
11
+ - if first
12
+ %h1= "Welcome!"
13
+ - elsif current_user == @item
14
+ %h1= "User settings"
15
+ - else
16
+ %h1= "User settings for #{@item}"
17
+
18
+ - content_for :tabs do
19
+ - unless first
20
+ != yield_content_of :'admin/settings', :tabs
21
+
22
+ - content_for :nav do
23
+ - unless first
24
+ != yield_content_of :'admin/settings', :nav
25
+
26
+ - content_for :toolbar do
27
+ - unless first
28
+ != yield_content_of :'base/edit', :toolbar, options
29
+
30
+ - content_for :body do
31
+ != partial item, :errors, :errors => item.errors
32
+
33
+ .slim.fixed
34
+
35
+ %form.ext{:action => action, :method => 'post' }
36
+ != partial item, :form, options
37
+
38
+ %input{:type => 'hidden', :name => 'next', :value => R(:admin)}
39
+
40
+ - unless first
41
+ %p.align-center
42
+ You may also
43
+ %a{:href => item.path(:delete)} delete your account
44
+ if you need to.
45
+
46
+ %p.align-center
47
+ %br
48
+ %button.black{:type => 'submit'}
49
+ - if first
50
+ %span Continue
51
+ - else
52
+ %span Save
@@ -0,0 +1,43 @@
1
+ - first ||= false
2
+
3
+ %br
4
+ %br
5
+
6
+ %fieldset
7
+ - if item == current_user
8
+ %h2.greeting Hola! Your login email is:
9
+ - else
10
+ %h2.greeting Email:
11
+
12
+ %p{:class => 'title no-label center assert required'}
13
+ %input#field_email{:type => 'text', :name => 'editor[email]', :value => item.email}
14
+
15
+ - if first
16
+ %p.description.align-center
17
+ Feel free to change it if you wish. Now enter a good password below,
18
+ twice. We'll get you started with your site right after!
19
+
20
+ - elsif !item.new?
21
+ %p.description.align-center
22
+ If you would like to change your password, enter a new one below, twice.
23
+ Otherwise, leave these blank to leave your password as it is.
24
+
25
+ - else
26
+ %p.description.align-center
27
+ Enter the user's initial password below.
28
+
29
+ - if item.new?
30
+ %p{:class => "compact assert required", :'data-min-length' => 5 }
31
+ %label{:for => 'field_password'} Password:
32
+ %input#field_password{:type => 'text', :name => 'editor[password]'}
33
+
34
+ - else
35
+ - required = ('present' if @first)
36
+
37
+ %p{:class => "compact assert matches-next #{required}", :'data-min-length' => 5 }
38
+ %label{:for => 'field_password'} Password:
39
+ %input#field_password{:type => 'password', :name => 'editor[password]'}
40
+
41
+ %p{:class => "compact assert matches-previous #{required}", :'data-min-length' => 5 }
42
+ %label{:for => 'field_password_confirmation'} Confirm:
43
+ %input#field_password_confirmation{:type => 'password', :name => 'editor[password_confirmation]'}
@@ -0,0 +1,11 @@
1
+ != extends :'admin/settings'
2
+
3
+ - content_for! :title do
4
+ %h1
5
+ Users
6
+
7
+ - content_for! :toolbar do
8
+ != yield_content_of :'base/list', :toolbar, { :model => model }
9
+
10
+ - content_for! :body do
11
+ != yield_content_of :'base/list', :body, { :model => model }
@@ -0,0 +1,33 @@
1
+ - layout nil
2
+
3
+ !!! 5
4
+ %html(lang='en')
5
+ %head
6
+ %meta(charset='UTF-8')
7
+ %title Login
8
+ %link(rel='stylesheet' media='screen' type='text/css' href='/css/reset.css')
9
+ %link(rel='stylesheet' media='screen' type='text/css' href='/css/login.css')
10
+ %body
11
+ %h1 Login
12
+ %form{:method => 'post'}
13
+ - if flash_errors?
14
+ .flash.errors
15
+ %ul
16
+ - flash_errors.each do |msg|
17
+ %li= msg
18
+
19
+ - if flash_messages?
20
+ .flash.messages
21
+ %ul
22
+ - flash_messages.each do |msg|
23
+ %li= msg
24
+
25
+ %p
26
+ %label{:for => 'email'} Login:
27
+ %input#email{:type => 'text', :name => 'username', :value => (params[:email]||'')}/
28
+ %p
29
+ %label{:for => 'password'} Password:
30
+ %input#password{:type => 'password', :name => 'password', :value => (params[:password]||'')}/
31
+ %p.submit
32
+ %button{:type => 'submit'}
33
+ %span Login