easy_admin_ui 0.1.0
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.
- data/.gitignore +2 -0
- data/README +104 -0
- data/Rakefile +17 -0
- data/VERSION +1 -0
- data/assets/css/easy_admin_ui.css +69 -0
- data/assets/icons/classify.png +0 -0
- data/assets/icons/connect.png +0 -0
- data/assets/icons/delete.png +0 -0
- data/assets/icons/disconnect.png +0 -0
- data/assets/icons/pencil.png +0 -0
- data/assets/icons/show.png +0 -0
- data/easy_admin_ui.gemspec +56 -0
- data/lib/easy_admin_ui/core_ext.rb +93 -0
- data/lib/easy_admin_ui/tasks.rb +11 -0
- data/lib/easy_admin_ui/view_helpers.rb +86 -0
- data/lib/easy_admin_ui.rb +12 -0
- data/tasks/easy_admin_ui.rake +2 -0
- data/templates/easy_admin_ui/edit.html.erb +30 -0
- data/templates/easy_admin_ui/index.html.erb +21 -0
- data/templates/easy_admin_ui/new.html.erb +30 -0
- metadata +81 -0
data/.gitignore
ADDED
data/README
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
Description
|
2
|
+
===========
|
3
|
+
|
4
|
+
A very simple admin UI. If you need something more fancy look at ActiveScaffold.
|
5
|
+
|
6
|
+
Requirements
|
7
|
+
============
|
8
|
+
|
9
|
+
* make_resourceful
|
10
|
+
* formtastic
|
11
|
+
* will_paginate
|
12
|
+
|
13
|
+
Tested with Rails 2.3.8.
|
14
|
+
|
15
|
+
To Do
|
16
|
+
=====
|
17
|
+
|
18
|
+
Some things are currently hardwired. It assumes you have your controllers below
|
19
|
+
admin/. I.e. admin_users_path.
|
20
|
+
|
21
|
+
Installation
|
22
|
+
============
|
23
|
+
|
24
|
+
$ gem install easy_admin_ui
|
25
|
+
|
26
|
+
To use the rake tasks add:
|
27
|
+
|
28
|
+
require 'easy_admin_ui/tasks'
|
29
|
+
|
30
|
+
to your Rakefile.
|
31
|
+
|
32
|
+
How to use
|
33
|
+
==========
|
34
|
+
|
35
|
+
In your controller:
|
36
|
+
|
37
|
+
class Admin::UsersController < ActionController::Base
|
38
|
+
easy_admin :per_page => 50,
|
39
|
+
:order => 'created_at',
|
40
|
+
:page_title => 'Users',
|
41
|
+
:columns => ['Login', 'Email', 'Created'],
|
42
|
+
:show_actions => true,
|
43
|
+
:skip_new => true
|
44
|
+
end
|
45
|
+
|
46
|
+
The model is infered by the make_resourceful plugin which is why we don't need
|
47
|
+
to specify it here. However, the object(s) returned will be named @item or
|
48
|
+
@items (for :index).
|
49
|
+
|
50
|
+
Then you need a partial below users/ named '_user.html.erb':
|
51
|
+
|
52
|
+
<%=
|
53
|
+
table_row(:id => "tr_user_#{user.id}", :class => "#{cyc = cycle("even", "odd")}",
|
54
|
+
:cells => [
|
55
|
+
h(user.login),
|
56
|
+
h(user.email),
|
57
|
+
date_hm(user.created_at),
|
58
|
+
],
|
59
|
+
:actions => [
|
60
|
+
admin_edit_link(user),
|
61
|
+
admin_delete_link_with_confirmation(user)
|
62
|
+
])
|
63
|
+
-%>
|
64
|
+
|
65
|
+
Copy icons:
|
66
|
+
|
67
|
+
$ rake easy_admin_ui:copy_assets
|
68
|
+
|
69
|
+
Manually copy the sample CSS.
|
70
|
+
|
71
|
+
You need to provide the _form.html.erb partials yourself.
|
72
|
+
|
73
|
+
You can always override the default templates by providing templates yourself.
|
74
|
+
|
75
|
+
Callbacks
|
76
|
+
=========
|
77
|
+
|
78
|
+
Index page only:
|
79
|
+
|
80
|
+
_index_after_title.html.erb
|
81
|
+
_index_after_table.html.erb
|
82
|
+
|
83
|
+
New/edit pages:
|
84
|
+
|
85
|
+
_modify_after_title.html.erb
|
86
|
+
_modify_after_form.html.erb
|
87
|
+
|
88
|
+
If these exist the more specific partials below will not be rendered.
|
89
|
+
|
90
|
+
Edit page only:
|
91
|
+
|
92
|
+
_edit_after_title.html.erb
|
93
|
+
_edit_after_form.html.erb
|
94
|
+
|
95
|
+
New page only:
|
96
|
+
|
97
|
+
_new_after_title.html.erb
|
98
|
+
_new_after_form.html.erb
|
99
|
+
|
100
|
+
Will be included on all actions no matter if other partials were present or
|
101
|
+
not:
|
102
|
+
|
103
|
+
_after_title.html.erb
|
104
|
+
_after.html.erb
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "easy_admin_ui"
|
8
|
+
gem.summary = "Easy Admin UI."
|
9
|
+
gem.description = "Very simple DRY admin UI."
|
10
|
+
gem.email = "martin@wulffeld.org"
|
11
|
+
gem.homepage = "http://github.com/wulffeld/easy_admin_ui"
|
12
|
+
gem.authors = ["Martin Moen Wulffeld"]
|
13
|
+
end
|
14
|
+
Jeweler::GemcutterTasks.new
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
17
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,69 @@
|
|
1
|
+
/* Copy this to your main CSS if you like. */
|
2
|
+
|
3
|
+
/** easy start **/
|
4
|
+
table.easy {
|
5
|
+
border-collapse: normal;
|
6
|
+
margin-top: 4px;
|
7
|
+
}
|
8
|
+
|
9
|
+
table.easy th,
|
10
|
+
table.easy td {
|
11
|
+
font-family: "Helvetica Neue", Verdana, Arial, sans-serif;
|
12
|
+
font-size: 12px;
|
13
|
+
line-height: 14px;
|
14
|
+
}
|
15
|
+
|
16
|
+
table.easy td p {
|
17
|
+
margin: 0 0 10px 0;
|
18
|
+
}
|
19
|
+
|
20
|
+
table.easy th.wrap,
|
21
|
+
table.easy td.wrap {
|
22
|
+
white-space: normal;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* Header cells. */
|
26
|
+
table.easy thead th {
|
27
|
+
background-color: #E6E6E6;
|
28
|
+
color: inherit;
|
29
|
+
border: 1px solid #FFF;
|
30
|
+
padding: 3px;
|
31
|
+
}
|
32
|
+
|
33
|
+
table.easy thead td.textright {
|
34
|
+
text-align: right;
|
35
|
+
}
|
36
|
+
|
37
|
+
/* Body cells. */
|
38
|
+
table.easy tbody td.blank {
|
39
|
+
background-color: inherit;
|
40
|
+
color: inherit;
|
41
|
+
border: none;
|
42
|
+
}
|
43
|
+
|
44
|
+
table.easy tbody td {
|
45
|
+
background-color: #FFF;
|
46
|
+
color: #333;
|
47
|
+
width: auto;
|
48
|
+
border-top: 1px dotted #DDD;
|
49
|
+
padding: 4px 3px;
|
50
|
+
}
|
51
|
+
|
52
|
+
table.easy tbody td.act {
|
53
|
+
margin: 0;
|
54
|
+
padding-top: 2px;
|
55
|
+
padding-bottom: 0;
|
56
|
+
min-width: 150px;
|
57
|
+
}
|
58
|
+
|
59
|
+
table.easy th.date,
|
60
|
+
table.easy td.date {
|
61
|
+
width: 80px;
|
62
|
+
}
|
63
|
+
|
64
|
+
table.easy th.datetime,
|
65
|
+
table.easy td.datetime {
|
66
|
+
width: 110px;
|
67
|
+
}
|
68
|
+
|
69
|
+
/** easy end **/
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{easy_admin_ui}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Martin Moen Wulffeld"]
|
12
|
+
s.date = %q{2010-07-27}
|
13
|
+
s.description = %q{Very simple DRY admin UI.}
|
14
|
+
s.email = %q{martin@wulffeld.org}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"README",
|
21
|
+
"Rakefile",
|
22
|
+
"VERSION",
|
23
|
+
"assets/css/easy_admin_ui.css",
|
24
|
+
"assets/icons/classify.png",
|
25
|
+
"assets/icons/connect.png",
|
26
|
+
"assets/icons/delete.png",
|
27
|
+
"assets/icons/disconnect.png",
|
28
|
+
"assets/icons/pencil.png",
|
29
|
+
"assets/icons/show.png",
|
30
|
+
"easy_admin_ui.gemspec",
|
31
|
+
"lib/easy_admin_ui.rb",
|
32
|
+
"lib/easy_admin_ui/core_ext.rb",
|
33
|
+
"lib/easy_admin_ui/tasks.rb",
|
34
|
+
"lib/easy_admin_ui/view_helpers.rb",
|
35
|
+
"tasks/easy_admin_ui.rake",
|
36
|
+
"templates/easy_admin_ui/edit.html.erb",
|
37
|
+
"templates/easy_admin_ui/index.html.erb",
|
38
|
+
"templates/easy_admin_ui/new.html.erb"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/wulffeld/easy_admin_ui}
|
41
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
42
|
+
s.require_paths = ["lib"]
|
43
|
+
s.rubygems_version = %q{1.3.6}
|
44
|
+
s.summary = %q{Easy Admin UI.}
|
45
|
+
|
46
|
+
if s.respond_to? :specification_version then
|
47
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
|
+
s.specification_version = 3
|
49
|
+
|
50
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
51
|
+
else
|
52
|
+
end
|
53
|
+
else
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module EasyAdminUi
|
2
|
+
module CoreExt
|
3
|
+
def self.included(base)
|
4
|
+
base.extend ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
module ClassMethods
|
8
|
+
attr_accessor :options
|
9
|
+
|
10
|
+
def easy_admin(options = {})
|
11
|
+
@options = options
|
12
|
+
|
13
|
+
make_resourceful do
|
14
|
+
actions :all
|
15
|
+
|
16
|
+
response_for :index do |format|
|
17
|
+
format.html do
|
18
|
+
@options = options
|
19
|
+
override = File.join('app/views', self.controller_path, 'index.html.erb')
|
20
|
+
if File.exists?(override)
|
21
|
+
render :template => override
|
22
|
+
else
|
23
|
+
render :template => 'easy_admin_ui/index'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
response_for :show do |format|
|
29
|
+
format.html { redirect_to :action => 'index' }
|
30
|
+
end
|
31
|
+
|
32
|
+
[:new, :create_fails].each do |new_action|
|
33
|
+
response_for new_action do |format|
|
34
|
+
format.html do
|
35
|
+
override = File.join(controller_full_path, 'new.html.erb')
|
36
|
+
if File.exists?(override)
|
37
|
+
render :template => override
|
38
|
+
else
|
39
|
+
render :template => 'easy_admin_ui/new'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
[:edit, :update_fails].each do |edit_action|
|
46
|
+
response_for edit_action do |format|
|
47
|
+
format.html do
|
48
|
+
override = File.join(controller_full_path, 'edit.html.erb')
|
49
|
+
if File.exists?(override)
|
50
|
+
render :template => override
|
51
|
+
else
|
52
|
+
render :template => 'easy_admin_ui/edit'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
response_for :destroy do |format|
|
59
|
+
format.js do
|
60
|
+
render :update do |page|
|
61
|
+
page.remove "tr_#{current_model_name.underscore}_#{@item.id}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
class_eval do
|
68
|
+
def options
|
69
|
+
self.class.options
|
70
|
+
end
|
71
|
+
|
72
|
+
def current_objects
|
73
|
+
@items = current_model.paginate(:page => params[:page], :per_page => options[:per_page], :order => options[:order])
|
74
|
+
end
|
75
|
+
|
76
|
+
def current_object
|
77
|
+
@item ||= current_model.find(params[:id]) if params[:id]
|
78
|
+
@item ||= current_model.new(params[current_model_name.underscore.to_sym])
|
79
|
+
end
|
80
|
+
|
81
|
+
def instance_variable_name
|
82
|
+
'item'
|
83
|
+
end
|
84
|
+
|
85
|
+
helper_method :controller_full_path
|
86
|
+
def controller_full_path
|
87
|
+
File.join 'app/views', self.controller_path
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# require 'easy_admin_ui/tasks' in your Rakefile.
|
2
|
+
|
3
|
+
namespace :easy_admin_ui do
|
4
|
+
desc "Copies assets to public/images/icons/"
|
5
|
+
task :copy_assets do
|
6
|
+
FileUtils.mkdir_p "#{RAILS_ROOT}/public/images/icons/"
|
7
|
+
|
8
|
+
Dir.chdir(File.dirname(__FILE__) + '/../assets/')
|
9
|
+
FileUtils.cp_r(Dir.glob('icons/*.*'), "#{RAILS_ROOT}/public/images/icons/", :verbose => true)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module EasyAdminUi
|
2
|
+
module ViewHelpers
|
3
|
+
def wpaginate(collection)
|
4
|
+
will_paginate(collection, :previous_label => t('will_paginate.previous'), :next_label => t('will_paginate.next'))
|
5
|
+
end
|
6
|
+
|
7
|
+
def table_head(titles, actions, options = {:class => "easy"})
|
8
|
+
concat("<table class='#{options[:class]}' id='#{options[:id]}'>" +
|
9
|
+
content_tag(:thead,
|
10
|
+
content_tag(:tr, (
|
11
|
+
titles.map do |title, th_class|
|
12
|
+
th_class ||= []
|
13
|
+
content_tag(:th,
|
14
|
+
[
|
15
|
+
if th_class.include?('sortable')
|
16
|
+
content_tag(:div,
|
17
|
+
link_to('', '#', :class => 'sort_up') +
|
18
|
+
link_to('', '#', :class => 'sort_down'),
|
19
|
+
:class => 'sort')
|
20
|
+
else
|
21
|
+
nil
|
22
|
+
end,
|
23
|
+
title
|
24
|
+
].compact.join(''),
|
25
|
+
:class => th_class)
|
26
|
+
end
|
27
|
+
).join('') + (actions ? content_tag(:th, '', :class => 'actions') : '')
|
28
|
+
)
|
29
|
+
)
|
30
|
+
)
|
31
|
+
options[:body_id] ? concat("<tbody id=\"#{options[:body_id]}\">") : concat('<tbody>')
|
32
|
+
yield
|
33
|
+
concat('</tbody></table>')
|
34
|
+
end
|
35
|
+
|
36
|
+
def table_row(options = {})
|
37
|
+
options[:actions] ||= []
|
38
|
+
|
39
|
+
content_tag(:tr,
|
40
|
+
[
|
41
|
+
# Could pass:
|
42
|
+
#
|
43
|
+
# [category.created_at, {:class => '', :onmouseover => "javascript: blah"}]
|
44
|
+
# [category.created_at, 'my_class_name']
|
45
|
+
#
|
46
|
+
options[:cells].map do |txt, cell_opts|
|
47
|
+
cell_opts = {:class => cell_opts} if cell_opts.is_a?(String)
|
48
|
+
cell_opts ||= {}
|
49
|
+
content_tag(:td, txt, cell_opts)
|
50
|
+
end,
|
51
|
+
options[:actions].blank? ? '' : content_tag(:td, options[:actions].join(' '), :class => "act")
|
52
|
+
].join(' '),
|
53
|
+
:id => options[:id], :class => ["#{cyc = cycle("even", "odd")}", options[:class]].join(' '))
|
54
|
+
end
|
55
|
+
|
56
|
+
def right_align(content)
|
57
|
+
[content, 'aright']
|
58
|
+
end
|
59
|
+
|
60
|
+
def admin_show_link(item)
|
61
|
+
link_to(image_tag("/images/icons/show.png"), :action => 'show', :id => item)
|
62
|
+
end
|
63
|
+
|
64
|
+
def admin_new_link
|
65
|
+
content_tag(:span, ' - ' + link_to('New', :action => 'new'))
|
66
|
+
end
|
67
|
+
|
68
|
+
def admin_edit_link(item)
|
69
|
+
link_to(image_tag("/images/icons/pencil.png"), :action => 'edit', :id => item)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Use if below /admin/.
|
73
|
+
def admin_delete_link_with_confirmation(obj, delete_path=nil)
|
74
|
+
delete_path ||= eval("admin_#{obj.class.to_s.underscore}_path(obj)")
|
75
|
+
delete_link_with_confirmation(obj, delete_path)
|
76
|
+
end
|
77
|
+
|
78
|
+
def delete_link_with_confirmation(obj, delete_path=nil)
|
79
|
+
delete_path ||= eval("#{obj.class.to_s.underscore.singularize}_path(obj)")
|
80
|
+
link_to_function(image_tag('/images/icons/delete.png'), "$('cnf_#{obj.id}').show();") + ' ' +
|
81
|
+
raw('<span id="cnf_' + obj.id.to_s + '" class="conf_link" style="display: none;">Are you sure? ') +
|
82
|
+
link_to_remote("Yes", :url => delete_path, :method => :delete) + ' ' +
|
83
|
+
link_to_function("No", "$('cnf_#{obj.id}').hide();") + raw('</span>')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'easy_admin_ui/core_ext'
|
2
|
+
require 'easy_admin_ui/view_helpers'
|
3
|
+
|
4
|
+
ActionController::Base.view_paths = ["app/views", File.dirname(__FILE__) + "/../templates"]
|
5
|
+
|
6
|
+
ActionController::Base.class_eval do
|
7
|
+
include EasyAdminUi::CoreExt
|
8
|
+
end
|
9
|
+
|
10
|
+
ActionView::Base.class_eval do
|
11
|
+
include EasyAdminUi::ViewHelpers
|
12
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<h1>Editing <%= @item.class.to_s.tableize.singularize.humanize %></h1>
|
2
|
+
|
3
|
+
<% if File.exists?(File.join(controller_full_path, '_modify_after_title.html.erb')) -%>
|
4
|
+
<%= render :partial => 'modify_after_title' %>
|
5
|
+
<% elsif File.exists?(File.join(controller_full_path, '_edit_after_title.html.erb')) -%>
|
6
|
+
<%= render :partial => 'edit_after_title' %>
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<% if File.exists?(File.join(controller_full_path, '_after_title.html.erb')) -%>
|
10
|
+
<%= render :partial => 'after_title' %>
|
11
|
+
<% end -%>
|
12
|
+
|
13
|
+
<% semantic_form_for(@item, :url => eval("admin_#{@item.class.to_s.underscore}_path(@item)"), :html => { :multipart => true }) do |f| %>
|
14
|
+
<% f.inputs do %>
|
15
|
+
<%= render :partial => 'form', :locals => {:f => f} %>
|
16
|
+
<% end -%>
|
17
|
+
<% f.buttons do %>
|
18
|
+
<%= f.commit_button 'Submit' %>
|
19
|
+
<% end -%>
|
20
|
+
<% end -%>
|
21
|
+
|
22
|
+
<% if File.exists?(File.join(controller_full_path, '_modify_after_form.html.erb')) -%>
|
23
|
+
<%= render :partial => 'modify_after_form' %>
|
24
|
+
<% elsif File.exists?(File.join(controller_full_path, '_edit_after_form.html.erb')) -%>
|
25
|
+
<%= render :partial => 'edit_after_form' %>
|
26
|
+
<% end -%>
|
27
|
+
|
28
|
+
<% if File.exists?(File.join(controller_full_path, '_after_form.html.erb')) -%>
|
29
|
+
<%= render :partial => 'after_form' %>
|
30
|
+
<% end -%>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<h1><%= @options[:page_title] %> <%= admin_new_link unless @options[:skip_new] %></h1>
|
2
|
+
|
3
|
+
<% if File.exists?(File.join(controller_full_path, '_index_after_title.html.erb')) -%>
|
4
|
+
<%= render :partial => 'index_after_title' %>
|
5
|
+
<% elsif File.exists?(File.join(controller_full_path, '_after_title.html.erb')) -%>
|
6
|
+
<%= render :partial => 'after_title' %>
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<%= wpaginate @items if @items.respond_to?(:total_pages) %>
|
10
|
+
|
11
|
+
<% table_head(@options[:columns], @options[:actions]) do %>
|
12
|
+
<%= render @items %>
|
13
|
+
<% end -%>
|
14
|
+
|
15
|
+
<%= wpaginate @items if @items.respond_to?(:total_pages) %>
|
16
|
+
|
17
|
+
<% if File.exists?(File.join(controller_full_path, '_index_after_table.html.erb')) -%>
|
18
|
+
<%= render :partial => 'index_after_table' %>
|
19
|
+
<% elsif File.exists?(File.join(controller_full_path, '_after_table.html.erb')) -%>
|
20
|
+
<%= render :partial => 'after_table' %>
|
21
|
+
<% end -%>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<h1>New <%= @item.class.to_s.tableize.singularize.humanize %></h1>
|
2
|
+
|
3
|
+
<% if File.exists?(File.join(controller_full_path, '_modify_after_title.html.erb')) -%>
|
4
|
+
<%= render :partial => 'modify_after_title' %>
|
5
|
+
<% elsif File.exists?(File.join(controller_full_path, '_new_after_title.html.erb')) -%>
|
6
|
+
<%= render :partial => 'new_after_title' %>
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<% if File.exists?(File.join(controller_full_path, '_after_title.html.erb')) -%>
|
10
|
+
<%= render :partial => 'after_title' %>
|
11
|
+
<% end -%>
|
12
|
+
|
13
|
+
<% semantic_form_for(@item, :url => eval("admin_#{@item.class.to_s.underscore.pluralize}_path"), :html => { :multipart => true }) do |f| %>
|
14
|
+
<% f.inputs do %>
|
15
|
+
<%= render :partial => 'form', :locals => {:f => f} %>
|
16
|
+
<% end -%>
|
17
|
+
<% f.buttons do %>
|
18
|
+
<%= f.commit_button 'Submit' %>
|
19
|
+
<% end -%>
|
20
|
+
<% end -%>
|
21
|
+
|
22
|
+
<% if File.exists?(File.join(controller_full_path, '_modify_after_form.html.erb')) -%>
|
23
|
+
<%= render :partial => 'modify_after_form' %>
|
24
|
+
<% elsif File.exists?(File.join(controller_full_path, '_new_after_form.html.erb')) -%>
|
25
|
+
<%= render :partial => 'new_after_form' %>
|
26
|
+
<% end -%>
|
27
|
+
|
28
|
+
<% if File.exists?(File.join(controller_full_path, '_after_form.html.erb')) -%>
|
29
|
+
<%= render :partial => 'after_form' %>
|
30
|
+
<% end -%>
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: easy_admin_ui
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 0.1.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Martin Moen Wulffeld
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-07-27 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: Very simple DRY admin UI.
|
22
|
+
email: martin@wulffeld.org
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files:
|
28
|
+
- README
|
29
|
+
files:
|
30
|
+
- .gitignore
|
31
|
+
- README
|
32
|
+
- Rakefile
|
33
|
+
- VERSION
|
34
|
+
- assets/css/easy_admin_ui.css
|
35
|
+
- assets/icons/classify.png
|
36
|
+
- assets/icons/connect.png
|
37
|
+
- assets/icons/delete.png
|
38
|
+
- assets/icons/disconnect.png
|
39
|
+
- assets/icons/pencil.png
|
40
|
+
- assets/icons/show.png
|
41
|
+
- easy_admin_ui.gemspec
|
42
|
+
- lib/easy_admin_ui.rb
|
43
|
+
- lib/easy_admin_ui/core_ext.rb
|
44
|
+
- lib/easy_admin_ui/tasks.rb
|
45
|
+
- lib/easy_admin_ui/view_helpers.rb
|
46
|
+
- tasks/easy_admin_ui.rake
|
47
|
+
- templates/easy_admin_ui/edit.html.erb
|
48
|
+
- templates/easy_admin_ui/index.html.erb
|
49
|
+
- templates/easy_admin_ui/new.html.erb
|
50
|
+
has_rdoc: true
|
51
|
+
homepage: http://github.com/wulffeld/easy_admin_ui
|
52
|
+
licenses: []
|
53
|
+
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options:
|
56
|
+
- --charset=UTF-8
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
version: "0"
|
73
|
+
requirements: []
|
74
|
+
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 1.3.6
|
77
|
+
signing_key:
|
78
|
+
specification_version: 3
|
79
|
+
summary: Easy Admin UI.
|
80
|
+
test_files: []
|
81
|
+
|