databrowser 0.9 → 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.
@@ -4,10 +4,12 @@ module DataBrowser
4
4
  protect_from_forgery :secret => Time.now.to_i.to_s
5
5
  before_filter :load_models, :authenticate
6
6
 
7
- helper_method :current_model, :current_model_id
7
+ include DataBrowser::Helpers
8
8
 
9
9
  # all the work here is being done by :load_models
10
10
  def index; end
11
+ def new; end
12
+ def edit; end
11
13
 
12
14
  def browse
13
15
  params[:select] ||= current_model.column_names
@@ -25,38 +27,25 @@ module DataBrowser
25
27
  def empty
26
28
  current_model.delete_all
27
29
  flash[:notice] = "#{current_model.table_name} model was emptied"
28
- redirect_to :action => "index"
29
- end
30
-
31
- def new
32
- @obj = current_model.new
33
- end
34
-
35
- def edit
36
- @obj = current_model.find(params[:id])
30
+ redirect_to data_browser_home_url()
37
31
  end
38
32
 
39
33
  def destroy
40
- @obj = current_model.find(params[:id])
41
- @obj.destroy()
34
+ current_object.delete_all(current_object.attributes)
42
35
  flash[:notice] = "#{current_model.table_name} #{@obj.to_param} successfuly deleted!"
43
- redirect_to :action => "browse", :model => current_model_id
36
+ redirect_to data_browser_model_url(:model => current_model_id)
44
37
  end
45
38
 
46
39
  def update
47
- @obj = current_model.find(params[:id])
48
- @obj.update_attributes(params[current_model.to_s.underscore])
49
-
40
+ current_model.update_all(data_from_params, current_object.attributes)
50
41
  flash[:notice] = "#{current_model.table_name} #{@obj.to_param} successfuly saved!"
51
- redirect_to :action => "browse", :model => current_model_id
42
+ redirect_to data_browser_model_url(:model => current_model_id)
52
43
  end
53
44
 
54
45
  def create
55
- @obj = current_model.new(params[current_model.to_s.underscore])
56
-
57
- @obj.save(false)
58
- flash[:notice] = "#{current_model.table_name} #{@obj.to_param} successfuly saved!"
59
- redirect_to :action => "browse", :model => current_model_id
46
+ current_model.create(data_from_params)
47
+ flash[:notice] = "#{current_model.table_name} #{current_object.to_param || "record"} successfuly saved!"
48
+ redirect_to data_browser_model_url(:model => current_model_id)
60
49
  end
61
50
 
62
51
  protected
@@ -80,12 +69,11 @@ module DataBrowser
80
69
  end
81
70
  end
82
71
 
83
- def current_model
84
- @model ||= DataBrowser.models[current_model_id] if current_model_id
85
- end
72
+ private
86
73
 
87
- def current_model_id
88
- params[:model].to_i if params[:model]
74
+ def data_from_params
75
+ pos = ActionController::RecordIdentifier.singular_class_name(current_model)
76
+ current_model.new(params[pos]).attributes # Hum... well, you know..
89
77
  end
90
78
  end
91
79
  end
@@ -1,22 +1,24 @@
1
1
  module DataBrowser
2
2
  module Routing
3
- def databrowser(opts={})
4
- root = opts[:root] || "databrowser"
3
+ def databrowser(root="databrowser")
5
4
  with_options :controller => "data_browser/data_browser" do |db|
6
5
  # Databrowser pages
7
6
  db.data_browser_home "/#{root}", :action => "index"
8
7
  db.data_browser_about "/#{root}/about", :action => "about"
9
8
  # Model manipulation
10
9
  db.with_options :model => /\d+/ do |model|
11
- model.data_browser_model "/#{root}/:model", :action => "browse", :conditions => {:method => :get}
12
- model.data_browser_new "/#{root}/:model/new", :action => "new", :conditions => {:method => :get}
13
- model.data_browser_object "/#{root}/:model/:id", :action => "show", :conditions => {:method => :get}
14
- model.data_browser_edit "/#{root}/:model/:id/edit", :action => "edit", :conditions => {:method => :get}
10
+ model.data_browser_model "/#{root}/:model", :action => "browse", :conditions => {:method => :get}
11
+ model.data_browser_new "/#{root}/:model/new", :action => "new", :conditions => {:method => :get}
12
+
13
+ model.connect "/#{root}/:model", :action => "empty", :conditions => {:method => :delete}
14
+ model.connect "/#{root}/:model", :action => "create", :conditions => {:method => :post}
15
+
16
+ # Object manipulation
17
+ model.data_browser_object "/#{root}/:model/:id/", :action => "show", :conditions => {:method => :get}
18
+ model.data_browser_edit "/#{root}/:model/:id/edit", :action => "edit", :conditions => {:method => :get}
15
19
 
16
- model.connect "/#{root}/:model", :action => "empty", :conditions => {:method => :delete}
17
20
  model.connect "/#{root}/:model/:id", :action => "update", :conditions => {:method => :put}
18
21
  model.connect "/#{root}/:model/:id", :action => "destroy", :conditions => {:method => :delete}
19
- model.connect "/#{root}/:model", :action => "create", :conditions => {:method => :post}
20
22
  end
21
23
  end
22
24
  end
@@ -1,6 +1,6 @@
1
1
  <tr class="<%= cycle("odd", "") %>">
2
- <td><%= link_to("Edit", data_browser_edit_path(:id => obj.to_param, :model => current_model_id)) unless obj.to_param.nil? %></td>
3
- <td><%= link_to("Delete", data_browser_object_path(:id => obj.to_param, :model => current_model_id), :method => :delete, :confirm => "Are you sure?") unless obj.to_param.nil? %></td>
2
+ <td><%= link_to("Edit", data_browser_edit_path(object_params(obj))) %></td>
3
+ <td><%= link_to("Delete", data_browser_object_path(object_params(obj)), :method => :delete, :confirm => "Are you sure?") %></td>
4
4
  <% for column in params[:select] %>
5
5
  <td><%= obj.attributes[column] %></td>
6
6
  <% end %>
@@ -1,5 +1,5 @@
1
- <% form_for(@obj, :url => {:action => "update", :id => @obj.id, :model => @model.to_s}) do |f| %>
2
- <%= render :partial => "form", :locals => {:form => f} %>
1
+ <% form_for(current_object, :url => data_browser_object_path(object_params(current_object)), :method => :put) do |f| %>
2
+ <%= render :partial => "form", :object => f %>
3
3
  <div class="button">
4
4
  <%= submit_tag("Save") %> or <%= link_to("cancel", :action => "browse", :model => @model.to_s) %>
5
5
  </div>
@@ -1,5 +1,5 @@
1
- <% form_for(@obj, :url => data_browser_model_path(:model => current_model_id), :method => :post) do |f| %>
2
- <%= render :partial => "form", :locals => {:form => f} %>
1
+ <% form_for(current_object, :url => data_browser_model_path(:model => current_model_id), :method => :post) do |f| %>
2
+ <%= render :partial => "form", :object => f %>
3
3
  <div class="button">
4
4
  <%= submit_tag("Create") %> or <%= link_to("cancel", :action => "browse", :model => @model.to_s) %>
5
5
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: databrowser
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.9"
4
+ version: "1.0"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Junior
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-05 00:00:00 -03:00
12
+ date: 2008-08-06 00:00:00 -03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency