rademade_admin 0.1.3 → 0.1.4
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 +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,10 @@
|
|
|
1
|
+
<%
|
|
2
|
+
show_buttons = show_buttons.nil? ? true : show_buttons
|
|
3
|
+
buttons_template ||= @template_service.form_control_block
|
|
4
|
+
%><%= admin_form(@item, @model_class) do |f| %><%
|
|
5
|
+
@form_fields_without_locale.each do |form_field|
|
|
6
|
+
admin_field(f, form_field, @model_info)
|
|
7
|
+
end
|
|
8
|
+
concat render @template_service.form_lang_panel_block, { :f => f }
|
|
9
|
+
concat render buttons_template, { :f => f } if show_buttons
|
|
10
|
+
end %>
|
|
@@ -15,18 +15,6 @@
|
|
|
15
15
|
<div class="menu-item">
|
|
16
16
|
<span class="menu-link disabled"><%= @current_user %> <b class="caret"></b></span>
|
|
17
17
|
</div>
|
|
18
|
-
<div class="menu-item js-box hide">
|
|
19
|
-
<span class="menu-link js-link"><i class="glyphicon glyphicon-list"></i></span>
|
|
20
|
-
<div class="menu-droplist js-droplist">
|
|
21
|
-
<%# <div class="menu-droplist-header">Active links</div>
|
|
22
|
-
<a class="menu-droplist-link" href="#">Link</a>
|
|
23
|
-
<a class="menu-droplist-link" href="#">Link</a>
|
|
24
|
-
<div class="menu-droplist-header">Disable links</div>
|
|
25
|
-
<span class="menu-droplist-link disabled">Disable link</span>
|
|
26
|
-
<span class="menu-droplist-link disabled">Disable link</span> %>
|
|
27
|
-
<%= link_to t('rademade_admin.exit'), [:logout, :sessions], { :method => :delete, :class => 'menu-droplist-link last' } %>
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
18
|
<div class="menu-item">
|
|
31
19
|
<%= link_to t('rademade_admin.exit'), [:logout, :sessions], { :method => :delete, :class => 'menu-link last' } %>
|
|
32
20
|
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<%
|
|
2
|
+
unless @model_info.data_items.filter_fields.empty?
|
|
3
|
+
list_uri = admin_list_uri(@model)
|
|
4
|
+
%><form class="form-box search" action="<%= list_uri %>" data-turboform>
|
|
5
|
+
<div class="input-holder">
|
|
6
|
+
<input type="text" name="q" value="<%= params[:q] %>"/>
|
|
7
|
+
</div>
|
|
8
|
+
<button class="btn blue-btn"><%= t('rademade_admin.search') %></button>
|
|
9
|
+
<a class="btn yellow-btn" href="<%= list_uri %>"><%= t('rademade_admin.clear_search') %></a>
|
|
10
|
+
</form><%
|
|
11
|
+
end %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<%
|
|
2
|
+
if can? :destroy, @model
|
|
3
|
+
delete_uri = admin_delete_uri(item)
|
|
4
|
+
unless delete_uri.nil?
|
|
5
|
+
%><div class="glyphicon glyphicon-remove fl-l"><%
|
|
6
|
+
concat button_to t('rademade_admin.destroy'), delete_uri, {
|
|
7
|
+
:method => :delete,
|
|
8
|
+
:form => { :class => 'delete-item-form' }
|
|
9
|
+
}
|
|
10
|
+
%></div><%
|
|
11
|
+
end
|
|
12
|
+
end %>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
<%
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
if can? :edit, @model
|
|
3
|
+
edit_url = admin_edit_uri(item)
|
|
4
|
+
concat link_to t('rademade_admin.edit'), edit_url, :class => 'glyphicon glyphicon-pencil fl-l' unless edit_url.nil?
|
|
5
|
+
end %>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<%
|
|
2
|
+
if @model_info.hideable? && can?(:edit, @model)
|
|
3
|
+
element_id = "hide_#{item.id}"
|
|
4
|
+
toggle_url = admin_url_for(:controller => :status, :action => :toggle, :model => @model, :id => item.id)
|
|
5
|
+
%><div class="view-option">
|
|
6
|
+
<input id="<%=element_id%>" data-toggle-url="<%= toggle_url %>" type="checkbox"<%
|
|
7
|
+
if item.shown?
|
|
8
|
+
%> checked="checked"<%
|
|
9
|
+
end
|
|
10
|
+
%>/>
|
|
11
|
+
<label for="<%=element_id %>" class="glyphicon"></label>
|
|
12
|
+
</div><%
|
|
13
|
+
end %>
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
<%= f.button :submit, :class => 'blue-btn'
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
<%= f.button :submit, :class => 'blue-btn' %><%
|
|
2
|
+
if @with_create_and_return_button
|
|
3
|
+
concat render @template_service.form_separator_block
|
|
4
|
+
translate_name = f.object.new_record? ? 'helpers.submit.create' : 'helpers.submit.update'
|
|
5
|
+
submit_button_text = "#{t(translate_name, :model => f.object.class)} #{t('rademade_admin.return')}"
|
|
6
|
+
concat f.submit submit_button_text, :class => "#{SimpleForm.button_class} blue-btn", :name => 'create_and_return'
|
|
7
|
+
end
|
|
8
|
+
concat render @template_service.form_separator_block
|
|
9
|
+
concat render @template_service.cancel_button %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<span class="btn-sep"><%= t('rademade_admin.or') %></span>
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
<thead class="table-header">
|
|
2
2
|
<tr class="table-line"><%
|
|
3
3
|
list_fields.each do |field|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
sorting_sign = ''
|
|
5
|
+
%><th class="table-item"<%
|
|
6
|
+
unless field.order_column.nil?
|
|
7
|
+
sorting_sign = @sortable_service.sorting_sign(field)
|
|
8
|
+
%> data-column="<%= field.order_column %>"<%
|
|
9
|
+
end
|
|
10
|
+
%>>
|
|
11
|
+
<span><%= field.label + sorting_sign %></span>
|
|
6
12
|
</th><%
|
|
7
13
|
end
|
|
8
14
|
%><th class="table-item">
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<% content_for :content do %><%
|
|
2
2
|
concat render @template_service.on_page_select_block
|
|
3
|
-
|
|
4
|
-
%><a href="<%= request.path %>"><%= t('rademade_admin.reset_sort') %></a><%
|
|
5
|
-
end
|
|
3
|
+
concat render @template_service.sort_reset_block
|
|
6
4
|
%><table class="table-box"><%
|
|
7
5
|
concat render @template_service.table_head_block, {
|
|
8
6
|
:list_fields => @list_fields
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<% content_for :head do %>
|
|
2
|
+
<%= stylesheet_link_tag(:rademade_admin, :media => 'all', 'data-turbolinks-track' => true) %>
|
|
3
|
+
<%= javascript_include_tag(:rademade_admin, 'data-turbolinks-track' => true) %>
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
6
|
+
<!DOCTYPE html>
|
|
7
|
+
<html>
|
|
8
|
+
<head>
|
|
9
|
+
<title>Rademade Admin</title>
|
|
10
|
+
<%= yield(:head) %>
|
|
11
|
+
<%= csrf_meta_tags %>
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
<div class="wrapper">
|
|
16
|
+
<%= yield %>
|
|
17
|
+
</div>
|
|
18
|
+
</body>
|
|
19
|
+
|
|
20
|
+
<%= javascript_tag do %>
|
|
21
|
+
I18n.defaultLocale = "<%= I18n.default_locale %>";
|
|
22
|
+
I18n.locale = "<%= I18n.locale %>";
|
|
23
|
+
I18n.fallbacks = true;
|
|
24
|
+
<% end %>
|
|
25
|
+
|
|
26
|
+
</html>
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
<%=
|
|
2
|
-
@form_fields_without_locale.each do |form_field|
|
|
3
|
-
admin_field(f, form_field, @model_info)
|
|
4
|
-
end
|
|
5
|
-
concat render @template_service.form_lang_panel, { :f => f }
|
|
6
|
-
concat render @template_service.form_control_block, { :f => f }
|
|
7
|
-
end %>
|
|
1
|
+
<%= render @template_service.form_block %>
|
|
@@ -11,9 +11,8 @@ end %>
|
|
|
11
11
|
|
|
12
12
|
<% content_for :content do %><%
|
|
13
13
|
concat render @template_service.on_page_select_block
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
end
|
|
14
|
+
concat render @template_service.search_block
|
|
15
|
+
concat render @template_service.sort_reset_block
|
|
17
16
|
%><table class="table-box"><%
|
|
18
17
|
concat render @template_service.table_head_block, {
|
|
19
18
|
:list_fields => @list_fields
|
|
@@ -31,16 +30,11 @@ end %>
|
|
|
31
30
|
end
|
|
32
31
|
%><td class="table-item">
|
|
33
32
|
<span class="table-actions"><%
|
|
34
|
-
concat render 'rademade_admin/_blocks/button/edit', {
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
:method => :delete,
|
|
40
|
-
:form => { :class => 'delete-item-form' }
|
|
41
|
-
}
|
|
42
|
-
%></div>
|
|
43
|
-
</span>
|
|
33
|
+
concat render 'rademade_admin/_blocks/button/edit', { :item => item }
|
|
34
|
+
concat render 'rademade_admin/_blocks/button/hide', { :item => item }
|
|
35
|
+
concat render 'rademade_admin/_blocks/button/preview', { :item => item }
|
|
36
|
+
concat render 'rademade_admin/_blocks/button/destroy', { :item => item }
|
|
37
|
+
%></span>
|
|
44
38
|
</td>
|
|
45
39
|
</tr><%
|
|
46
40
|
end
|
|
@@ -23,11 +23,26 @@ en:
|
|
|
23
23
|
search: "Search"
|
|
24
24
|
edit_record: "Edit"
|
|
25
25
|
upload_file: "Upload file"
|
|
26
|
+
download_file: "Download file"
|
|
26
27
|
enter_search: "Enter search phrase"
|
|
27
28
|
record_remove_confirm: "Do you really want delete this record?"
|
|
28
29
|
model_remove_confirm: "Do you really want delete this model?"
|
|
30
|
+
image_remove_confirm: "Do you really want delete this image?"
|
|
29
31
|
language: "Language"
|
|
30
32
|
locale_en: "English"
|
|
31
33
|
locale_ru: "Russian"
|
|
32
34
|
edit_related_item: "Edit"
|
|
33
|
-
crop: "Crop"
|
|
35
|
+
crop: "Crop"
|
|
36
|
+
discard: "Discard"
|
|
37
|
+
return: "and return"
|
|
38
|
+
login_email_not_found: "There is no users with such email"
|
|
39
|
+
login_incorrect_password: "Incorrect password"
|
|
40
|
+
login_access_denied: "Access denied"
|
|
41
|
+
success_message: "Ok"
|
|
42
|
+
success_insert_message: "Entity was inserted!"
|
|
43
|
+
success_update_message: "Entity data was updated!"
|
|
44
|
+
success_delete_message: "Entity was deleted!"
|
|
45
|
+
success_unlink_message: "Entity was unlinked!"
|
|
46
|
+
success_link_message: "Entity was linked!"
|
|
47
|
+
success_status_update_message: "Status was updated!"
|
|
48
|
+
clear_search: "Clear"
|
|
@@ -23,6 +23,26 @@ ru:
|
|
|
23
23
|
search: "Поиск"
|
|
24
24
|
edit_record: "Редактировать"
|
|
25
25
|
upload_file: "Загрузить файл"
|
|
26
|
+
download_file: "Скачать файл"
|
|
26
27
|
enter_search: "Введите фразу для поиска"
|
|
27
|
-
record_remove_confirm: "Вы действительно хотите
|
|
28
|
-
model_remove_confirm: "Вы действительно хотите удалить данную модель?"
|
|
28
|
+
record_remove_confirm: "Вы действительно хотите удалить данную запись?"
|
|
29
|
+
model_remove_confirm: "Вы действительно хотите удалить данную модель?"
|
|
30
|
+
image_remove_confirm: "Вы действительно хотите удалить данную картинку?"
|
|
31
|
+
language: "Язык"
|
|
32
|
+
locale_en: "Английский"
|
|
33
|
+
locale_ru: "Русский"
|
|
34
|
+
edit_related_item: "Редактировать"
|
|
35
|
+
crop: "Обрезать"
|
|
36
|
+
discard: "Отменить"
|
|
37
|
+
return: "и вернуться"
|
|
38
|
+
login_email_not_found: "Пользователь не найден"
|
|
39
|
+
login_incorrect_password: "Неверный пароль"
|
|
40
|
+
login_access_denied: "Отказано в доступе"
|
|
41
|
+
success_message: "Ok"
|
|
42
|
+
success_insert_message: "Запись вставлена!"
|
|
43
|
+
success_update_message: "Запись обновлена!"
|
|
44
|
+
success_delete_message: "Запись удалена!"
|
|
45
|
+
success_unlink_message: "Запись отсоединена!"
|
|
46
|
+
success_link_message: "Запись соединена!"
|
|
47
|
+
success_status_update_message: "Статус обновлен!"
|
|
48
|
+
clear_search: "Очистить"
|
data/config/routes.rb
CHANGED
|
@@ -6,10 +6,18 @@ RademadeAdmin::Engine.routes.draw do
|
|
|
6
6
|
root 'dashboard#index'
|
|
7
7
|
|
|
8
8
|
match 'file-upload' => 'file#upload', :via => [:post, :patch]
|
|
9
|
+
match 'file-download/:model/:id/:uploader/:column' => 'file#download', :via => [:get]
|
|
9
10
|
match 'file-crop' => 'file#crop', :via => [:post, :patch]
|
|
10
11
|
|
|
12
|
+
match 'gallery-upload' => 'gallery#upload', :via => [:post, :patch]
|
|
13
|
+
match 'gallery-crop' => 'gallery#crop', :via => [:post, :patch]
|
|
14
|
+
match 'gallery-sort' => 'gallery#sort', :via => [:post, :patch]
|
|
15
|
+
match 'gallery-remove/:id' => 'gallery#remove', :via => [:delete]
|
|
16
|
+
|
|
17
|
+
match 'status/:model/:id' => 'status#toggle', :via => [:post, :patch]
|
|
18
|
+
|
|
11
19
|
post 'sessions' => 'sessions#login'
|
|
12
|
-
get 'login' => 'dashboard#login', :as =>
|
|
20
|
+
get 'login' => 'dashboard#login', :as => :login
|
|
13
21
|
|
|
14
22
|
resources :sessions do
|
|
15
23
|
get 'logout', :on => :collection
|
data/lib/rademade_admin.rb
CHANGED
|
@@ -6,6 +6,7 @@ require 'carrierwave'
|
|
|
6
6
|
require 'cancan'
|
|
7
7
|
require 'bower-rails'
|
|
8
8
|
require 'compass-rails'
|
|
9
|
+
require 'select2-rails'
|
|
9
10
|
|
|
10
11
|
# js assets
|
|
11
12
|
require 'turbolinks'
|
|
@@ -28,4 +29,8 @@ module RademadeAdmin
|
|
|
28
29
|
RademadeAdmin::Configuration.user_class
|
|
29
30
|
end
|
|
30
31
|
|
|
32
|
+
def self.ability_class
|
|
33
|
+
RademadeAdmin::Configuration.ability_class
|
|
34
|
+
end
|
|
35
|
+
|
|
31
36
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
module RademadeAdmin
|
|
3
3
|
class Configuration
|
|
4
4
|
class << self
|
|
5
|
-
attr_reader :user_class
|
|
5
|
+
attr_reader :user_class, :ability_class
|
|
6
6
|
|
|
7
7
|
def configure(&block)
|
|
8
8
|
instance_eval &block
|
|
@@ -13,6 +13,11 @@ module RademadeAdmin
|
|
|
13
13
|
def admin_model(model)
|
|
14
14
|
@user_class ||= model
|
|
15
15
|
end
|
|
16
|
+
|
|
17
|
+
def ability_model(model)
|
|
18
|
+
@ability_class ||= model
|
|
19
|
+
end
|
|
20
|
+
|
|
16
21
|
end
|
|
17
22
|
end
|
|
18
23
|
end
|
|
@@ -9,6 +9,10 @@ module RademadeAdmin
|
|
|
9
9
|
|
|
10
10
|
config.assets.paths << "#{config.root}/vendor/assets/javascript/bower_components"
|
|
11
11
|
|
|
12
|
+
initializer 'ckeditor.assets_precompile', :group => :all do |app|
|
|
13
|
+
app.config.assets.precompile += %w( rademade_admin.css rademade_admin.js ckeditor/* )
|
|
14
|
+
end
|
|
15
|
+
|
|
12
16
|
$LOAD_PATH << "#{config.root}/app/services/"
|
|
13
17
|
|
|
14
18
|
paths = %W(
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module RademadeAdmin
|
|
2
|
+
module Hideable
|
|
3
|
+
|
|
4
|
+
STATUS_HIDDEN = 0
|
|
5
|
+
STATUS_SHOWN = 1
|
|
6
|
+
|
|
7
|
+
def method_missing(name, *arguments)
|
|
8
|
+
if %w(status status=).include? name
|
|
9
|
+
raise NotImplementedError.new "Implement '#{name}' method"
|
|
10
|
+
end
|
|
11
|
+
super
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def shown?
|
|
15
|
+
item_status = send(:status)
|
|
16
|
+
if item_status.is_a? Fixnum
|
|
17
|
+
item_status == STATUS_SHOWN
|
|
18
|
+
else
|
|
19
|
+
# for boolean values
|
|
20
|
+
item_status
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def show
|
|
25
|
+
send(:status=, STATUS_SHOWN)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def hide
|
|
29
|
+
send(:status=, STATUS_HIDDEN)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def toggle
|
|
33
|
+
shown? ? hide : show
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -36,10 +36,10 @@ module RademadeAdmin
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def related_list_item_edit_html(serialized_value)
|
|
39
|
-
if serialized_value[:
|
|
39
|
+
if serialized_value[:editurl]
|
|
40
40
|
template.content_tag(
|
|
41
41
|
:button, I18n.t('rademade_admin.edit_related_item'),
|
|
42
|
-
:'data-edit' => serialized_value[:
|
|
42
|
+
:'data-edit' => serialized_value[:editurl]
|
|
43
43
|
)
|
|
44
44
|
else
|
|
45
45
|
''
|
|
@@ -53,6 +53,10 @@ module RademadeAdmin
|
|
|
53
53
|
@fields ||= _map_fields
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
def columns
|
|
57
|
+
@columns ||= _model_fields
|
|
58
|
+
end
|
|
59
|
+
|
|
56
60
|
#
|
|
57
61
|
# @return [RademadeAdmin::Model::Info::Field]
|
|
58
62
|
#
|
|
@@ -113,6 +117,10 @@ module RademadeAdmin
|
|
|
113
117
|
@model.uploaders
|
|
114
118
|
end
|
|
115
119
|
|
|
120
|
+
def _model_fields
|
|
121
|
+
fields.keys
|
|
122
|
+
end
|
|
123
|
+
|
|
116
124
|
end
|
|
117
125
|
end
|
|
118
126
|
end
|