rademade_admin 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/rademade_admin/app/common/location.coffee.erb +5 -1
- data/app/assets/javascripts/rademade_admin/app/common/status-toggler.coffee +25 -0
- data/app/assets/javascripts/rademade_admin/app/common/turboform.coffee +8 -0
- data/app/assets/javascripts/rademade_admin/app/form-popup/view.coffee +3 -3
- data/app/assets/javascripts/rademade_admin/app/gallery/image/collection-view.coffee +35 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/image/collection.coffee +19 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/image/model.coffee +25 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/image/view.coffee +58 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/view.coffee +40 -0
- data/app/assets/javascripts/rademade_admin/app/select2/related/view.coffee +1 -1
- data/app/assets/javascripts/rademade_admin/app/select2/view.coffee +11 -2
- data/app/assets/javascripts/rademade_admin/app/templates/crop.jst.ejs +2 -2
- data/app/assets/javascripts/rademade_admin/app/templates/related-item.jst.ejs +2 -2
- data/app/assets/javascripts/rademade_admin/form/form.coffee +4 -1
- data/app/assets/stylesheets/rademade_admin.sass.erb +2 -1
- data/app/assets/stylesheets/rademade_admin/blocks/form/input.sass +56 -27
- data/app/assets/stylesheets/rademade_admin/blocks/gallery/_main.sass +67 -0
- data/app/assets/stylesheets/rademade_admin/modules/pagination/main.sass +19 -2
- data/app/cells/menu/item.slim +2 -0
- data/app/cells/menu_cell.rb +8 -2
- data/app/controllers/rademade_admin/abstract_controller.rb +6 -2
- data/app/controllers/rademade_admin/dashboard_controller.rb +1 -1
- data/app/controllers/rademade_admin/file_controller.rb +14 -5
- data/app/controllers/rademade_admin/gallery_controller.rb +48 -0
- data/app/controllers/rademade_admin/model_controller.rb +37 -29
- data/app/controllers/rademade_admin/sessions_controller.rb +7 -6
- data/app/controllers/rademade_admin/status_controller.rb +16 -0
- data/app/helpers/rademade_admin/field_helper.rb +3 -4
- data/app/helpers/rademade_admin/form_helper.rb +35 -25
- data/app/helpers/rademade_admin/uri_helper.rb +6 -14
- data/app/inputs/rademade_admin/file_input.rb +24 -8
- data/app/inputs/rademade_admin/gallery_input.rb +77 -0
- data/app/inputs/rademade_admin/related_select_input.rb +13 -4
- data/app/serializers/autocomplete/base_serializer.rb +1 -1
- data/app/services/gallery/manager.rb +81 -0
- data/app/services/login.rb +3 -3
- data/app/services/menu_service.rb +1 -1
- data/app/services/menu_service/menu_item.rb +4 -0
- data/app/services/model_controller/model_options.rb +1 -0
- data/app/services/model_controller/notifier.rb +24 -10
- data/app/services/search/conditions/autocomplete.rb +4 -11
- data/app/services/search/conditions/list.rb +22 -10
- data/app/services/search/conditions/related_list.rb +8 -4
- data/app/services/search/where.rb +20 -0
- data/app/services/sortable_service.rb +1 -4
- data/app/services/status/toggler.rb +27 -0
- data/app/services/template_service.rb +33 -1
- data/app/services/upload/gallery_preview_service.rb +64 -0
- data/app/views/layouts/rademade_admin.html.erb +1 -22
- data/app/views/rademade_admin/_blocks/_form.html.erb +10 -0
- data/app/views/rademade_admin/_blocks/_header.html.erb +0 -12
- data/app/views/rademade_admin/_blocks/_search.html.erb +11 -0
- data/app/views/rademade_admin/_blocks/_sort_reset.html.erb +5 -0
- data/app/views/rademade_admin/_blocks/button/_cancel.html.erb +7 -0
- data/app/views/rademade_admin/_blocks/button/_destroy.html.erb +12 -0
- data/app/views/rademade_admin/_blocks/button/_edit.html.erb +4 -2
- data/app/views/rademade_admin/_blocks/button/_hide.html.erb +13 -0
- data/app/views/rademade_admin/_blocks/button/_preview.html.erb +3 -0
- data/app/views/rademade_admin/_blocks/form/_control.html.erb +9 -3
- data/app/views/rademade_admin/_blocks/form/_separator.html.erb +1 -0
- data/app/views/rademade_admin/_blocks/table/_head.html.erb +8 -2
- data/app/views/rademade_admin/_layouts/inner/index_table.html.erb +1 -3
- data/app/views/rademade_admin/_layouts/main.html.erb +26 -0
- data/app/views/rademade_admin/abstract/_form.html.erb +1 -7
- data/app/views/rademade_admin/abstract/index.html.erb +7 -13
- data/config/locales/rademade_admin.en.yml +16 -1
- data/config/locales/rademade_admin.ru.yml +22 -2
- data/config/routes.rb +9 -1
- data/lib/rademade_admin.rb +5 -0
- data/lib/rademade_admin/configuration.rb +6 -1
- data/lib/rademade_admin/engine.rb +4 -0
- data/lib/rademade_admin/gallery.rb +13 -0
- data/lib/rademade_admin/hideable.rb +37 -0
- data/lib/rademade_admin/input/related_select_input/related_list.rb +2 -2
- data/lib/rademade_admin/model/adapter/data.rb +8 -0
- data/lib/rademade_admin/model/adapter/data/active_record.rb +12 -2
- data/lib/rademade_admin/model/adapter/data/mongoid.rb +10 -8
- data/lib/rademade_admin/model/adapter/query/active_record.rb +8 -3
- data/lib/rademade_admin/model/configuration.rb +10 -8
- data/lib/rademade_admin/model/info.rb +13 -2
- data/lib/rademade_admin/model/info/data_item.rb +8 -3
- data/lib/rademade_admin/model/info/fields.rb +12 -2
- data/lib/rademade_admin/model/info/relation.rb +5 -0
- data/lib/rademade_admin/model/info/relation/gallery.rb +12 -0
- data/lib/rademade_admin/model/reflection.rb +4 -0
- data/lib/rademade_admin/routing/mapper.rb +1 -1
- data/lib/rademade_admin/routing/resource.rb +4 -0
- data/lib/rademade_admin/uploader/crop_photo.rb +3 -2
- data/lib/rademade_admin/version.rb +1 -1
- metadata +83 -8
@@ -0,0 +1,67 @@
|
|
1
|
+
.gallery
|
2
|
+
+clear
|
3
|
+
.gallery-images-container
|
4
|
+
overflow: auto
|
5
|
+
.gallery-image
|
6
|
+
display: inline-block
|
7
|
+
position: relative
|
8
|
+
padding: 5px
|
9
|
+
.gallery-image-upload
|
10
|
+
float: left
|
11
|
+
position: relative
|
12
|
+
width: 100%
|
13
|
+
height: 98px
|
14
|
+
padding: 96px 0 0
|
15
|
+
margin: 0 5px 5px 0
|
16
|
+
border: 1px dashed #BDC3C7
|
17
|
+
font-size: 300px
|
18
|
+
overflow: hidden
|
19
|
+
cursor: pointer
|
20
|
+
background-color: #ffffff
|
21
|
+
outline: none
|
22
|
+
+border-radius(3px)
|
23
|
+
+box-sizing(border-box)
|
24
|
+
&:hover
|
25
|
+
opacity: 0.6
|
26
|
+
&:after
|
27
|
+
position: absolute
|
28
|
+
top: 0
|
29
|
+
left: 0
|
30
|
+
padding-top: 45px
|
31
|
+
content: "Click or drop files here"
|
32
|
+
text-align: center
|
33
|
+
width: 100%
|
34
|
+
height: 100%
|
35
|
+
font-size: 15px
|
36
|
+
color: #555
|
37
|
+
+box-sizing(border-box)
|
38
|
+
|
39
|
+
|
40
|
+
.remove-ico
|
41
|
+
position: absolute
|
42
|
+
top: 2px
|
43
|
+
right: 5px
|
44
|
+
font-size: 13px
|
45
|
+
cursor: pointer
|
46
|
+
padding: 1px 5px
|
47
|
+
border-radius: 3px
|
48
|
+
background-color: #FFF
|
49
|
+
font-weight: bold
|
50
|
+
|
51
|
+
.crop-btn
|
52
|
+
position: absolute
|
53
|
+
bottom: 5px
|
54
|
+
|
55
|
+
.gallery-images-container
|
56
|
+
float: left
|
57
|
+
margin: 0 -2px
|
58
|
+
.gallery-image
|
59
|
+
float: left
|
60
|
+
margin: 0 2px 4px 2px
|
61
|
+
width: 135px
|
62
|
+
height: 98px
|
63
|
+
border: 1px solid #BDC3C7
|
64
|
+
+border-radius(3px)
|
65
|
+
img
|
66
|
+
max-width: 100% !important
|
67
|
+
max-height: 100% !important
|
@@ -9,8 +9,11 @@
|
|
9
9
|
padding: 0 15px
|
10
10
|
.last
|
11
11
|
padding: 0 15px
|
12
|
-
|
13
|
-
|
12
|
+
.page,
|
13
|
+
.next,
|
14
|
+
.last,
|
15
|
+
.first,
|
16
|
+
.prev
|
14
17
|
float: left
|
15
18
|
margin: 0 -1px 0 0
|
16
19
|
padding: 0
|
@@ -25,6 +28,20 @@
|
|
25
28
|
border-bottom: 1px solid #34495e
|
26
29
|
a
|
27
30
|
color: #34495e
|
31
|
+
|
32
|
+
&.gap
|
33
|
+
display: inline-block
|
34
|
+
padding: 0 5px
|
35
|
+
min-width: 35px
|
36
|
+
height: 37px
|
37
|
+
line-height: 35px
|
38
|
+
font-size: 14px
|
39
|
+
color: #34495e
|
40
|
+
text-align: center
|
41
|
+
cursor: default
|
42
|
+
+box-sizing(border-box)
|
43
|
+
&:hover
|
44
|
+
border: 1px solid #dddddd
|
28
45
|
a
|
29
46
|
display: inline-block
|
30
47
|
padding: 0 5px
|
data/app/cells/menu/item.slim
CHANGED
data/app/cells/menu_cell.rb
CHANGED
@@ -2,12 +2,13 @@ class MenuCell < Cell::Rails
|
|
2
2
|
include ::RademadeAdmin::UriHelper
|
3
3
|
|
4
4
|
class << self
|
5
|
-
attr_accessor :current_model
|
5
|
+
attr_accessor :current_model, :current_ability
|
6
6
|
end
|
7
7
|
|
8
8
|
def root_item
|
9
9
|
@uri = root_uri
|
10
10
|
@name = t('rademade_admin.home')
|
11
|
+
@count = nil
|
11
12
|
@ico_class = 'glyphicon glyphicon-home'
|
12
13
|
@has_sub_items = false
|
13
14
|
@is_active = self.class.current_model.nil?
|
@@ -33,8 +34,9 @@ class MenuCell < Cell::Rails
|
|
33
34
|
|
34
35
|
def item_data(item)
|
35
36
|
@is_active = current?(item) || children_current?(item) #todo extract service for current
|
36
|
-
@uri = admin_list_uri(item.model)
|
37
|
+
@uri = can_read?(item) ? admin_list_uri(item.model) : nil
|
37
38
|
@name = item.name
|
39
|
+
@count = item.count
|
38
40
|
@has_sub_items = item.has_sub_items?
|
39
41
|
@sub_items = item.sub_items
|
40
42
|
end
|
@@ -43,6 +45,10 @@ class MenuCell < Cell::Rails
|
|
43
45
|
self.class.current_model == item.model
|
44
46
|
end
|
45
47
|
|
48
|
+
def can_read?(item) # todo move authorize check to uri helper
|
49
|
+
self.class.current_ability.can?(:read, item.model)
|
50
|
+
end
|
51
|
+
|
46
52
|
def children_current?(item, status = false)
|
47
53
|
if item.has_sub_items?
|
48
54
|
item.sub_items.each do |sub_item|
|
@@ -7,7 +7,7 @@ module RademadeAdmin
|
|
7
7
|
|
8
8
|
layout 'rademade_admin'
|
9
9
|
|
10
|
-
before_action :init_user, :init_template_service, :require_login, :root_breadcrumbs
|
10
|
+
before_action :init_user, :init_template_service, :require_login, :root_breadcrumbs, :menu
|
11
11
|
|
12
12
|
attr_reader :current_user
|
13
13
|
|
@@ -41,7 +41,11 @@ module RademadeAdmin
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def current_ability
|
44
|
-
@current_ability ||= ::RademadeAdmin::Ability.new(@current_user)
|
44
|
+
@current_ability ||= (RademadeAdmin.ability_class || ::RademadeAdmin::Ability).new(@current_user)
|
45
|
+
end
|
46
|
+
|
47
|
+
def menu
|
48
|
+
MenuCell.current_ability = current_ability
|
45
49
|
end
|
46
50
|
|
47
51
|
end
|
@@ -9,11 +9,16 @@ class RademadeAdmin::FileController < RademadeAdmin::AbstractController
|
|
9
9
|
:file => uploader
|
10
10
|
}
|
11
11
|
rescue CarrierWave::UploadError => e
|
12
|
-
|
12
|
+
show_error(e)
|
13
|
+
end
|
14
|
+
|
15
|
+
def download
|
16
|
+
# todo filename
|
17
|
+
send_file(uploader.model.send(uploader.mounted_as).file.file)
|
13
18
|
end
|
14
19
|
|
15
20
|
def crop
|
16
|
-
image = uploader.crop_image(params[:
|
21
|
+
image = uploader.crop_image(params[:crop], params[:path])
|
17
22
|
uploader.store!(image)
|
18
23
|
upload_preview_service = RademadeAdmin::Upload::PreviewService.new(uploader)
|
19
24
|
render :json => {
|
@@ -21,18 +26,22 @@ class RademadeAdmin::FileController < RademadeAdmin::AbstractController
|
|
21
26
|
:file => uploader
|
22
27
|
}
|
23
28
|
rescue CarrierWave::UploadError => e
|
24
|
-
|
29
|
+
show_error(e)
|
25
30
|
end
|
26
31
|
|
27
32
|
private
|
28
33
|
|
34
|
+
def show_error(error)
|
35
|
+
render :json => { :error => error.to_s }, :status => :unprocessable_entity
|
36
|
+
end
|
37
|
+
|
29
38
|
def uploader
|
30
39
|
@uploader ||= RademadeAdmin::LoaderService.const_get(params[:uploader]).new(model, params[:column])
|
31
40
|
end
|
32
41
|
|
33
42
|
def model
|
34
43
|
model_class = RademadeAdmin::LoaderService.const_get(params[:model])
|
35
|
-
params[:
|
44
|
+
params[:id].present? ? model_class.find(params[:id]) : model_class.new
|
36
45
|
end
|
37
46
|
|
38
|
-
end
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class RademadeAdmin::GalleryController < RademadeAdmin::AbstractController
|
3
|
+
|
4
|
+
def upload
|
5
|
+
gallery_service.upload_images(params[:gallery_id], params[:files])
|
6
|
+
render :json => {
|
7
|
+
:gallery_images_html => gallery_service.gallery_images_html
|
8
|
+
}
|
9
|
+
rescue Exception => e
|
10
|
+
show_error(e)
|
11
|
+
end
|
12
|
+
|
13
|
+
def crop
|
14
|
+
uploader = gallery_service.crop_image(params[:id], params[:crop])
|
15
|
+
preview_service = RademadeAdmin::Upload::GalleryPreviewService.new
|
16
|
+
render :json => {
|
17
|
+
:crop_button_html => preview_service.crop_button_html(uploader),
|
18
|
+
:gallery_image_url => preview_service.gallery_image_preview(uploader)
|
19
|
+
}
|
20
|
+
rescue Exception => e
|
21
|
+
show_error(e)
|
22
|
+
end
|
23
|
+
|
24
|
+
def remove
|
25
|
+
gallery_service.remove_image(params[:id])
|
26
|
+
render :json => { }
|
27
|
+
rescue Exception => e
|
28
|
+
show_error(e)
|
29
|
+
end
|
30
|
+
|
31
|
+
def sort
|
32
|
+
gallery_service.sort_images(params[:images])
|
33
|
+
render :json => { }
|
34
|
+
rescue Exception => e
|
35
|
+
show_error(e)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def show_error(error)
|
41
|
+
render :json => { :error => error.to_s }, :status => :unprocessable_entity
|
42
|
+
end
|
43
|
+
|
44
|
+
def gallery_service
|
45
|
+
@gallery_service ||= RademadeAdmin::Gallery::Manager.new(params[:class_name])
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -26,9 +26,9 @@ module RademadeAdmin
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def update
|
29
|
-
authorize! :update, model_class
|
30
29
|
saver = RademadeAdmin::Saver.new(model_info, params)
|
31
30
|
saver.find_model
|
31
|
+
authorize! :update, saver.item
|
32
32
|
saver.save_data
|
33
33
|
success_update saver.item
|
34
34
|
rescue Exception => e
|
@@ -36,37 +36,28 @@ module RademadeAdmin
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def destroy
|
39
|
-
authorize! :destroy, model_class
|
40
39
|
@item = model.find(params[:id])
|
40
|
+
authorize! :destroy, @item
|
41
41
|
@item.delete if @item
|
42
42
|
success_delete @item
|
43
43
|
end
|
44
44
|
|
45
45
|
def autocomplete
|
46
46
|
authorize! :read, model_class
|
47
|
-
|
48
|
-
@items = Search::Searcher.new(model_info).search(conditions)
|
49
|
-
render :json => Autocomplete::BaseSerializer.new(@items)
|
47
|
+
render :json => Autocomplete::BaseSerializer.new(autocomplete_items)
|
50
48
|
end
|
51
49
|
|
52
50
|
def link_autocomplete
|
53
51
|
authorize! :read, model_class
|
54
|
-
|
55
52
|
relation_service = RademadeAdmin::RelationService.new
|
56
53
|
@related_model_info = relation_service.related_model_info(model_info, params[:relation])
|
57
|
-
|
58
|
-
conditions = Search::Conditions::Autocomplete.new(params, @related_model_info.data_items)
|
59
|
-
@items = Search::Searcher.new(@related_model_info).search(conditions)
|
60
|
-
render :json => Autocomplete::LinkSerializer.new(@items, model.find(params[:id]), params[:relation])
|
54
|
+
render :json => Autocomplete::LinkSerializer.new(link_autocomplete_items, model.find(params[:id]), params[:relation])
|
61
55
|
end
|
62
56
|
|
63
57
|
def index
|
64
58
|
authorize! :read, model_class
|
65
59
|
list_breadcrumbs
|
66
|
-
|
67
|
-
conditions = Search::Conditions::List.new(params, model_info.data_items)
|
68
|
-
@items = Search::Searcher.new(model_info).search(conditions)
|
69
|
-
|
60
|
+
@items = index_items
|
70
61
|
respond_to do |format|
|
71
62
|
format.html { render_template }
|
72
63
|
format.json { render :json => @items }
|
@@ -75,34 +66,27 @@ module RademadeAdmin
|
|
75
66
|
|
76
67
|
def new
|
77
68
|
authorize! :create, model_class
|
69
|
+
@with_create_and_return_button = true
|
70
|
+
@item = new_model
|
78
71
|
new_breadcrumbs
|
79
|
-
|
80
|
-
@item = model.new
|
81
72
|
render_template
|
82
73
|
end
|
83
74
|
|
84
75
|
def edit
|
85
|
-
authorize! :update, model_class
|
86
76
|
@item = model.find(params[:id])
|
87
|
-
|
77
|
+
authorize! :update, @item
|
78
|
+
@with_create_and_return_button = true
|
88
79
|
edit_breadcrumbs
|
89
80
|
render_template
|
90
81
|
end
|
91
82
|
|
92
83
|
def related
|
93
84
|
authorize! :read, model_class
|
94
|
-
|
95
|
-
#rm_todo extract relation service
|
96
|
-
relation_service = RademadeAdmin::RelationService.new
|
97
|
-
@related_model_info = relation_service.related_model_info(model_info, params[:relation])
|
98
|
-
|
85
|
+
@related_model_info = RademadeAdmin::RelationService.new.related_model_info(model_info, params[:relation])
|
99
86
|
@item = model.find(params[:id])
|
100
87
|
search_params = params.except(:id)
|
101
|
-
|
102
|
-
@items = Search::Searcher.new(@related_model_info).search(conditions)
|
103
|
-
|
88
|
+
@items = related_items(search_params)
|
104
89
|
@sortable_service = RademadeAdmin::SortableService.new(@related_model_info, search_params)
|
105
|
-
|
106
90
|
respond_to do |format|
|
107
91
|
format.html {
|
108
92
|
related_breadcrumbs
|
@@ -127,8 +111,8 @@ module RademadeAdmin
|
|
127
111
|
end
|
128
112
|
|
129
113
|
def show
|
130
|
-
authorize! :read, model_class
|
131
114
|
@item = model.find(params[:id])
|
115
|
+
authorize! :read, @item
|
132
116
|
respond_to do |format|
|
133
117
|
format.html { redirect_to :action => 'index' }
|
134
118
|
format.json { render :json => @item }
|
@@ -137,7 +121,7 @@ module RademadeAdmin
|
|
137
121
|
|
138
122
|
def form
|
139
123
|
authorize! :read, model_class
|
140
|
-
@item = params[:id].blank? ?
|
124
|
+
@item = params[:id].blank? ? new_model : model.find(params[:id])
|
141
125
|
render form_template_path(true), :layout => false
|
142
126
|
end
|
143
127
|
|
@@ -148,6 +132,30 @@ module RademadeAdmin
|
|
148
132
|
|
149
133
|
protected
|
150
134
|
|
135
|
+
def index_items
|
136
|
+
conditions = Search::Conditions::List.new(params, model_info.data_items)
|
137
|
+
Search::Searcher.new(model_info).search(conditions)
|
138
|
+
end
|
139
|
+
|
140
|
+
def autocomplete_items
|
141
|
+
conditions = Search::Conditions::Autocomplete.new(params, model_info.data_items)
|
142
|
+
Search::Searcher.new(model_info).search(conditions)
|
143
|
+
end
|
144
|
+
|
145
|
+
def link_autocomplete_items
|
146
|
+
conditions = Search::Conditions::Autocomplete.new(params, @related_model_info.data_items)
|
147
|
+
Search::Searcher.new(@related_model_info).search(conditions)
|
148
|
+
end
|
149
|
+
|
150
|
+
def related_items(search_params)
|
151
|
+
conditions = Search::Conditions::RelatedList.new(@item, search_params, @related_model_info.data_items)
|
152
|
+
Search::Searcher.new(@related_model_info).search(conditions)
|
153
|
+
end
|
154
|
+
|
155
|
+
def new_model
|
156
|
+
model.new
|
157
|
+
end
|
158
|
+
|
151
159
|
def model
|
152
160
|
@model ||= model_info.model
|
153
161
|
end
|
@@ -5,13 +5,14 @@ module RademadeAdmin
|
|
5
5
|
skip_before_action :require_login
|
6
6
|
|
7
7
|
def login
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
render :json => {:errors => e.field_messages}, :status => :precondition_failed
|
8
|
+
user = RademadeAdmin::Login.admin(params)
|
9
|
+
session[:user_id] = user.id.to_s
|
10
|
+
respond_to do |format|
|
11
|
+
format.html { redirect_to :controller => 'dashboard', :action => 'index' }
|
12
|
+
format.json { render :json => user }
|
14
13
|
end
|
14
|
+
rescue RademadeAdmin::Login::Error => e
|
15
|
+
render :json => { :errors => e.field_messages }, :status => :precondition_failed
|
15
16
|
end
|
16
17
|
|
17
18
|
def logout
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module RademadeAdmin
|
3
|
+
class StatusController < RademadeAdmin::AbstractController
|
4
|
+
|
5
|
+
include RademadeAdmin::Notifier
|
6
|
+
|
7
|
+
def toggle
|
8
|
+
authorize! :update, params[:model]
|
9
|
+
status_changer = RademadeAdmin::Status::Toggler.new(params[:model], params[:id])
|
10
|
+
status_changer.init_item
|
11
|
+
status_changer.toggle
|
12
|
+
success_status_change(status_changer.item)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|