poodle-rb 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9a04e19c29121aaa00b743aa062def280e1d2ce
4
- data.tar.gz: ceb3dd427f68ec9942a6929d3c272d20179cf7eb
3
+ metadata.gz: e483ec280a8d6380a1728de37a53751f5df16122
4
+ data.tar.gz: 90ff30c2798b69db5ea5bd83b6bf0b7ec3104ef7
5
5
  SHA512:
6
- metadata.gz: a37cf5f6cecac8aad4c472cbc252c44064c054b9c9edd75dfa2ce04c53f67197438cde5e96a01d330f17eebb0e05c1bd205befac0b45afa39004be928703ce0d
7
- data.tar.gz: 28c503d4731298687758eb3cf149daff237cc4a6fd54fa330b8edf2b410788d5affd8920dbd240607eccf0eb1041dea64541e6a223555610d31b0abd45a3b781
6
+ metadata.gz: 55f8d8d42905bece329e5e23045c6f0b84a30f334b8c3c6b2b327835beb76ee355869bb056f8a4184003bb69cdd3b9be34a84f3414c67dea6c1d9d5e30db1524
7
+ data.tar.gz: 988e9100ea026720e0211d4798d49b5752afcb33d25d2d2c3a618867e0e889a66ec0efa89575b4775e19f0c9f1b4551624cf17f0aad944ba3a597ff69b89a34b
@@ -0,0 +1,146 @@
1
+ class Poodle::AdminController < PoodleController
2
+
3
+ layout 'poodle/application'
4
+
5
+ before_filter :require_admin, :set_navs, :parse_pagination_params
6
+ before_filter :configure
7
+
8
+ def index
9
+ get_collections
10
+ end
11
+
12
+ def show
13
+ obj = @options[:class].find(params[:id])
14
+ instance_variable_set("@#{@options[:collection_name].to_s.singularize}", obj)
15
+ render_list
16
+ end
17
+
18
+ def new
19
+ obj = @options[:class].new
20
+ instance_variable_set("@#{@options[:collection_name].to_s.singularize}", obj)
21
+ render_list
22
+ end
23
+
24
+ def edit
25
+ obj = @options[:class].find(params[:id])
26
+ instance_variable_set("@#{@options[:collection_name].to_s.singularize}", obj)
27
+ render_list
28
+ end
29
+
30
+ def create
31
+ obj = @options[:class].new
32
+ obj.assign_attributes(permitted_params)
33
+ instance_variable_set("@#{@options[:collection_name].to_s.singularize}", obj)
34
+ save_resource(obj)
35
+ end
36
+
37
+ def update
38
+ obj = @options[:class].find(params[:id])
39
+ obj.assign_attributes(permitted_params)
40
+ instance_variable_set("@#{@options[:collection_name].to_s.singularize}", obj)
41
+ save_resource(obj)
42
+ end
43
+
44
+ def destroy
45
+ obj = @options[:class].find(params[:id])
46
+ obj.destroy
47
+ get_collections
48
+ set_flash_message(@options[:messages][:delete], :success)
49
+ respond_to do |format|
50
+ format.js { render :index }
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def set_navs
57
+ set_nav(params[:controller])
58
+ end
59
+
60
+ def permitted_params
61
+ raise "method 'permitted_params' not defined"
62
+ end
63
+
64
+ def default_collection_name
65
+ params[:controller].gsub("admin/", "").to_s
66
+ end
67
+
68
+ def default_item_name
69
+ default_collection_name.singularize.gsub("_", " ").titleize
70
+ end
71
+
72
+ def default_class
73
+ default_collection_name.singularize.camelize.constantize
74
+ end
75
+
76
+ def default_configuration
77
+ {
78
+ collection_name: default_collection_name,
79
+ item_name: default_item_name,
80
+ class: default_class,
81
+ messages: {
82
+ add: I18n.translate("forms.add", item: default_item_name),
83
+ create: I18n.translate("forms.create", item: default_item_name),
84
+ update: I18n.translate("forms.update", item: default_item_name),
85
+ save: I18n.translate("forms.save", item: default_item_name),
86
+ remove: I18n.translate("forms.remove", item: default_item_name),
87
+ delete: I18n.translate("forms.delete",item: default_item_name)
88
+ }
89
+ }
90
+ end
91
+
92
+ def configure
93
+ if defined?(@options)
94
+ @options.reverse_merge!(default_configuration)
95
+ else
96
+ @options = default_configuration
97
+ end
98
+ end
99
+
100
+ def prepare_query
101
+ @relation = @options[:class].where("")
102
+ if params[:query]
103
+ @query = params[:query].strip
104
+ @relation = @relation.search(@query) if !@query.blank?
105
+ end
106
+ end
107
+
108
+ def get_collections
109
+ prepare_query
110
+ objects = @relation.order("created_at desc").page(@current_page).per(@per_page)
111
+ instance_variable_set("@#{@options[:collection_name]}", objects)
112
+ unless instance_variable_get("@#{@options[:collection_name].to_s.singularize}")
113
+ instance_variable_set("@#{@options[:collection_name].to_s.singularize}", objects.first)
114
+ end
115
+ return true
116
+ end
117
+
118
+ def save_resource(obj)
119
+ obj.save
120
+ set_flash_message(@options[:messages][:save], :success) if obj.errors.blank?
121
+ action_name = params[:action].to_s == "create" ? "new" : "edit"
122
+ url = obj.persisted? ? url_for([:admin, obj]) : nil
123
+ render_or_redirect(obj.errors.any?, url, action_name)
124
+ end
125
+
126
+ def render_or_redirect(error, redirect_url, action)
127
+ respond_to do |format|
128
+ format.html {
129
+ if error
130
+ render action: action
131
+ else
132
+ redirect_to redirect_url, notice: @options[:message]
133
+ end
134
+ }
135
+ format.js {}
136
+ end
137
+ end
138
+
139
+ def render_list
140
+ respond_to do |format|
141
+ format.html { get_collections and render :index }
142
+ format.js {}
143
+ end
144
+ end
145
+
146
+ end
@@ -0,0 +1,2 @@
1
+ class PoodleController < ApplicationController
2
+ end
@@ -114,7 +114,7 @@ module Poodle
114
114
  li_array = []
115
115
  collection.each do |item|
116
116
  li_array << content_tag(:li) do
117
- link_to item.send(method_name), url_for([:admin, item]), :remote => true
117
+ link_to item.send(method_name), main_app.url_for([:admin, item]), :remote => true
118
118
  end
119
119
  end
120
120
  raw(li_array.join(" ")) +
@@ -17,7 +17,6 @@ module Poodle
17
17
  include Poodle::ParamsParserHelper
18
18
  include Poodle::TitleHelper
19
19
  include Poodle::UrlHelper
20
- include Poodle::AdminFunctionalitiesHelper
21
20
  helper Poodle::DisplayHelper
22
21
  helper Poodle::FlashHelper
23
22
  helper Poodle::ImageHelper
@@ -26,7 +25,6 @@ module Poodle
26
25
  helper Poodle::ParamsParserHelper
27
26
  helper Poodle::TitleHelper
28
27
  helper Poodle::UrlHelper
29
- helper Poodle::AdminFunctionalitiesHelper
30
28
  end
31
29
  end
32
30
  end
@@ -1,3 +1,3 @@
1
1
  module Poodle
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poodle-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krishnaprasad Varma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-28 00:00:00.000000000 Z
11
+ date: 2015-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -98,8 +98,8 @@ files:
98
98
  - app/assets/stylesheets/poodle/bootstrap.css
99
99
  - app/assets/stylesheets/poodle/font-awesome.css
100
100
  - app/assets/stylesheets/poodle/poodle-theme.css
101
- - app/controllers/poodle/application_controller.rb
102
- - app/helpers/poodle/admin_functionalities_helper.rb
101
+ - app/controllers/poodle/admin_controller.rb
102
+ - app/controllers/poodle_controller.rb
103
103
  - app/helpers/poodle/application_helper.rb
104
104
  - app/helpers/poodle/display_helper.rb
105
105
  - app/helpers/poodle/flash_helper.rb
@@ -1,2 +0,0 @@
1
- class Poodle::ApplicationController < ActionController::Base
2
- end
@@ -1,44 +0,0 @@
1
- module Poodle
2
- module AdminFunctionalitiesHelper
3
- def get_collections(collection_name, **options)
4
- options.reverse_merge!(
5
- kls: collection_name.to_s.camelize.singularize.camelize.constantize
6
- )
7
- relation = options[:kls].where("")
8
- @filters = {}
9
-
10
- if params[:query]
11
- @query = params[:query].strip
12
- relation = relation.search(@query) if !@query.blank?
13
- end
14
- objects = relation.order("created_at desc").page(@current_page).per(@per_page)
15
- instance_variable_set("@#{collection_name}", objects)
16
- unless instance_variable_get("@#{collection_name.to_s.singularize}")
17
- instance_variable_set("@#{collection_name.to_s.singularize}", objects.first)
18
- end
19
-
20
- return true
21
- end
22
-
23
- def render_list(collection_name, **options)
24
- respond_to do |format|
25
- format.html {
26
- get_collections(collection_name, **options) and render :index }
27
- format.js {}
28
- end
29
- end
30
-
31
- def render_or_redirect(error, redirect_url, action)
32
- respond_to do |format|
33
- format.html {
34
- if error
35
- render action: action
36
- else
37
- redirect_to redirect_url, notice: @message
38
- end
39
- }
40
- format.js {}
41
- end
42
- end
43
- end
44
- end