poodle-rb 0.0.7 → 0.0.8

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.
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