typus 3.1.0 → 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +22 -1
- data/Gemfile +2 -0
- data/README.md +6 -2
- data/Rakefile +1 -6
- data/app/assets/javascripts/typus/jquery.application.js +0 -1
- data/app/assets/stylesheets/typus/hacks.css +9 -0
- data/app/controllers/admin/base_controller.rb +0 -2
- data/app/controllers/admin/resources_controller.rb +4 -4
- data/app/helpers/admin/resources/data_types/has_and_belongs_to_many_helper.rb +6 -6
- data/app/helpers/admin/resources/data_types/string_helper.rb +1 -0
- data/app/helpers/admin/resources/table_helper.rb +1 -1
- data/app/views/admin/dashboard/_sidebar.html.erb +2 -2
- data/app/views/admin/templates/_has_and_belongs_to_many.html.erb +2 -2
- data/config/routes.rb +10 -5
- data/lib/generators/templates/config/initializers/typus.rb +3 -0
- data/lib/typus.rb +7 -4
- data/lib/typus/configuration.rb +5 -3
- data/lib/typus/controller/headless.rb +2 -2
- data/lib/typus/controller/trash.rb +3 -1
- data/lib/typus/version.rb +1 -1
- data/typus.gemspec +1 -1
- metadata +11 -15
- data/.gitignore +0 -15
- data/.travis.yml +0 -12
- data/Guardfile +0 -11
- data/app/views/admin/base/user_guide.html.erb +0 -87
data/CHANGELOG
CHANGED
@@ -1,6 +1,27 @@
|
|
1
1
|
= 3.2.0 (unreleased)
|
2
2
|
|
3
|
-
= 3.1.
|
3
|
+
= 3.1.1 (unreleased)
|
4
|
+
|
5
|
+
* [CHANGED] Removed user guide. Docs can now be found at http://docs.typuscmf.com/
|
6
|
+
|
7
|
+
* [NEW] New configuration setting which allows serving Typus from a subdomain. (42b5d8ae)
|
8
|
+
|
9
|
+
* [FIXED] HABTM associations were not working as expected when using namespaced
|
10
|
+
models.
|
11
|
+
|
12
|
+
* [CHANGED] Configuration can be read from subfolders so you can organize better
|
13
|
+
your models. I'm starting to use a file per model and I'd recommend you start
|
14
|
+
using it ... (8a3fc09f)
|
15
|
+
|
16
|
+
* [FIXED] Helper Method `display_virtual` was not defined. (2b7e1948)
|
17
|
+
|
18
|
+
* [FIXED] Do not show Trash link when user can't edit items.
|
19
|
+
|
20
|
+
* [CHANGED] Updated Rubies list for Travis-CI.
|
21
|
+
|
22
|
+
* [CHANGED] Default development/test database is now **Postgresql**.
|
23
|
+
|
24
|
+
= 3.1.0
|
4
25
|
|
5
26
|
* [NEW] Filter with scopes.
|
6
27
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -48,9 +48,14 @@ To test clone the git repo and run the following commands:
|
|
48
48
|
$ bundle install --path vendor/bundle
|
49
49
|
$ bundle exec rake
|
50
50
|
|
51
|
+
**Note:** In `OSX Lion` it's possible you need to create a `postgres`
|
52
|
+
user to be able to run tests.
|
53
|
+
|
54
|
+
CREATE USER postgres SUPERUSER;
|
55
|
+
|
51
56
|
## Links
|
52
57
|
|
53
|
-
- [Documentation](https://
|
58
|
+
- [Documentation](https://docs.typuscmf.com/)
|
54
59
|
- [Issues](https://github.com/typus/typus/issues)
|
55
60
|
- [Source Code][typus] and [RubyGems][typus_gem]
|
56
61
|
- [Mailing List](http://groups.google.com/group/typus)
|
@@ -63,7 +68,6 @@ Typus is released under the MIT license.
|
|
63
68
|
|
64
69
|
[typus]: http://github.com/typus/typus
|
65
70
|
[typus_demo]: http://demo.typuscmf.com/
|
66
|
-
[typus_demo_code]: https://github.com/typus/demo
|
67
71
|
[typus_locales]: https://github.com/typus/typus/tree/master/config/locales
|
68
72
|
[typus_gem]: http://rubygems.org/gems/typus
|
69
73
|
[paperclip]: http://rubygems.org/gems/paperclip
|
data/Rakefile
CHANGED
@@ -18,12 +18,7 @@ require 'rake/testtask'
|
|
18
18
|
Rake::TestTask.new(:test) do |t|
|
19
19
|
t.libs << 'lib'
|
20
20
|
t.libs << 'test'
|
21
|
-
|
22
|
-
t.test_files = FileList['test/app/controllers/**/*_test.rb',
|
23
|
-
'test/app/models/**/*_test.rb',
|
24
|
-
'test/app/mailers/**/*_test.rb',
|
25
|
-
'test/config/*_test.rb',
|
26
|
-
'test/lib/**/*_test.rb']
|
21
|
+
t.test_files = FileList['test/**/*_test.rb']
|
27
22
|
t.verbose = false
|
28
23
|
end
|
29
24
|
|
@@ -17,7 +17,7 @@ class Admin::ResourcesController < Admin::BaseController
|
|
17
17
|
get_objects
|
18
18
|
|
19
19
|
custom_actions_for(:index).each do |action|
|
20
|
-
prepend_resources_action(action.titleize, {:action => action, :id => nil}
|
20
|
+
prepend_resources_action(action.titleize, {:action => action, :id => nil})
|
21
21
|
end
|
22
22
|
|
23
23
|
respond_to do |format|
|
@@ -64,7 +64,7 @@ class Admin::ResourcesController < Admin::BaseController
|
|
64
64
|
|
65
65
|
def edit
|
66
66
|
custom_actions_for(:edit).each do |action|
|
67
|
-
prepend_resources_action(action.titleize, {:action => action, :id => @item}
|
67
|
+
prepend_resources_action(action.titleize, {:action => action, :id => @item})
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -72,7 +72,7 @@ class Admin::ResourcesController < Admin::BaseController
|
|
72
72
|
check_resource_ownership if @resource.typus_options_for(:only_user_items)
|
73
73
|
|
74
74
|
if admin_user.can?('edit', @resource)
|
75
|
-
prepend_resources_action("Edit", {:action => 'edit', :id => @item}
|
75
|
+
prepend_resources_action("Edit", {:action => 'edit', :id => @item})
|
76
76
|
end
|
77
77
|
|
78
78
|
respond_to do |format|
|
@@ -215,7 +215,7 @@ class Admin::ResourcesController < Admin::BaseController
|
|
215
215
|
def set_default_action
|
216
216
|
default_action = @resource.typus_options_for(:default_action_on_item)
|
217
217
|
action = admin_user.can?('edit', @resource.model_name) ? default_action : "show"
|
218
|
-
|
218
|
+
prepend_resource_action(action.titleize, {:action => action})
|
219
219
|
end
|
220
220
|
|
221
221
|
def custom_actions_for(action)
|
@@ -7,12 +7,12 @@ module Admin::Resources::DataTypes::HasAndBelongsToManyHelper
|
|
7
7
|
alias_method :table_has_many_field, :table_has_and_belongs_to_many_field
|
8
8
|
|
9
9
|
def typus_has_and_belongs_to_many_field(attribute, form)
|
10
|
-
klass = attribute.
|
11
|
-
resource_ids = "#{attribute.singularize}_ids"
|
10
|
+
klass = @resource.reflect_on_association(attribute.to_sym).class_name.constantize
|
12
11
|
|
12
|
+
resource_ids = "#{attribute.singularize}_ids"
|
13
13
|
html_options = { :disabled => attribute_disabled?(resource_ids.to_sym) }
|
14
|
-
|
15
|
-
options = { :attribute => "#{
|
14
|
+
model = @resource.name.downcase.gsub("::", "_")
|
15
|
+
options = { :attribute => "#{model}_#{attribute}" }
|
16
16
|
|
17
17
|
label_text = @resource.human_attribute_name(attribute)
|
18
18
|
if (text = build_label_text_for_has_and_belongs_to_many(klass, html_options, options))
|
@@ -20,10 +20,10 @@ module Admin::Resources::DataTypes::HasAndBelongsToManyHelper
|
|
20
20
|
end
|
21
21
|
|
22
22
|
locals = { :attribute => attribute,
|
23
|
-
:attribute_id => "#{
|
23
|
+
:attribute_id => "#{model}_#{attribute}",
|
24
24
|
:related_klass => klass,
|
25
25
|
:related_items => klass.all,
|
26
|
-
:related_ids => "#{
|
26
|
+
:related_ids => "#{model}[#{resource_ids}][]",
|
27
27
|
:values => @item.send(attribute),
|
28
28
|
:form => form,
|
29
29
|
:label_text => label_text.html_safe,
|
@@ -9,6 +9,7 @@ module Admin::Resources::DataTypes::StringHelper
|
|
9
9
|
alias_method :display_integer, :display_string
|
10
10
|
alias_method :display_position, :display_string
|
11
11
|
alias_method :display_text, :display_string
|
12
|
+
alias_method :display_virtual, :display_string
|
12
13
|
|
13
14
|
def string_filter(filter)
|
14
15
|
values = set_context.send(filter.to_s.pluralize).to_a
|
@@ -50,7 +50,7 @@ module Admin::Resources::TableHelper
|
|
50
50
|
resource_actions.map do |body, url, options, proc|
|
51
51
|
next if proc && proc.respond_to?(:call) && proc.call(item) == false
|
52
52
|
{ :message => Typus::I18n.t(body),
|
53
|
-
:url =>
|
53
|
+
:url => { :controller => "/admin/#{model.to_resource}", :id => item.id }.merge(params.dup.cleanup.merge(url)),
|
54
54
|
:options => options }
|
55
55
|
end
|
56
56
|
end
|
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
<%
|
4
4
|
mailing_list = link_to('mailing list', 'http://groups.google.com/group/typus')
|
5
|
-
user_guide = link_to('user guide',
|
5
|
+
user_guide = link_to('user guide', 'http://docs.typuscmf.com/')
|
6
6
|
%>
|
7
7
|
|
8
8
|
<p>If you need help don't hesitate in joining the <%= mailing_list %> or use
|
9
|
-
the
|
9
|
+
the <%= user_guide %>.</p>
|
10
10
|
|
11
11
|
<p>Replace this sidebar dropping a file named <code>_sidebar.html.erb</code>
|
12
12
|
on the <code>app/views/admin/dashboard</code> folder.</p>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<li id="<%= attribute_id %>">
|
1
|
+
<li id="<%= attribute_id %>_field">
|
2
2
|
<%= form.label attribute, label_text %>
|
3
3
|
<% if related_items.any? %>
|
4
4
|
<%= hidden_field_tag related_ids %>
|
5
5
|
<%= select_tag related_ids,
|
6
6
|
options_from_collection_for_select(related_items, "id", "to_label", values.map(&:id)),
|
7
7
|
html_options.merge(:multiple => true,
|
8
|
-
:id =>
|
8
|
+
:id => attribute_id,
|
9
9
|
:class => "chzn-select",
|
10
10
|
:style => "width: 550px;",
|
11
11
|
"data-placeholder" => Typus::I18n.t("Select Some Options")) %>
|
data/config/routes.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
|
3
|
-
|
3
|
+
routes_block = lambda do
|
4
4
|
|
5
|
-
|
5
|
+
dashboard = Typus.subdomain ? "/dashboard" : "/admin/dashboard"
|
6
6
|
|
7
|
+
match "/" => redirect(dashboard)
|
7
8
|
match "dashboard" => "dashboard#index", :as => "dashboard_index"
|
8
9
|
match "dashboard/:application" => "dashboard#show", :as => "dashboard"
|
9
10
|
|
10
|
-
match "user_guide" => "base#user_guide"
|
11
|
-
|
12
11
|
if Typus.authentication == :session
|
13
12
|
resource :session, :only => [:new, :create], :controller => :session do
|
14
13
|
get :destroy, :as => "destroy"
|
@@ -29,7 +28,13 @@ Rails.application.routes.draw do
|
|
29
28
|
Typus.resources.map { |i| i.underscore }.each do |resource|
|
30
29
|
match "#{resource}(/:action(/:id))(.:format)", :controller => resource
|
31
30
|
end
|
32
|
-
|
33
31
|
end
|
34
32
|
|
33
|
+
if Typus.subdomain
|
34
|
+
constraints :subdomain => Typus.subdomain do
|
35
|
+
namespace :admin, :path => "", &routes_block
|
36
|
+
end
|
37
|
+
else
|
38
|
+
scope "admin", {:module => :admin, :as => "admin"}, &routes_block
|
39
|
+
end
|
35
40
|
end
|
@@ -29,6 +29,9 @@ Typus.setup do |config|
|
|
29
29
|
# config.username = "admin"
|
30
30
|
# config.password = "columbia"
|
31
31
|
|
32
|
+
# Define subdomain to use instead of additional path
|
33
|
+
# config.subdomain = "admin"
|
34
|
+
|
32
35
|
# Pagination options: These options are passed to `kaminari`.
|
33
36
|
# config.pagination = { :previous_label => "← " + Typus::I18n.t("Previous"),
|
34
37
|
# :next_label => Typus::I18n.t("Next") + " →" }
|
data/lib/typus.rb
CHANGED
@@ -65,6 +65,9 @@ module Typus
|
|
65
65
|
mattr_accessor :username
|
66
66
|
@@username = "admin"
|
67
67
|
|
68
|
+
mattr_accessor :subdomain
|
69
|
+
@@subdomain = nil
|
70
|
+
|
68
71
|
##
|
69
72
|
# Pagination options passed to Kaminari helper.
|
70
73
|
#
|
@@ -220,14 +223,14 @@ module Typus
|
|
220
223
|
end
|
221
224
|
|
222
225
|
def model_configuration_files
|
223
|
-
app = Typus.root.join("*.yml")
|
224
|
-
plugins = Rails.root.join("vendor", "plugins", "*", "config", "typus", "*.yml")
|
226
|
+
app = Typus.root.join("**", "*.yml")
|
227
|
+
plugins = Rails.root.join("vendor", "plugins", "*", "config", "typus", "**", "*.yml")
|
225
228
|
Dir[app, plugins].reject { |f| f.match(/_roles.yml/) }.sort
|
226
229
|
end
|
227
230
|
|
228
231
|
def role_configuration_files
|
229
|
-
app = Typus.root.join("*_roles.yml")
|
230
|
-
plugins = Rails.root.join("vendor", "plugins", "*", "config", "typus", "*_roles.yml")
|
232
|
+
app = Typus.root.join("**", "*_roles.yml")
|
233
|
+
plugins = Rails.root.join("vendor", "plugins", "*", "config", "typus", "**", "*_roles.yml")
|
231
234
|
Dir[app, plugins].sort
|
232
235
|
end
|
233
236
|
|
data/lib/typus/configuration.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
1
3
|
module Typus
|
2
4
|
module Configuration
|
3
5
|
|
@@ -6,7 +8,7 @@ module Typus
|
|
6
8
|
@@config = {}
|
7
9
|
|
8
10
|
Typus.model_configuration_files.each do |file|
|
9
|
-
if data = YAML::
|
11
|
+
if data = YAML::load(ERB.new(File.read(file)).result)
|
10
12
|
@@config.merge!(data)
|
11
13
|
end
|
12
14
|
end
|
@@ -20,7 +22,7 @@ module Typus
|
|
20
22
|
@@roles = {}
|
21
23
|
|
22
24
|
Typus.role_configuration_files.each do |file|
|
23
|
-
if data = YAML::
|
25
|
+
if data = YAML::load(ERB.new(File.read(file)).result)
|
24
26
|
data.compact.each do |key, value|
|
25
27
|
@@roles[key] ? @@roles[key].merge!(value) : (@@roles[key] = value)
|
26
28
|
end
|
@@ -32,4 +34,4 @@ module Typus
|
|
32
34
|
@@roles = {}
|
33
35
|
|
34
36
|
end
|
35
|
-
end
|
37
|
+
end
|
@@ -10,12 +10,12 @@ module Typus
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def set_resources_action_for_headless_on_index
|
13
|
-
add_resources_action("Add New", {:action => "new"}
|
13
|
+
add_resources_action("Add New", {:action => "new"})
|
14
14
|
end
|
15
15
|
private :set_resources_action_for_headless_on_index
|
16
16
|
|
17
17
|
def set_resources_action_for_headless
|
18
|
-
add_resources_action("All Entries", {:action => 'index', :id => nil}
|
18
|
+
add_resources_action("All Entries", {:action => 'index', :id => nil})
|
19
19
|
end
|
20
20
|
private :set_resources_action_for_headless
|
21
21
|
|
@@ -13,7 +13,9 @@ module Typus
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def set_predefined_filter_for_trash
|
16
|
-
|
16
|
+
if admin_user.can?('edit', @resource.model_name)
|
17
|
+
add_predefined_filter("Trash", "trash", "deleted")
|
18
|
+
end
|
17
19
|
end
|
18
20
|
private :set_predefined_filter_for_trash
|
19
21
|
|
data/lib/typus/version.rb
CHANGED
data/typus.gemspec
CHANGED
@@ -7,7 +7,7 @@ require "typus/version"
|
|
7
7
|
|
8
8
|
files = `git ls-files`.split("\n")
|
9
9
|
test_files = `git ls-files -- test/*`.split("\n")
|
10
|
-
ignores = `git ls-files --
|
10
|
+
ignores = `git ls-files -- doc/* Guardfile .travis.yml .gitignor .travis.yml .gitignore`.split("\n")
|
11
11
|
|
12
12
|
# Describe your gem and declare its dependencies:
|
13
13
|
Gem::Specification.new do |s|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-08 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jquery-rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70333450722940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70333450722940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: kaminari
|
27
|
-
requirement: &
|
27
|
+
requirement: &70333450722120 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70333450722120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70333450720960 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 3.1.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70333450720960
|
47
47
|
description: Ruby on Rails Admin Panel (Engine) to allow trusted users edit structured
|
48
48
|
content.
|
49
49
|
email:
|
@@ -52,11 +52,8 @@ executables: []
|
|
52
52
|
extensions: []
|
53
53
|
extra_rdoc_files: []
|
54
54
|
files:
|
55
|
-
- .gitignore
|
56
|
-
- .travis.yml
|
57
55
|
- CHANGELOG
|
58
56
|
- Gemfile
|
59
|
-
- Guardfile
|
60
57
|
- MIT-LICENSE
|
61
58
|
- README.md
|
62
59
|
- Rakefile
|
@@ -111,7 +108,6 @@ files:
|
|
111
108
|
- app/mailers/admin/mailer.rb
|
112
109
|
- app/views/admin/account/forgot_password.html.erb
|
113
110
|
- app/views/admin/account/new.html.erb
|
114
|
-
- app/views/admin/base/user_guide.html.erb
|
115
111
|
- app/views/admin/dashboard/_sidebar.html.erb
|
116
112
|
- app/views/admin/dashboard/index.html.erb
|
117
113
|
- app/views/admin/dashboard/styles.html.erb
|
@@ -320,7 +316,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
320
316
|
version: '0'
|
321
317
|
segments:
|
322
318
|
- 0
|
323
|
-
hash:
|
319
|
+
hash: 431185922972537498
|
324
320
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
325
321
|
none: false
|
326
322
|
requirements:
|
@@ -329,10 +325,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
329
325
|
version: '0'
|
330
326
|
segments:
|
331
327
|
- 0
|
332
|
-
hash:
|
328
|
+
hash: 431185922972537498
|
333
329
|
requirements: []
|
334
330
|
rubyforge_project: typus
|
335
|
-
rubygems_version: 1.8.
|
331
|
+
rubygems_version: 1.8.7
|
336
332
|
signing_key:
|
337
333
|
specification_version: 3
|
338
334
|
summary: Effortless backend interface for Ruby on Rails applications. (Admin scaffold
|
data/.gitignore
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
.bundle/
|
2
|
-
log/*.log
|
3
|
-
pkg/
|
4
|
-
|
5
|
-
test/dummy/config/email.yml
|
6
|
-
test/dummy/config/mongoid.yml
|
7
|
-
test/dummy/db/*.sqlite3
|
8
|
-
test/dummy/log/*.log
|
9
|
-
test/dummy/public/system/
|
10
|
-
test/dummy/tmp/
|
11
|
-
|
12
|
-
vendor/bundle
|
13
|
-
|
14
|
-
# This is a RubyGem so there's no need to keep the `Gemfile.lock`.
|
15
|
-
Gemfile.lock
|
data/.travis.yml
DELETED
data/Guardfile
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
# A sample Guardfile
|
2
|
-
# More info at https://github.com/guard/guard#readme
|
3
|
-
|
4
|
-
guard 'livereload' do
|
5
|
-
watch(%r{app/.+\.(erb|haml)})
|
6
|
-
watch(%r{app/helpers/.+\.rb})
|
7
|
-
watch(%r{(public/|app/assets).+\.(css|js|html)})
|
8
|
-
watch(%r{(app/assets/.+\.css)\.s[ac]ss}) { |m| m[1] }
|
9
|
-
watch(%r{(app/assets/.+\.js)\.coffee}) { |m| m[1] }
|
10
|
-
watch(%r{config/locales/.+\.yml})
|
11
|
-
end
|
@@ -1,87 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
rails = "http://rubyonrails.org/"
|
3
|
-
typus = "http://core.typuscmf.com/"
|
4
|
-
%>
|
5
|
-
|
6
|
-
<% content_for :main_grid do %>
|
7
|
-
<a name="introduction"></a>
|
8
|
-
|
9
|
-
<h2>Introduction</h2>
|
10
|
-
|
11
|
-
<p>This website is powered by <%= link_to "Ruby on Rails", rails %> and
|
12
|
-
<%= link_to "Typus", typus %>.</p>
|
13
|
-
|
14
|
-
<p>With <%= link_to "Typus", typus %>, also known as the application backend
|
15
|
-
or admin interface, you'll be able to update your application contents and
|
16
|
-
perform the most common operations for the site maintenance.</p>
|
17
|
-
|
18
|
-
<p>You can get more information at <%= link_to typus, typus %>.</p>
|
19
|
-
|
20
|
-
<a name="basics"></a>
|
21
|
-
|
22
|
-
<h2>Basic Actions</h2>
|
23
|
-
|
24
|
-
<h3>Create Entries</h3>
|
25
|
-
|
26
|
-
<p>To create a new entry:</p>
|
27
|
-
|
28
|
-
<ul>
|
29
|
-
<li>Click on entries tab.</li>
|
30
|
-
<li>Click "Add New" sub tab.</li>
|
31
|
-
<li>Start filling in the blanks.</li>
|
32
|
-
<li>When you are ready, click "Save Entry".</li>
|
33
|
-
</ul>
|
34
|
-
|
35
|
-
<h3>Editing & Updating Entries</h3>
|
36
|
-
|
37
|
-
<p>To edit entries:</p>
|
38
|
-
|
39
|
-
<ul>
|
40
|
-
<li>Click on entries tab.</li>
|
41
|
-
<li>You'll see a list of entries, if you have already create some.</li>
|
42
|
-
<li>Click on "Edit".</li>
|
43
|
-
<li>Edit the entry.</li>
|
44
|
-
<li>When you are ready, click "Update Entry".</li>
|
45
|
-
</ul>
|
46
|
-
|
47
|
-
<h3>Removing Entries</h3>
|
48
|
-
|
49
|
-
<p>To remove entries:</p>
|
50
|
-
|
51
|
-
<ul>
|
52
|
-
<li>Click on entries tab.</li>
|
53
|
-
<li>You'll see a list of entries, if you have already create some.</li>
|
54
|
-
<li>Click on "Trash".</li>
|
55
|
-
<li>Click "Ok" on the dialog to confirm you want to remove the entry.</li>
|
56
|
-
</ul>
|
57
|
-
|
58
|
-
<p>Removing entries will be only available if you have permissions to do so.</p>
|
59
|
-
|
60
|
-
<a name="registered-users"></a>
|
61
|
-
|
62
|
-
<h2>Registered Users</h2>
|
63
|
-
|
64
|
-
<p>Registered users can do a variety of different things on a <strong>Typus</strong>
|
65
|
-
driven site. The various elements available to the user are determined by their
|
66
|
-
user level.</p>
|
67
|
-
|
68
|
-
<p>When <code>:session</code> authentication is enabled <strong>Typus</strong>
|
69
|
-
will enable a a default role which will allow registered users perform all kind
|
70
|
-
of operations on entries: create, read, update and destroy.</p>
|
71
|
-
|
72
|
-
<p>It's usually recommended having an extra role which some restrictions.</p>
|
73
|
-
<% end %>
|
74
|
-
|
75
|
-
<div class="grid_2">
|
76
|
-
<h2>User Guide</h2>
|
77
|
-
|
78
|
-
<ul>
|
79
|
-
<li><%= link_to "Introduction", "#introduction" %></li>
|
80
|
-
<li><%= link_to "Basics", "#basics" %></li>
|
81
|
-
<li><%= link_to "Registered Users", "#registered-users" %></li>
|
82
|
-
</ul>
|
83
|
-
</div>
|
84
|
-
|
85
|
-
<div class="grid_8">
|
86
|
-
<%= yield :main_grid %>
|
87
|
-
</div>
|