rademade_admin 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +34 -0
- data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.svg +228 -0
- data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/images/rademade_admin/backgrounds/back-blue.jpg +0 -0
- data/app/assets/images/rademade_admin/backgrounds/back-green.jpg +0 -0
- data/app/assets/images/rademade_admin/backgrounds/back-orange.png +0 -0
- data/app/assets/images/rademade_admin/backgrounds/blueish.jpg +0 -0
- data/app/assets/images/rademade_admin/backgrounds/select-bg.png +0 -0
- data/app/assets/images/rademade_admin/datatables/back_disabled.png +0 -0
- data/app/assets/images/rademade_admin/datatables/back_enabled.png +0 -0
- data/app/assets/images/rademade_admin/datatables/back_enabled_hover.png +0 -0
- data/app/assets/images/rademade_admin/datatables/forward_disabled.png +0 -0
- data/app/assets/images/rademade_admin/datatables/forward_enabled.png +0 -0
- data/app/assets/images/rademade_admin/datatables/forward_enabled_hover.png +0 -0
- data/app/assets/images/rademade_admin/datatables/sort_asc.png +0 -0
- data/app/assets/images/rademade_admin/datatables/sort_asc_disabled.png +0 -0
- data/app/assets/images/rademade_admin/datatables/sort_both.png +0 -0
- data/app/assets/images/rademade_admin/datatables/sort_desc.png +0 -0
- data/app/assets/images/rademade_admin/datatables/sort_desc_disabled.png +0 -0
- data/app/assets/images/rademade_admin/icons/btn-attach.png +0 -0
- data/app/assets/images/rademade_admin/icons/btn-setting.png +0 -0
- data/app/assets/images/rademade_admin/icons/btn-shuffle.png +0 -0
- data/app/assets/images/rademade_admin/icons/btn-tool.png +0 -0
- data/app/assets/images/rademade_admin/icons/buble.png +0 -0
- data/app/assets/images/rademade_admin/icons/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/rademade_admin/icons/glyphicons-halflings.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-arrow-black.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-gallery-edit.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-gallery-trash.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-mail.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-phone.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-table-delete.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-table-edit.png +0 -0
- data/app/assets/images/rademade_admin/icons/ico-table-new.png +0 -0
- data/app/assets/images/rademade_admin/icons/lens.png +0 -0
- data/app/assets/images/rademade_admin/icons/skin-nav-bullets.png +0 -0
- data/app/assets/images/rademade_admin/icons/table-icons.png +0 -0
- data/app/assets/images/rademade_admin/icons/table-img.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/animated-overlay.gif +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/slider-handler.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/slider-handler2.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
- data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/images/rademade_admin/logos/logo-white.png +0 -0
- data/app/assets/images/rademade_admin/logos/logo.png +0 -0
- data/app/assets/images/rademade_admin/notifier-loader-clean.gif +0 -0
- data/app/assets/images/rademade_admin/notifier-loader-plastic.gif +0 -0
- data/app/assets/images/rademade_admin/placeholders/new-gallery-img.png +0 -0
- data/app/assets/images/rademade_admin/placeholders/no-img-gallery.png +0 -0
- data/app/assets/images/rademade_admin/select2/select2.png +0 -0
- data/app/assets/images/rademade_admin/select2/select2x2.png +0 -0
- data/app/assets/images/rademade_admin/select2/spinner.gif +0 -0
- data/app/assets/images/rademade_admin/uniform/bg-input-focus.png +0 -0
- data/app/assets/images/rademade_admin/uniform/bg-input.png +0 -0
- data/app/assets/images/rademade_admin/uniform/sprite.png +0 -0
- data/app/assets/javascripts/rademade_admin.coffee +14 -0
- data/app/assets/javascripts/rademade_admin/app/app.coffee +1 -0
- data/app/assets/javascripts/rademade_admin/app/common/dnd-sort.coffee +42 -0
- data/app/assets/javascripts/rademade_admin/app/common/pagination.coffee +6 -0
- data/app/assets/javascripts/rademade_admin/app/common/related-index.coffee +54 -0
- data/app/assets/javascripts/rademade_admin/app/common/relation-list.coffee +109 -0
- data/app/assets/javascripts/rademade_admin/app/common/sort-list.coffee +47 -0
- data/app/assets/javascripts/rademade_admin/app/common/uploader.coffee +53 -0
- data/app/assets/javascripts/rademade_admin/app/form-popup/collection.coffee +20 -0
- data/app/assets/javascripts/rademade_admin/app/form-popup/initializer.coffee +43 -0
- data/app/assets/javascripts/rademade_admin/app/form-popup/model.coffee +4 -0
- data/app/assets/javascripts/rademade_admin/app/form-popup/view.coffee +57 -0
- data/app/assets/javascripts/rademade_admin/app/forms/insert.coffee +7 -0
- data/app/assets/javascripts/rademade_admin/app/forms/login.coffee +4 -0
- data/app/assets/javascripts/rademade_admin/app/forms/remove.coffee +6 -0
- data/app/assets/javascripts/rademade_admin/app/notifier/initialize.js +31 -0
- data/app/assets/javascripts/rademade_admin/detail_admin/theme.js +56 -0
- data/app/assets/javascripts/rademade_admin/form/form-ajax-submit.coffee +153 -0
- data/app/assets/javascripts/rademade_admin/form/library/jquery.form-serialize.js +54 -0
- data/app/assets/javascripts/rademade_admin/form/library/jquery.form.js +1121 -0
- data/app/assets/javascripts/rademade_admin/form/library/jquery.formrestrict.js +27 -0
- data/app/assets/javascripts/rademade_admin/form/library/jquery.validate.js +1231 -0
- data/app/assets/javascripts/rademade_admin/form/library/jquery.validate.messages_ru.js +27 -0
- data/app/assets/javascripts/rademade_admin/library/backbone.js +1581 -0
- data/app/assets/javascripts/rademade_admin/library/bootstrap/bootstrap.datepicker.js +989 -0
- data/app/assets/javascripts/rademade_admin/library/bootstrap/bootstrap.js +1992 -0
- data/app/assets/javascripts/rademade_admin/library/ckeditor/config.js +12 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery-ui-1.10.4.custom.min.js +6 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.dataTables.js +12099 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.js +2960 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.resize.js +60 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.stack.js +188 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.knob.js +661 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.tablednd.js +1 -0
- data/app/assets/javascripts/rademade_admin/library/jquery/jquery.uniform.min.js +1 -0
- data/app/assets/javascripts/rademade_admin/library/notifier.custom.js +431 -0
- data/app/assets/javascripts/rademade_admin/library/notifier.custom.min.js +15 -0
- data/app/assets/javascripts/rademade_admin/library/underscore.js +1276 -0
- data/app/assets/javascripts/rademade_admin/library/wysihtml5-0.3.0.js +9463 -0
- data/app/assets/stylesheets/rademade_admin.css +14 -0
- data/app/assets/stylesheets/rademade_admin/base.scss.erb +23 -0
- data/app/assets/stylesheets/rademade_admin/bootstrap/bootstrap-overrides.css.erb +341 -0
- data/app/assets/stylesheets/rademade_admin/bootstrap/bootstrap.css.erb +5911 -0
- data/app/assets/stylesheets/rademade_admin/bootstrap/main.scss.erb +78 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/chart-showcase.scss.erb +33 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/datatables.scss.erb +3 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/elements.scss.erb +665 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/error.scss.erb +19 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/form-showcase.scss.erb +87 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/form-wizard.scss.erb +261 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/gallery.scss.erb +106 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/grids.scss.erb +21 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/icons.scss.erb +115 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/index.scss.erb +290 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/layout.scss.erb +523 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/new-user.scss.erb +49 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/personal-info.scss.erb +144 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/popup.scss.erb +3 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/signin.scss.erb +128 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/tables.scss.erb +195 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/ui-elements.scss.erb +177 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/user-list.scss.erb +112 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/user-profile.scss.erb +169 -0
- data/app/assets/stylesheets/rademade_admin/detail_admin/web-app-icons.scss.erb +25 -0
- data/app/assets/stylesheets/rademade_admin/edit.css +7 -0
- data/app/assets/stylesheets/rademade_admin/file-upload.scss.erb +12 -0
- data/app/assets/stylesheets/rademade_admin/lib/bootstrap.datepicker.css.erb +302 -0
- data/app/assets/stylesheets/rademade_admin/lib/jquery-ui-1.10.2.custom.css.erb +544 -0
- data/app/assets/stylesheets/rademade_admin/lib/morris.css.erb +2 -0
- data/app/assets/stylesheets/rademade_admin/lib/select2.css.erb +513 -0
- data/app/assets/stylesheets/rademade_admin/lib/uniform.default.css.erb +366 -0
- data/app/assets/stylesheets/rademade_admin/notifier.custom.css.erb +661 -0
- data/app/assets/stylesheets/rademade_admin/scaffolds.scss.erb +32 -0
- data/app/controllers/rademade_admin/abstract_controller.rb +24 -0
- data/app/controllers/rademade_admin/admin_users_controller.rb +16 -0
- data/app/controllers/rademade_admin/application_controller.rb +7 -0
- data/app/controllers/rademade_admin/dashboard_controller.rb +16 -0
- data/app/controllers/rademade_admin/model_controller.rb +122 -0
- data/app/controllers/rademade_admin/sessions_controller.rb +22 -0
- data/app/helpers/rademade_admin/field_helper.rb +27 -0
- data/app/helpers/rademade_admin/form_helper.rb +63 -0
- data/app/helpers/rademade_admin/menu_helper.rb +45 -0
- data/app/helpers/rademade_admin/name_helper.rb +17 -0
- data/app/helpers/rademade_admin/upload_preview_helper.rb +59 -0
- data/app/helpers/rademade_admin/uri_helper.rb +104 -0
- data/app/inputs/rademade_admin/admin_file_input.rb +70 -0
- data/app/inputs/rademade_admin/admin_select_input.rb +81 -0
- data/app/inputs/rademade_admin/admin_textarea_input.rb +5 -0
- data/app/inputs/rademade_admin/boolean_input.rb +13 -0
- data/app/models/rademade_admin/ability.rb +39 -0
- data/app/models/rademade_admin/user.rb +6 -0
- data/app/serializers/autocomplete_serializer.rb +46 -0
- data/app/services/form_builder.rb +3 -0
- data/app/services/loader_service.rb +7 -0
- data/app/services/login.rb +18 -0
- data/app/services/login/error.rb +17 -0
- data/app/services/model_controller/instance_options.rb +38 -0
- data/app/services/model_controller/linker.rb +49 -0
- data/app/services/model_controller/model_options.rb +39 -0
- data/app/services/model_controller/notifier.rb +40 -0
- data/app/services/model_controller/templates.rb +27 -0
- data/app/services/saver.rb +69 -0
- data/app/services/search/conditions/abstract.rb +53 -0
- data/app/services/search/conditions/autocomplete.rb +44 -0
- data/app/services/search/conditions/list.rb +35 -0
- data/app/services/search/query_adapter/abstract.rb +54 -0
- data/app/services/search/query_adapter/active_record.rb +33 -0
- data/app/services/search/query_adapter/mongoid.rb +33 -0
- data/app/services/search/searcher.rb +19 -0
- data/app/services/sortable_service.rb +37 -0
- data/app/services/video_service.rb +22 -0
- data/app/views/layouts/rademade_admin.html.erb +13 -0
- data/app/views/rademade_admin/_blocks/_form_control.html.erb +5 -0
- data/app/views/rademade_admin/_blocks/_header.html.erb +30 -0
- data/app/views/rademade_admin/_blocks/_menu.html.erb +41 -0
- data/app/views/rademade_admin/_blocks/_pagination.html.erb +18 -0
- data/app/views/rademade_admin/_blocks/_sub_menu.html.erb +19 -0
- data/app/views/rademade_admin/_blocks/sub_menu/_link.html.erb +5 -0
- data/app/views/rademade_admin/_layouts/inner.html.erb +37 -0
- data/app/views/rademade_admin/_layouts/inner/form.html.erb +15 -0
- data/app/views/rademade_admin/_layouts/inner/index_table.html.erb +59 -0
- data/app/views/rademade_admin/_layouts/inner/related_index_table.html.erb +55 -0
- data/app/views/rademade_admin/abstract/_form.html.erb +10 -0
- data/app/views/rademade_admin/abstract/edit.html.erb +9 -0
- data/app/views/rademade_admin/abstract/form.html.erb +1 -0
- data/app/views/rademade_admin/abstract/index.html.erb +77 -0
- data/app/views/rademade_admin/abstract/new.html.erb +9 -0
- data/app/views/rademade_admin/abstract/related_index.html.erb +78 -0
- data/app/views/rademade_admin/dashboard/index.html.erb +9 -0
- data/app/views/rademade_admin/dashboard/login.html.erb +31 -0
- data/config/initializers/devise.rb +250 -0
- data/config/initializers/routes.rb +3 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/routes.rb +17 -0
- data/lib/rademade_admin.rb +26 -0
- data/lib/rademade_admin/configuration.rb +17 -0
- data/lib/rademade_admin/engine.rb +22 -0
- data/lib/rademade_admin/file_info_formatter.rb +12 -0
- data/lib/rademade_admin/hrml_buffer.rb +14 -0
- data/lib/rademade_admin/model/configuration.rb +52 -0
- data/lib/rademade_admin/model/configuration/fields.rb +33 -0
- data/lib/rademade_admin/model/data_adapter.rb +59 -0
- data/lib/rademade_admin/model/data_adapter/active_record.rb +53 -0
- data/lib/rademade_admin/model/data_adapter/mongoid.rb +49 -0
- data/lib/rademade_admin/model/graph.rb +36 -0
- data/lib/rademade_admin/model/info.rb +106 -0
- data/lib/rademade_admin/model/reflection.rb +31 -0
- data/lib/rademade_admin/model/reflection/data.rb +47 -0
- data/lib/rademade_admin/model/reflection/uploader.rb +18 -0
- data/lib/rademade_admin/routing.rb +3 -0
- data/lib/rademade_admin/routing/mapper.rb +42 -0
- data/lib/rademade_admin/routing/resource.rb +6 -0
- data/lib/rademade_admin/sortable.rb +12 -0
- data/lib/rademade_admin/uploader/photo.rb +13 -0
- data/lib/rademade_admin/uploader/video.rb +11 -0
- data/lib/rademade_admin/user.rb +16 -0
- data/lib/rademade_admin/version.rb +3 -0
- data/lib/tasks/rademade_admin_tasks.rake +4 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/rademade_admin/posts_controller.rb +9 -0
- data/test/dummy/app/controllers/rademade_admin/users_controller.rb +14 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/post.rb +9 -0
- data/test/dummy/app/models/user.rb +7 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +29 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/rademade_admin.rb +3 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/mongoid.yml +6 -0
- data/test/dummy/config/routes.rb +8 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/rademade_admin_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- metadata +691 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
#notice {
|
2
|
+
color: green;
|
3
|
+
}
|
4
|
+
|
5
|
+
.field_with_errors {
|
6
|
+
padding: 2px;
|
7
|
+
background-color: red;
|
8
|
+
display: table;
|
9
|
+
}
|
10
|
+
|
11
|
+
#error_explanation {
|
12
|
+
width: 450px;
|
13
|
+
border: 2px solid red;
|
14
|
+
padding: 7px;
|
15
|
+
padding-bottom: 0;
|
16
|
+
margin-bottom: 20px;
|
17
|
+
background-color: #f0f0f0;
|
18
|
+
h2 {
|
19
|
+
text-align: left;
|
20
|
+
font-weight: bold;
|
21
|
+
padding: 5px 5px 5px 15px;
|
22
|
+
font-size: 12px;
|
23
|
+
margin: -7px;
|
24
|
+
margin-bottom: 0px;
|
25
|
+
background-color: #c00;
|
26
|
+
color: #fff;
|
27
|
+
}
|
28
|
+
ul li {
|
29
|
+
font-size: 12px;
|
30
|
+
list-style: square;
|
31
|
+
}
|
32
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module RademadeAdmin
|
2
|
+
class AbstractController < ApplicationController
|
3
|
+
include ::RademadeAdmin::UriHelper
|
4
|
+
|
5
|
+
layout 'rademade_admin'
|
6
|
+
|
7
|
+
before_action :require_login
|
8
|
+
|
9
|
+
rescue_from ::CanCan::AccessDenied do |exception|
|
10
|
+
redirect_to root_url, :alert => exception.message
|
11
|
+
end
|
12
|
+
|
13
|
+
def require_login
|
14
|
+
redirect_to :controller => 'dashboard', :action => 'login' unless user_signed_in?
|
15
|
+
end
|
16
|
+
|
17
|
+
def render_errors(errors)
|
18
|
+
render :json => {
|
19
|
+
:errors => errors,
|
20
|
+
:message => 'Error occurred'
|
21
|
+
}, :status => :unprocessable_entity
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RademadeAdmin
|
2
|
+
|
3
|
+
class DashboardController < RademadeAdmin::AbstractController
|
4
|
+
|
5
|
+
skip_before_action :require_login, :only => [:login]
|
6
|
+
|
7
|
+
def index
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
def login
|
12
|
+
redirect_to :action => 'index' if user_signed_in?
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
module RademadeAdmin
|
2
|
+
class ModelController < RademadeAdmin::AbstractController
|
3
|
+
|
4
|
+
extend RademadeAdmin::ModelOptions
|
5
|
+
include RademadeAdmin::Linker
|
6
|
+
include RademadeAdmin::InstanceOptions
|
7
|
+
include RademadeAdmin::Templates
|
8
|
+
include RademadeAdmin::Notifier
|
9
|
+
|
10
|
+
before_filter :load_options
|
11
|
+
|
12
|
+
def create
|
13
|
+
authorize! :create, model_class
|
14
|
+
saver = Saver.new(model_info, params)
|
15
|
+
saver.create_model
|
16
|
+
if saver.save_model
|
17
|
+
saver.save_aggregated_data
|
18
|
+
success_insert saver.item
|
19
|
+
else
|
20
|
+
render_errors saver.errors
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def update
|
25
|
+
authorize! :update, model_class
|
26
|
+
saver = Saver.new(model_info, params)
|
27
|
+
if saver.update_model
|
28
|
+
saver.save_aggregated_data
|
29
|
+
success_update saver.item
|
30
|
+
else
|
31
|
+
render_errors saver.errors
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
authorize! :destroy, model_class
|
37
|
+
@item = find_item(params[:id])
|
38
|
+
@item.delete if @item
|
39
|
+
success_delete @item
|
40
|
+
end
|
41
|
+
|
42
|
+
def autocomplete
|
43
|
+
authorize! :read, model_class
|
44
|
+
search_conditions = Search::AutocompleteConditions.new(params, origin_fields, model_info.filter_fields)
|
45
|
+
searcher = Search::Searcher.new model_info
|
46
|
+
items = searcher.search search_conditions
|
47
|
+
render :json => AutocompleteSerializer.new(items)
|
48
|
+
end
|
49
|
+
|
50
|
+
# todo another action for related
|
51
|
+
def index
|
52
|
+
authorize! :read, model_class
|
53
|
+
is_related_list = !!params[:parent]
|
54
|
+
search_conditions = Search::ListConditions.new(params, origin_fields)
|
55
|
+
@searcher = Search::Searcher.new model_info
|
56
|
+
@items = @searcher.search search_conditions, is_related_list
|
57
|
+
@sortable_service = RademadeAdmin::SortableService.new(model_info, params)
|
58
|
+
respond_to do |format|
|
59
|
+
format.html { is_related_list ? render_template('related_index') : render_template }
|
60
|
+
format.json { render :json => @items }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def new
|
65
|
+
authorize! :create, model_class
|
66
|
+
@item = model_info.model.new
|
67
|
+
render_template
|
68
|
+
end
|
69
|
+
|
70
|
+
def edit
|
71
|
+
authorize! :update, model_class
|
72
|
+
@item = find_item(params[:id])
|
73
|
+
render_template
|
74
|
+
end
|
75
|
+
|
76
|
+
def unlink_relation
|
77
|
+
item = find_item(params[:id])
|
78
|
+
unlink(item)
|
79
|
+
item.save
|
80
|
+
success_unlink item
|
81
|
+
end
|
82
|
+
|
83
|
+
def link_relation
|
84
|
+
item = find_item(params[:id])
|
85
|
+
link(item)
|
86
|
+
item.save
|
87
|
+
success_link item
|
88
|
+
end
|
89
|
+
|
90
|
+
def show
|
91
|
+
authorize! :read, model_class
|
92
|
+
@item = find_item(params[:id])
|
93
|
+
respond_to do |format|
|
94
|
+
format.html { redirect_to :action => 'index' }
|
95
|
+
format.json { render :json => @item }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def form
|
100
|
+
authorize! :read, model_class
|
101
|
+
@item = params[:id].blank? ? model_info.model.new : find_item(params[:id])
|
102
|
+
render form_template_path(true), :layout => false
|
103
|
+
end
|
104
|
+
|
105
|
+
def re_sort
|
106
|
+
@sortable_service = RademadeAdmin::SortableService.new(model_info, params)
|
107
|
+
@sortable_service.re_sort_items
|
108
|
+
success_action
|
109
|
+
end
|
110
|
+
|
111
|
+
protected
|
112
|
+
|
113
|
+
def find_item(id)
|
114
|
+
model_info.model.find(id)
|
115
|
+
end
|
116
|
+
|
117
|
+
def render_template(template = action_name)
|
118
|
+
render abstract_template(template)
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RademadeAdmin
|
2
|
+
class SessionsController < RademadeAdmin::AbstractController
|
3
|
+
|
4
|
+
skip_before_action :require_login
|
5
|
+
|
6
|
+
def create
|
7
|
+
begin
|
8
|
+
user = RademadeAdmin::Login.admin( params )
|
9
|
+
sign_in user
|
10
|
+
render :json => user, :status => :ok
|
11
|
+
rescue RademadeAdmin::Login::Error => e
|
12
|
+
render :json => {:errors => e.field_messages}, :status => :precondition_failed
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def logout
|
17
|
+
sign_out current_user
|
18
|
+
redirect_to :controller => 'dashboard', :action => 'login'
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module RademadeAdmin::FieldHelper
|
3
|
+
|
4
|
+
def field_to_label(field)
|
5
|
+
field.to_s.sub('_', ' ').capitalize
|
6
|
+
end
|
7
|
+
|
8
|
+
def pagination_option(number, name = 'paginate')
|
9
|
+
hash_params = request.query_parameters.clone
|
10
|
+
hash_params.delete(:page)
|
11
|
+
hash_params[name.to_sym] = number
|
12
|
+
|
13
|
+
options = '?' + hash_params.map do |k, v|
|
14
|
+
"#{k.to_s}=#{v}"
|
15
|
+
end.join('&')
|
16
|
+
|
17
|
+
selected = number == request.query_parameters[name.to_sym].to_i
|
18
|
+
|
19
|
+
content_tag(:option, number.to_s, selected: selected, value: request.path+options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def input_attr(attrs = {})
|
23
|
+
attrs.merge :wrapper_html => {:class => 'form-group'},
|
24
|
+
:input_html => {:class => 'form-control'}
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module RademadeAdmin::FormHelper
|
2
|
+
|
3
|
+
def admin_form(record, model, &block)
|
4
|
+
semantic_form_for(
|
5
|
+
record,
|
6
|
+
:url => record.new_record? ? admin_create_uri(model) : admin_update_uri(record),
|
7
|
+
:as => :data,
|
8
|
+
:html => {
|
9
|
+
:multipart => true,
|
10
|
+
:novalidate => true,
|
11
|
+
:autocomplete => 'off',
|
12
|
+
:class => (record.new_record? ? 'insert-item-form' : 'update-item-form') + ' form-horizontal',
|
13
|
+
},
|
14
|
+
&block
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
def admin_field(form, name, params, model_info, record)
|
19
|
+
attrs = admin_default_params(name).merge(admin_field_params(params))
|
20
|
+
|
21
|
+
field = form.input(name, input_attr(attrs))
|
22
|
+
|
23
|
+
if multiple_relation?(model_info, name)
|
24
|
+
link = admin_field_link_to_list(name, model_info, record).to_s
|
25
|
+
else
|
26
|
+
link = ''
|
27
|
+
end
|
28
|
+
|
29
|
+
concat field + link
|
30
|
+
end
|
31
|
+
|
32
|
+
def admin_default_params(name)
|
33
|
+
{:label => field_to_label(name)}
|
34
|
+
end
|
35
|
+
|
36
|
+
def admin_field_link_to_list(name, model_info, record)
|
37
|
+
uri = admin_model_url_for(model_info.reflect_on_association(name).class_name, {
|
38
|
+
:action => :index,
|
39
|
+
:parent => model_info.model,
|
40
|
+
:parent_id => record.id.to_s
|
41
|
+
})
|
42
|
+
link_to(field_to_label(name).pluralize + ' list', uri)
|
43
|
+
end
|
44
|
+
|
45
|
+
def admin_field_params(field_params)
|
46
|
+
if field_params.is_a? Hash
|
47
|
+
field_params
|
48
|
+
else
|
49
|
+
{:as => field_params}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def multiple_relation?(model_info, name)
|
56
|
+
association = model_info.reflect_on_association(name)
|
57
|
+
if association
|
58
|
+
inner_model = association.class_name.to_s
|
59
|
+
model_info.has_many.include? inner_model
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module RademadeAdmin::MenuHelper
|
2
|
+
|
3
|
+
def main_menu
|
4
|
+
@model_infos = RademadeAdmin::Model::Graph.instance.root_models
|
5
|
+
menu = collect_children
|
6
|
+
menu.unshift({ :uri => url_for(:root), :name => 'Home', :ico => 'fa fa-home', :sub => [] })
|
7
|
+
menu
|
8
|
+
end
|
9
|
+
|
10
|
+
def active?(menu_item)
|
11
|
+
if menu_item[:is_current]
|
12
|
+
true
|
13
|
+
else
|
14
|
+
menu_item[:sub].each do |sub_item|
|
15
|
+
if active?(sub_item)
|
16
|
+
return true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def collect_children(parent = nil)
|
26
|
+
menu = []
|
27
|
+
@model_infos.each do |model_info|
|
28
|
+
if model_info.parent_menu_item == parent
|
29
|
+
uri = admin_list_uri(model_info)
|
30
|
+
menu << {
|
31
|
+
:uri => uri,
|
32
|
+
:model_info => model_info,
|
33
|
+
:sub => collect_children(model_info.model.to_s),
|
34
|
+
:is_current => current_menu?(uri, model_info)
|
35
|
+
}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
menu
|
39
|
+
end
|
40
|
+
|
41
|
+
def current_menu?(uri, model_info)
|
42
|
+
model_info == @model_info or (not uri.nil? and current_page?(uri))
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module RademadeAdmin::NameHelper
|
2
|
+
|
3
|
+
def admin_list_name(model_info = @model_info, suffix = true)
|
4
|
+
list_name = model_info.item_name
|
5
|
+
if suffix
|
6
|
+
list_name += ' list'
|
7
|
+
else
|
8
|
+
list_name = list_name.pluralize
|
9
|
+
end
|
10
|
+
list_name
|
11
|
+
end
|
12
|
+
|
13
|
+
def admin_add_name(model_info = @model_info)
|
14
|
+
"Add #{model_info.item_name.downcase}"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module RademadeAdmin::UploadPreviewHelper
|
2
|
+
|
3
|
+
include ActionView::Helpers::TagHelper
|
4
|
+
include ActionView::Context
|
5
|
+
|
6
|
+
#@param uploader [CarrierWave::Uploader::Base]
|
7
|
+
def file_preview_html(uploader)
|
8
|
+
content_tag(:div, :class => 'image-preview-wrapper') do
|
9
|
+
if uploader.blank?
|
10
|
+
empty_file_html(uploader)
|
11
|
+
else
|
12
|
+
uploaded_file_html(uploader)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def empty_file_html(uploader)
|
18
|
+
content_tag(:span, 'File not chosen', {
|
19
|
+
:class => 'no-file'
|
20
|
+
})
|
21
|
+
end
|
22
|
+
|
23
|
+
def uploaded_file_html(uploader)
|
24
|
+
included_modules = uploader.class.ancestors
|
25
|
+
if included_modules.include? RademadeAdmin::Uploader::Photo
|
26
|
+
uploaded_image_preview(uploader)
|
27
|
+
elsif included_modules.include? RademadeAdmin::Uploader::Video
|
28
|
+
uploaded_video_preview(uploader)
|
29
|
+
else
|
30
|
+
uploaded_file_default_preview(uploader)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def uploaded_image_preview(uploader)
|
35
|
+
content_tag(:img, '', {
|
36
|
+
:src => uploader.resize(200, 200),
|
37
|
+
:class => 'image-preview',
|
38
|
+
:width => 200,
|
39
|
+
:height => 200
|
40
|
+
})
|
41
|
+
end
|
42
|
+
|
43
|
+
def uploaded_video_preview(uploader)
|
44
|
+
content_tag(:img, '', {
|
45
|
+
:src => uploader.thumb_path,
|
46
|
+
:class => 'video-preview',
|
47
|
+
:width => 300
|
48
|
+
})
|
49
|
+
end
|
50
|
+
|
51
|
+
def uploaded_file_default_preview(uploader)
|
52
|
+
file_path = uploader.file.file
|
53
|
+
text = File.basename(file_path) + ', ' + RademadeAdmin::FileInfoFormatter.format_size(File.size(file_path))
|
54
|
+
content_tag(:span, text, {
|
55
|
+
:class => 'file-uploaded'
|
56
|
+
})
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|