olelo 0.9.3 → 0.9.4

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 (92) hide show
  1. data/.travis.yml +4 -0
  2. data/Rakefile +6 -12
  3. data/bin/olelo +13 -8
  4. data/config.ru +21 -15
  5. data/config/aspects.rb +45 -32
  6. data/config/config.yml.default +1 -0
  7. data/config/initializers/00-mime_types.rb +22 -17
  8. data/config/initializers/01-slim.rb +2 -2
  9. data/lib/olelo.rb +1 -8
  10. data/lib/olelo/application.rb +33 -34
  11. data/lib/olelo/attributes.rb +4 -4
  12. data/lib/olelo/extensions.rb +0 -7
  13. data/lib/olelo/helper.rb +13 -25
  14. data/lib/olelo/html_safe.rb +0 -4
  15. data/lib/olelo/locale.yml +6 -3
  16. data/lib/olelo/menu.rb +1 -1
  17. data/lib/olelo/page.rb +21 -18
  18. data/lib/olelo/version.rb +1 -1
  19. data/olelo.gemspec +5 -3
  20. data/plugins/aspects/changelog.rb +5 -5
  21. data/plugins/aspects/documentbrowser.rb +5 -5
  22. data/plugins/{gallery → aspects/gallery}/gallery.css +0 -0
  23. data/plugins/{gallery → aspects/gallery}/gallery.scss +0 -0
  24. data/plugins/{gallery → aspects/gallery}/main.rb +3 -3
  25. data/plugins/aspects/highlight.rb +1 -1
  26. data/plugins/aspects/image.rb +1 -1
  27. data/plugins/aspects/imageinfo.rb +3 -3
  28. data/plugins/aspects/main.rb +21 -21
  29. data/plugins/aspects/pageinfo.rb +2 -2
  30. data/plugins/aspects/source.rb +1 -1
  31. data/plugins/aspects/subpages.rb +7 -7
  32. data/plugins/aspects/text.rb +1 -1
  33. data/plugins/authentication/portal.rb +2 -2
  34. data/plugins/authentication/yamlfile.rb +1 -1
  35. data/plugins/blog/main.rb +10 -10
  36. data/plugins/editor/preview.rb +3 -3
  37. data/plugins/filters/creole.rb +1 -1
  38. data/plugins/filters/editsection.rb +2 -2
  39. data/plugins/filters/html2xml.rb +6 -0
  40. data/plugins/filters/main.rb +1 -1
  41. data/plugins/filters/remind/main.rb +15 -0
  42. data/plugins/filters/remind/rem2html +562 -0
  43. data/plugins/filters/s5/main.rb +1 -1
  44. data/plugins/login/persistent.rb +1 -1
  45. data/plugins/misc/system.rb +4 -0
  46. data/plugins/misc/variables.rb +1 -1
  47. data/plugins/misc/webdav.rb +10 -10
  48. data/plugins/repositories/git_grep.rb +2 -2
  49. data/plugins/repositories/gitrb_repository.rb +10 -10
  50. data/plugins/repositories/rugged_repository.rb +7 -7
  51. data/plugins/tags/code.rb +1 -1
  52. data/plugins/tags/footnotes.rb +4 -3
  53. data/plugins/tags/gist.rb +2 -2
  54. data/plugins/tags/html.rb +11 -11
  55. data/plugins/tags/include.rb +6 -6
  56. data/plugins/tags/main.rb +10 -10
  57. data/plugins/tags/math.rb +2 -2
  58. data/plugins/tags/redirect.rb +3 -3
  59. data/plugins/tags/scripting.rb +12 -12
  60. data/plugins/tags/sort.rb +1 -1
  61. data/plugins/tags/tabs.rb +1 -1
  62. data/plugins/treeview/main.rb +3 -3
  63. data/plugins/treeview/script.js +5 -5
  64. data/plugins/treeview/script/00-jquery.treeview.js +6 -6
  65. data/plugins/treeview/script/init.js +1 -1
  66. data/plugins/utils/assets.rb +4 -4
  67. data/plugins/utils/cache.rb +10 -6
  68. data/plugins/utils/store.rb +4 -4
  69. data/static/script.js +124 -126
  70. data/static/script/{02-jquery.js → 01-jquery.js} +0 -0
  71. data/static/script/02-olelo.storage.js +54 -0
  72. data/static/script/10-olelo.historytable.js +2 -2
  73. data/static/script/13-olelo.tabwidget.js +2 -2
  74. data/test/helper.rb +5 -4
  75. data/test/page_test.rb +1 -1
  76. data/test/request_test.rb +42 -38
  77. data/test/string_extensions_test.rb +0 -6
  78. data/test/templates_test.rb +1 -1
  79. data/test/util_test.rb +1 -1
  80. data/views/changes.slim +2 -2
  81. data/views/compare.slim +4 -4
  82. data/views/delete.slim +2 -2
  83. data/views/deleted.slim +1 -1
  84. data/views/edit.slim +31 -26
  85. data/views/history.slim +5 -5
  86. data/views/layout.slim +1 -1
  87. data/views/login.slim +30 -32
  88. data/views/move.slim +3 -3
  89. data/views/profile.slim +2 -2
  90. data/views/show.slim +1 -1
  91. metadata +43 -104
  92. data/static/script/01-jstorage.js +0 -217
@@ -0,0 +1,54 @@
1
+ // Simple storage plugin
2
+ // Written by Daniel Mendler
3
+ (function($) {
4
+ var storage = {}, data = {};
5
+ try {
6
+ if (window.localStorage) {
7
+ storage = window.localStorage;
8
+ }
9
+ if (storage.oleloStorage) {
10
+ data = JSON.parse(storage.oleloStorage);
11
+ }
12
+ } catch (e) {
13
+ // Firefox fails when touching localStorage/globalStorage and cookies are disabled
14
+ }
15
+
16
+ function checkKey(key) {
17
+ if (typeof(key) != 'string' && typeof(key) != 'number') {
18
+ throw new TypeError('Key name must be string or numeric');
19
+ }
20
+ }
21
+
22
+ function save() {
23
+ try {
24
+ storage.oleloStorage = JSON.stringify(data);
25
+ } catch (e) {
26
+ // probably cache is full, nothing is saved this way
27
+ }
28
+ }
29
+
30
+ $.storage = {
31
+ set: function(key, value){
32
+ checkKey(key);
33
+ data[key] = value;
34
+ save();
35
+ return value;
36
+ },
37
+ get: function(key, def){
38
+ checkKey(key);
39
+ if (key in data) {
40
+ return data[key];
41
+ }
42
+ return typeof(def) == 'undefined' ? null : def;
43
+ },
44
+ remove: function(key){
45
+ checkKey(key);
46
+ if (key in data){
47
+ delete data[key];
48
+ save();
49
+ return true;
50
+ }
51
+ return false;
52
+ }
53
+ };
54
+ })(jQuery);
@@ -5,7 +5,7 @@
5
5
  var version = $(this).attr('id').substr(8);
6
6
  $(this).prepend('<td class="compare"><input type="checkbox" name="' + version + '"/></td>');
7
7
  });
8
- var versions = jStorage.get('historyTable');
8
+ var versions = $.storage.get('historyTable');
9
9
  if (versions) {
10
10
  for (var i = 0; i < versions.length; ++i)
11
11
  $('input[name=' + versions[i] + ']').attr('checked', 'checked');
@@ -25,7 +25,7 @@
25
25
  var button = $('th button', this);
26
26
  button.click(function() {
27
27
  var versions = getSelectedVersions();
28
- jStorage.set('historyTable', versions);
28
+ $.storage.set('historyTable', versions);
29
29
  location.href = location.pathname.replace('/history', '/compare/' + versions[versions.length-1] + '...' + versions[0]);
30
30
  });
31
31
 
@@ -19,14 +19,14 @@
19
19
  selected.data('tab').show();
20
20
  selected.parent().addClass('selected');
21
21
  if (store) {
22
- jStorage.set(store, selected.data('tab').attr('id'));
22
+ $.storage.set(store, selected.data('tab').attr('id'));
23
23
  }
24
24
  return false;
25
25
  });
26
26
 
27
27
  // Get selected tab from store
28
28
  if (store) {
29
- var name = jStorage.get(store);
29
+ var name = $.storage.get(store);
30
30
  if (name) {
31
31
  selected = $("> a[href='#" + name + "']", this);
32
32
  }
@@ -1,4 +1,3 @@
1
- require 'rack/olelo_patches'
2
1
  require 'olelo'
3
2
  require 'bacon'
4
3
  require 'rack/test'
@@ -11,16 +10,18 @@ module TestHelper
11
10
  end
12
11
 
13
12
  def create_repository
14
- Olelo::Repository.instance = nil
13
+ Thread.current[:olelo_repository] = nil
14
+ Olelo::User.current = Olelo::User.new('anonymous', 'anonymous@localhost')
15
+ load_plugin('repositories/rugged_repository')
15
16
  Olelo::Config.instance['repository.type'] = 'git'
16
17
  Olelo::Config.instance['repository.git.path'] = File.expand_path(File.join(File.dirname(__FILE__), '.test'))
17
18
  Olelo::Config.instance['repository.git.bare'] = true
18
- load_plugin('repositories/git')
19
19
  end
20
20
 
21
21
  def destroy_repository
22
- Olelo::Repository.instance = nil
23
22
  FileUtils.rm_rf(Olelo::Config['repository.git.path'])
23
+ Thread.current[:olelo_repository] = nil
24
+ Olelo::User.current = nil
24
25
  end
25
26
 
26
27
  def create_page(name, content = 'content')
@@ -122,7 +122,7 @@ describe 'Olelo::Page' do
122
122
  tree.previous_version.should.equal old_tree.tree_version
123
123
  old_tree.tree_version.should.equal old_tree.children[0].tree_version
124
124
  old_tree.tree_version.should.equal old_tree.children[1].tree_version
125
- old_tree.tree_version.should.equal old_tree.children[2].tree_version
125
+ old_tree.children[2].should.equal nil
126
126
  old_tree.children[0].tree_version.should.not.be.head
127
127
  end
128
128
 
@@ -1,10 +1,10 @@
1
1
  require 'helper'
2
2
  require 'olelo/middleware/flash'
3
3
  require 'olelo/middleware/force_encoding'
4
+ require 'olelo/middleware/degrade_mime_type'
5
+ require 'rack/relative_redirect'
4
6
  require 'rack/session/pool'
5
7
 
6
- Rack::MockRequest::DEFAULT_ENV['REMOTE_ADDR'] = 'localhorst'
7
-
8
8
  class Bacon::Context
9
9
  include Rack::Test::Methods
10
10
  include Olelo::Util
@@ -18,61 +18,65 @@ describe 'requests' do
18
18
  @app_path = File.expand_path(File.join(File.dirname(__FILE__), '..'))
19
19
 
20
20
  default_config = {
21
- :title => 'Olelo',
22
- :app_path => @app_path,
23
- :plugins_path => File.join(@app_path, 'plugins'),
24
- :config_path => File.join(@app_path, 'config'),
25
- :initializers_path => File.join(@app_path, 'config', 'initializers'),
26
- :views_path => File.join(@app_path, 'views'),
27
- :themes_path => File.join(@app_path, 'static', 'themes'),
28
- :theme => 'atlantis',
29
- :cache_store => {
30
- :type => 'file',
31
- :file => {
32
- :root => File.join(@test_path, 'cache')
21
+ title: 'Olelo',
22
+ app_path: @app_path,
23
+ plugins_path: File.join(@app_path, 'plugins'),
24
+ config_path: File.join(@app_path, 'config'),
25
+ initializers_path: File.join(@app_path, 'config', 'initializers'),
26
+ views_path: File.join(@app_path, 'views'),
27
+ themes_path: File.join(@app_path, 'static', 'themes'),
28
+ theme: 'atlantis',
29
+ cache_store: {
30
+ type: 'file',
31
+ file: {
32
+ root: File.join(@test_path, 'cache')
33
33
  }
34
34
  },
35
- :base_path => '/',
36
- :production => true,
37
- :locale => 'en_US',
38
- :sidebar_page => 'Sidebar',
39
- :authentication => {
40
- :service => :yamlfile,
41
- :enable_signup => true,
42
- :yamlfile => {
43
- :store => File.join(@test_path, 'users.yml'),
35
+ base_path: '/',
36
+ production: true,
37
+ locale: 'en_US',
38
+ sidebar_page: 'Sidebar',
39
+ authentication: {
40
+ service: :yamlfile,
41
+ enable_signup: true,
42
+ yamlfile: {
43
+ store: File.join(@test_path, 'users.yml'),
44
44
  },
45
45
  },
46
- :mime => [
46
+ mime: [
47
47
  'extension',
48
48
  'content',
49
49
  'text/x-creole',
50
50
  ],
51
- :mime_suggestions => [],
52
- :disabled_plugins => [
51
+ math_renderer: 'mathjax',
52
+ mime_suggestions: [],
53
+ disabled_plugins: [
53
54
  'security/readonly_wiki',
54
55
  'security/private_wiki',
55
- 'editor/antispam',
56
+ 'editor/recaptcha',
56
57
  ],
57
- :repository => {
58
- :type => 'git',
59
- :git => {
60
- :path => File.join(@test_path, 'repository'),
61
- :bare => true,
58
+ repository: {
59
+ type: 'git',
60
+ git: {
61
+ path: File.join(@test_path, 'repository'),
62
+ bare: true,
62
63
  },
63
64
  }
64
65
  }
65
66
 
66
67
  Olelo::Config.instance.update(default_config)
67
- Olelo::Repository.instance = nil
68
+ Thread.current[:olelo_repository] = nil
68
69
 
69
70
  logger = Logger.new(File.join(@app_path, 'test.log'))
71
+ Olelo::Initializer.initialize(logger)
70
72
 
71
73
  @app = Rack::Builder.new do
72
- use Olelo::Middleware::ForceEncoding
73
74
  use Rack::Session::Pool
74
- use Olelo::Middleware::Flash, :set_accessors => %w(error warn info)
75
- Olelo::Initializer.initialize(logger)
75
+ use Rack::MethodOverride
76
+ use Olelo::Middleware::ForceEncoding
77
+ use Olelo::Middleware::DegradeMimeType
78
+ use Olelo::Middleware::Flash, set_accessors: %w(error warn info)
79
+ #use Rack::RelativeRedirect
76
80
  run Olelo::Application.new
77
81
  end
78
82
  end
@@ -90,8 +94,8 @@ describe 'requests' do
90
94
  it 'should show login page' do
91
95
  get '/login'
92
96
  last_response.should.be.ok
93
- last_response.body.should.include '<form action="&#47;signup" method="post">'
94
- last_response.body.should.include '<form action="&#47;login" method="post">'
97
+ last_response.body.should.include '<form action="/signup" method="post">'
98
+ last_response.body.should.include '<form action="/login" method="post">'
95
99
  end
96
100
 
97
101
  it 'should show to /new' do
@@ -1,12 +1,6 @@
1
1
  require 'olelo/extensions'
2
2
 
3
3
  describe 'String extensions' do
4
- it 'should have unindent' do
5
- %{a
6
- b
7
- c}.unindent.should.equal "a\nb\nc"
8
- end
9
-
10
4
  it 'should have #starts_with?' do
11
5
  '123456789'.starts_with?('12').should.equal true
12
6
  '123456789'.starts_with?('23').should.not.equal true
@@ -27,7 +27,7 @@ describe 'Olelo::Templates' do
27
27
  end
28
28
 
29
29
  it 'should have #render' do
30
- render(:test, :locals => {:text => 'Hello, World!'}).should.equal "<h1>Hello, World!</h1>"
30
+ render(:test, locals: {text: 'Hello, World!'}).should.equal "<h1>Hello, World!</h1>"
31
31
  Olelo::Templates.cache.size.should.equal 1
32
32
  end
33
33
  end
@@ -48,7 +48,7 @@ describe 'Olelo::Util' do
48
48
  end
49
49
 
50
50
  it 'should have #build_query' do
51
- Olelo::Util.build_query(:a => 1, :b => [1, 2, 3]).should.equal 'a=1&b=1&b=2&b=3'
51
+ Olelo::Util.build_query(a: 1, b: [1, 2, 3]).should.equal 'a=1&b=1&b=2&b=3'
52
52
  end
53
53
 
54
54
  it 'should have #truncate' do
@@ -1,4 +1,4 @@
1
- - title :changes_of.t(:page => page.title)
1
+ - title :changes_of.t(page: page.title)
2
2
  h1= title
3
3
  table
4
4
  tbody
@@ -18,5 +18,5 @@ table
18
18
  td= :parents.t
19
19
  td.version
20
20
  - @version.parents.each do |parent|
21
- a href=build_path(parent, :action => :changes) = Olelo::Version.short(parent)
21
+ a href=build_path(parent, action: :changes) = Olelo::Version.short(parent)
22
22
  = format_diff(@diff)
@@ -1,8 +1,8 @@
1
- - title "#{:compare.t(:name => page.title)}: #{@diff.from.short} -> #{@diff.to.short}"
1
+ - title "#{:compare.t(name: page.title)}: #{@diff.from.short} -> #{@diff.to.short}"
2
2
  h1
3
- = :compare.t(:name => page.title)
3
+ = :compare.t(name: page.title)
4
4
  | :
5
- a.version href=build_path(page, :version => @diff.from) = @diff.from.short
5
+ a.version href=build_path(page, version: @diff.from) = @diff.from.short
6
6
  | &#8594;
7
- a.version href=build_path(page, :version => @diff.to) = @diff.to.short
7
+ a.version href=build_path(page, version: @diff.to) = @diff.to.short
8
8
  = format_diff(@diff)
@@ -1,8 +1,8 @@
1
- - title :delete_page.t(:page => page.title)
1
+ - title :delete_page.t(page: page.title)
2
2
  h1= title
3
+ = flash_messages
3
4
  form action=build_path(page.path) method='post'
4
5
  .box
5
- = flash_messages
6
6
  &hidden name='_method' value='delete'
7
7
  label for='submit' = :really_delete.t
8
8
  button&submit#submit name='submit' accesskey='d' = :delete.t
@@ -1,2 +1,2 @@
1
- - title :page_deleted.t(:page => page.title)
1
+ - title :page_deleted.t(page: page.title)
2
2
  h1= title
@@ -1,33 +1,40 @@
1
1
  - if page.new?
2
2
  - title params[:path].blank? ? :new_page.t : "#{:new_page.t}: #{params[:path]}"
3
3
  - else
4
- - title params[:pos] ? :edit_page_section.t(:page => page.title) : :edit_page.t(:page => page.title)
4
+ - title params[:pos] ? :edit_page_section.t(page: page.title) : :edit_page.t(page: page.title)
5
5
  h1= title
6
- = tabs :edit, :upload, :attributes
6
+ = flash_messages
7
+ = page.mime.text? ? tabs(:edit, :upload, :attributes) : tabs(:upload, :attributes)
7
8
  form action=build_path(page.new? ? nil : page.path) method='post'
8
- #tab-edit.tab
9
- h2= :edit.t
10
- = flash_messages if action?(:edit) || page.new?
11
- - content = edit_content(page)
12
- - if page.new?
13
- label for='edit-path' = :path.t
14
- &text#edit-path name='path' value=params[:path]
15
- br
16
- hr
17
- - else
18
- &hidden name='version' value=page.version
19
- - if params[:pos]
20
- &hidden name='pos' value=params[:pos]
21
- &hidden name='len' value=content.size
22
- textarea#edit-content.observe name='content' cols='100' rows='20' = content
23
- br
24
- label for='edit-comment' = :comment.t
25
- &text#edit-comment name='comment' value=params[:comment] size='50'
26
- = render_block :edit_buttons do
27
- button&submit name='action' value='edit' = :save.t
28
- button&submit name='action' value='edit-close' = :save_and_close.t
29
- button&reset = :reset.t
9
+ - if page.mime.text?
10
+ #tab-edit.tab
11
+ h2= :edit.t
12
+ ruby:
13
+ content =
14
+ if params[:content]
15
+ params[:content]
16
+ else
17
+ params[:pos] ? page.content[params[:pos].to_i, params[:len].to_i].to_s : page.content
18
+ end
19
+ - if page.new?
20
+ label for='edit-path' = :path.t
21
+ &text#edit-path name='path' value=params[:path]
22
+ br
23
+ hr
24
+ - else
25
+ &hidden name='version' value=page.version
26
+ - if params[:pos]
27
+ &hidden name='pos' value=params[:pos]
28
+ &hidden name='len' value=content.size
29
+ textarea#edit-content.observe name='content' cols='100' rows='20' = content
30
30
  br
31
+ label for='edit-comment' = :comment.t
32
+ &text#edit-comment name='comment' value=params[:comment] size='50'
33
+ = render_block :edit_buttons do
34
+ button&submit name='action' value='edit' = :save.t
35
+ button&submit name='action' value='edit-close' = :save_and_close.t
36
+ button&reset = :reset.t
37
+ br
31
38
  form action=build_path(page.new? ? nil : page.path) method='post' enctype='multipart/form-data'
32
39
  #tab-upload.tab
33
40
  h2= :upload_file.t
@@ -38,7 +45,6 @@ form action=build_path(page.new? ? nil : page.path) method='post' enctype='multi
38
45
  hr
39
46
  - else
40
47
  &hidden name='version' value=page.version
41
- = flash_messages :upload
42
48
  label for='upload-file' = :file.t
43
49
  &file#upload-file.observe name='file'
44
50
  br
@@ -57,7 +63,6 @@ form action=build_path(page.new? ? nil : page.path) method='post'
57
63
  hr
58
64
  - else
59
65
  &hidden name='version' value=page.version
60
- = flash_messages :attributes
61
66
  = page.attribute_editor
62
67
  = render_block :attributes_buttons do
63
68
  .indent
@@ -1,6 +1,6 @@
1
- - title :history_of.t(:page => page.title)
1
+ - title :history_of.t(page: page.title)
2
2
  h1= title
3
- = pagination(page, @page_count, @page_nr, :action => :history)
3
+ = pagination(page, @page_count, @page_nr, action: :history)
4
4
  table#history-table
5
5
  thead
6
6
  tr
@@ -11,10 +11,10 @@ table#history-table
11
11
  - @history.each do |version|
12
12
  tr id="version-#{version}"
13
13
  td
14
- a href=build_path(page, :version => version) = truncate(version.comment, 50)
14
+ a href=build_path(page, version: version) = truncate(version.comment, 50)
15
15
  | (
16
- a href=build_path(page, :action => 'changes'/version) = :changes.t
16
+ a href=build_path(page, action: 'changes'/version) = :changes.t
17
17
  | )
18
18
  td= truncate(version.author.name, 30)
19
19
  td= date version.date
20
- = pagination(page, @page_count, @page_nr, :action => :history)
20
+ = pagination(page, @page_count, @page_nr, action: :history)
@@ -32,4 +32,4 @@ html.no-js lang=Olelo::Config['locale'].sub('_', '-') class={page && !page.head?
32
32
  == footer
33
33
  .noprint.powered_by
34
34
  ' Powered by
35
- a href='http://github.com/minad/olelo' &#332;lelo
35
+ a href='https://github.com/minad/olelo' &#332;lelo
@@ -1,38 +1,36 @@
1
1
  - title :login.t
2
+ = flash_messages
2
3
  - signup_enabled = Olelo::Config['authentication.enable_signup'] && Olelo::User.supports?(:signup)
3
- p
4
- = signup_enabled ? tabs(:login, :signup) : tabs(:login)
5
- form action=build_path(:login) method='post'
6
- #tab-login.tab.fieldset
7
- h2 Login
8
- = flash_messages :login
9
- label for='login-user' = :user.t
10
- &text#login-user name='user'
4
+ = signup_enabled ? tabs(:login, :signup) : tabs(:login)
5
+ form action=build_path(:login) method='post'
6
+ #tab-login.tab.fieldset
7
+ h2 Login
8
+ label for='login-user' = :user.t
9
+ &text#login-user name='user'
10
+ br
11
+ label for='login-password' = :password.t
12
+ &password#login-password name='password'
13
+ br
14
+ .indent
15
+ = render_block :login_buttons do
16
+ button&submit= :login.t
17
+ br
18
+ - if signup_enabled
19
+ form action=build_path(:signup) method='post'
20
+ #tab-signup.tab.fieldset
21
+ h2= :signup.t
22
+ label for='signup-user' = :user.t
23
+ &text#signup-user name='user'
11
24
  br
12
- label for='login-password' = :password.t
13
- &password#login-password name='password'
25
+ label for='signup-password' = :password.t
26
+ &password#signup-password name='password'
27
+ br
28
+ label for='signup-confirm' = :confirm_password.t
29
+ &password#signup-confirm name='confirm'
30
+ br
31
+ label for='signup-email' = :email.t
32
+ &text#signup-email name='email'
14
33
  br
15
34
  .indent
16
- = render_block :login_buttons do
17
- button&submit= :login.t
35
+ button&submit = :signup.t
18
36
  br
19
- - if signup_enabled
20
- form action=build_path(:signup) method='post'
21
- #tab-signup.tab.fieldset
22
- h2= :signup.t
23
- = flash_messages :signup
24
- label for='signup-user' = :user.t
25
- &text#signup-user name='user'
26
- br
27
- label for='signup-password' = :password.t
28
- &password#signup-password name='password'
29
- br
30
- label for='signup-confirm' = :confirm_password.t
31
- &password#signup-confirm name='confirm'
32
- br
33
- label for='signup-email' = :email.t
34
- &text#signup-email name='email'
35
- br
36
- .indent
37
- button&submit = :signup.t
38
- br