├── spec
├── dummy
│ ├── log
│ │ └── .keep
│ ├── app
│ │ ├── mailers
│ │ │ └── .keep
│ │ ├── models
│ │ │ ├── .keep
│ │ │ ├── concerns
│ │ │ │ └── .keep
│ │ │ ├── author_rubric.rb
│ │ │ ├── color.rb
│ │ │ ├── gallery_photo.rb
│ │ │ ├── sequel_gallery.rb
│ │ │ ├── sequel_gallery_photo.rb
│ │ │ ├── active_gallery_photo.rb
│ │ │ ├── active_gallery.rb
│ │ │ ├── gallery.rb
│ │ │ ├── item.rb
│ │ │ ├── article.rb
│ │ │ ├── rubric.rb
│ │ │ ├── category.rb
│ │ │ ├── tag.rb
│ │ │ ├── author.rb
│ │ │ └── post.rb
│ │ ├── assets
│ │ │ ├── images
│ │ │ │ ├── .keep
│ │ │ │ └── rademade_admin
│ │ │ │ │ └── ico-s21cd51e5e9.png
│ │ │ ├── stylesheets
│ │ │ │ └── application.css
│ │ │ └── javascripts
│ │ │ │ └── application.js
│ │ ├── controllers
│ │ │ ├── concerns
│ │ │ │ └── .keep
│ │ │ ├── rademade_admin
│ │ │ │ ├── categories_controller.rb
│ │ │ │ ├── rubrics_controller.rb
│ │ │ │ ├── items_controller.rb
│ │ │ │ ├── tags_controller.rb
│ │ │ │ ├── articles_controller.rb
│ │ │ │ ├── authors_controller.rb
│ │ │ │ ├── users_controller.rb
│ │ │ │ └── posts_controller.rb
│ │ │ └── application_controller.rb
│ │ ├── helpers
│ │ │ └── application_helper.rb
│ │ ├── uploaders
│ │ │ ├── poster_uploader.rb
│ │ │ ├── file_uploader.rb
│ │ │ └── video_uploader.rb
│ │ └── views
│ │ │ └── layouts
│ │ │ └── application.html.erb
│ ├── lib
│ │ ├── assets
│ │ │ └── .keep
│ │ ├── sortable.rb
│ │ ├── tasks
│ │ │ └── sequel.rake
│ │ └── kaminari
│ │ │ └── sequel.rb
│ ├── public
│ │ ├── favicon.ico
│ │ └── .gitignore
│ ├── .gitignore
│ ├── bin
│ │ ├── rake
│ │ ├── bundle
│ │ └── rails
│ ├── config
│ │ ├── initializers
│ │ │ ├── rademade_admin.rb
│ │ │ ├── cookies_serializer.rb
│ │ │ ├── sequel.rb
│ │ │ ├── session_store.rb
│ │ │ ├── filter_parameter_logging.rb
│ │ │ ├── mime_types.rb
│ │ │ ├── backtrace_silencers.rb
│ │ │ ├── wrap_parameters.rb
│ │ │ ├── secret_token.rb
│ │ │ └── inflections.rb
│ │ ├── environment.rb
│ │ ├── boot.rb
│ │ ├── mongoid.yml
│ │ ├── routes.rb
│ │ ├── sequel.yml
│ │ ├── database.yml
│ │ ├── locales
│ │ │ └── en.yml
│ │ └── application.rb
│ ├── db
│ │ ├── sequel
│ │ │ ├── 1443713996_add_image_to_category.rb
│ │ │ ├── 1443771921_create_galleries.rb
│ │ │ ├── 1443686624_create_colors.rb
│ │ │ ├── 1443772735_add_gallery_to_items.rb
│ │ │ ├── 1443599015_create_categories.rb
│ │ │ ├── 1443771976_create_gallery_photos.rb
│ │ │ ├── 1443686660_create_colors_items.rb
│ │ │ └── 1443626796_create_items.rb
│ │ └── migrate
│ │ │ ├── 20150116105737_add_status_to_article.rb
│ │ │ ├── 20141224160954_add_gallery_to_article.rb
│ │ │ ├── 20141224160515_create_active_galleries.rb
│ │ │ ├── 20140927150300_create_rubrics.rb
│ │ │ ├── 20140909175800_remove_name_from_articles.rb
│ │ │ ├── 20140814075700_create_articles.rb
│ │ │ ├── 20140814075819_create_authors.rb
│ │ │ ├── 20140927181000_add_position_to_articles.rb
│ │ │ ├── 20140930165500_rename_author_rubrics.rb
│ │ │ ├── 20141001155800_add_publish_time_to_articles.rb
│ │ │ ├── 20141224161545_create_active_gallery_photos.rb
│ │ │ ├── 20140909175300_translate_articles.rb
│ │ │ ├── 20140927150400_create_authors_rubrics.rb
│ │ │ ├── 20140930172800_replace_author_rubrics.rb
│ │ │ └── 20140926142600_translate_authors.rb
│ ├── config.ru
│ ├── Rakefile
│ └── README.rdoc
├── factories
│ ├── post.rb
│ └── user.rb
└── features
│ └── menu_spec.rb
├── app
├── assets
│ ├── stylesheets
│ │ ├── var
│ │ │ ├── _path.sass
│ │ │ ├── _import.sass
│ │ │ └── _media.sass
│ │ ├── base
│ │ │ ├── _floats.sass
│ │ │ ├── _import.sass
│ │ │ ├── _fix.sass
│ │ │ ├── _text.sass
│ │ │ ├── _main.sass
│ │ │ └── _reset.sass
│ │ ├── lib
│ │ │ ├── _import.sass
│ │ │ ├── _leaflet.sass
│ │ │ ├── calendar
│ │ │ │ ├── _import.sass
│ │ │ │ ├── date
│ │ │ │ │ ├── _import.sass
│ │ │ │ │ ├── _main.sass
│ │ │ │ │ ├── _week.sass
│ │ │ │ │ ├── _month.sass
│ │ │ │ │ └── _day.sass
│ │ │ │ ├── time
│ │ │ │ │ ├── _import.sass
│ │ │ │ │ ├── _label.sass
│ │ │ │ │ ├── _input.sass
│ │ │ │ │ ├── _btn.sass
│ │ │ │ │ └── _main.sass
│ │ │ │ └── _main.sass
│ │ │ └── _jcrop.sass
│ │ ├── mixins
│ │ │ ├── _sprite-m.sass
│ │ │ ├── _text-indent.sass
│ │ │ ├── _clear.sass
│ │ │ ├── _text-overflow.sass
│ │ │ ├── _user-select.sass
│ │ │ ├── _background.sass
│ │ │ ├── _column.sass
│ │ │ ├── _import.sass
│ │ │ ├── _placeholder.sass
│ │ │ ├── _fonts-mixin.sass
│ │ │ ├── _media.sass
│ │ │ └── _fonts.scss
│ │ ├── blocks
│ │ │ ├── popup
│ │ │ │ ├── _import.sass
│ │ │ │ ├── _title.sass
│ │ │ │ ├── _main.sass
│ │ │ │ └── _gallery.sass
│ │ │ ├── pagination
│ │ │ │ ├── _import.sass
│ │ │ │ ├── _main.sass
│ │ │ │ ├── _sep.sass
│ │ │ │ └── _link.sass
│ │ │ ├── form
│ │ │ │ ├── file
│ │ │ │ │ └── _main.sass
│ │ │ │ ├── select2
│ │ │ │ │ ├── _main.sass
│ │ │ │ │ ├── _drop.sass
│ │ │ │ │ ├── _btn.sass
│ │ │ │ │ └── _result.sass
│ │ │ │ ├── _erorr.sass
│ │ │ │ ├── _textarea.sass
│ │ │ │ ├── _label.sass
│ │ │ │ ├── _main.sass
│ │ │ │ ├── _import.sass
│ │ │ │ ├── _checkbox.sass
│ │ │ │ └── _input.sass
│ │ │ ├── login
│ │ │ │ ├── _import.sass
│ │ │ │ ├── _main.sass
│ │ │ │ ├── _title.sass
│ │ │ │ ├── form
│ │ │ │ │ ├── _main.sass
│ │ │ │ │ ├── _label.sass
│ │ │ │ │ ├── _input.sass
│ │ │ │ │ └── _error.sass
│ │ │ │ └── _project.sass
│ │ │ ├── content
│ │ │ │ ├── _status.sass
│ │ │ │ ├── _import.sass
│ │ │ │ ├── _tooltip.sass
│ │ │ │ ├── _main.sass
│ │ │ │ ├── _header.sass
│ │ │ │ └── _draggable.sass
│ │ │ ├── nav
│ │ │ │ ├── _import.sass
│ │ │ │ ├── _logo.sass
│ │ │ │ ├── _copyright.sass
│ │ │ │ ├── _counter.sass
│ │ │ │ ├── _item.sass
│ │ │ │ ├── _dd.sass
│ │ │ │ ├── _user.sass
│ │ │ │ ├── _main.sass
│ │ │ │ ├── _link.sass
│ │ │ │ └── _btn.sass
│ │ │ ├── button
│ │ │ │ ├── _import.sass
│ │ │ │ ├── main
│ │ │ │ │ ├── colors
│ │ │ │ │ │ ├── _main.sass
│ │ │ │ │ │ └── _other.sass
│ │ │ │ │ └── _main.sass
│ │ │ │ ├── switch
│ │ │ │ │ ├── colors
│ │ │ │ │ │ └── _blue.sass
│ │ │ │ │ └── _main.sass
│ │ │ │ ├── link
│ │ │ │ │ └── _main.sass
│ │ │ │ └── _box.sass
│ │ │ └── _import.sass
│ │ └── rademade_admin.sass
│ ├── javascripts
│ │ ├── app
│ │ │ ├── app.coffee
│ │ │ ├── templates
│ │ │ │ ├── crop
│ │ │ │ │ ├── attributes.jst.ejs
│ │ │ │ │ └── size.jst.ejs
│ │ │ │ ├── select2
│ │ │ │ │ ├── edit.jst.ejs
│ │ │ │ │ └── add.jst.ejs
│ │ │ │ └── related-item.jst.ejs
│ │ │ ├── forms
│ │ │ │ ├── login.coffee
│ │ │ │ ├── insert.coffee
│ │ │ │ └── remove.coffee
│ │ │ ├── image
│ │ │ │ ├── preview.coffee
│ │ │ │ └── model.coffee
│ │ │ ├── select2
│ │ │ │ ├── model.coffee
│ │ │ │ └── related
│ │ │ │ │ ├── model.coffee
│ │ │ │ │ └── collection.coffee
│ │ │ ├── common
│ │ │ │ ├── url-visitor.coffee
│ │ │ │ ├── lang-panel.coffee
│ │ │ │ ├── turboform.coffee
│ │ │ │ ├── dnd-sort.coffee
│ │ │ │ └── status-toggler.coffee
│ │ │ ├── gallery
│ │ │ │ └── image
│ │ │ │ │ ├── collection.coffee
│ │ │ │ │ ├── model.coffee
│ │ │ │ │ ├── view.coffee
│ │ │ │ │ └── collection-view.coffee
│ │ │ └── compatibility
│ │ │ │ └── turbolinks.coffee
│ │ ├── form
│ │ │ └── form-initializer.coffee
│ │ └── settings
│ │ │ └── ajax-csrf.coffee
│ ├── fonts
│ │ ├── HelveticaNeueCyr-Bold.eot
│ │ ├── HelveticaNeueCyr-Bold.otf
│ │ ├── HelveticaNeueCyr-Bold.ttf
│ │ ├── HelveticaNeueCyr-Black.eot
│ │ ├── HelveticaNeueCyr-Black.otf
│ │ ├── HelveticaNeueCyr-Black.ttf
│ │ ├── HelveticaNeueCyr-Black.woff
│ │ ├── HelveticaNeueCyr-Bold.woff
│ │ ├── HelveticaNeueCyr-Light.eot
│ │ ├── HelveticaNeueCyr-Light.otf
│ │ ├── HelveticaNeueCyr-Light.ttf
│ │ ├── HelveticaNeueCyr-Light.woff
│ │ ├── HelveticaNeueCyr-Medium.eot
│ │ ├── HelveticaNeueCyr-Medium.otf
│ │ ├── HelveticaNeueCyr-Medium.ttf
│ │ ├── HelveticaNeueCyr-Roman.eot
│ │ ├── HelveticaNeueCyr-Roman.otf
│ │ ├── HelveticaNeueCyr-Roman.ttf
│ │ ├── HelveticaNeueCyr-Roman.woff
│ │ └── HelveticaNeueCyr-Medium.woff
│ └── images
│ │ └── rademade_admin
│ │ ├── fav1.ico
│ │ ├── fav2.ico
│ │ ├── loader.GIF
│ │ ├── leaflet
│ │ ├── layers.png
│ │ ├── layers-2x.png
│ │ ├── marker-icon.png
│ │ ├── marker-icon-2x.png
│ │ └── marker-shadow.png
│ │ ├── notifier-loader-clean.gif
│ │ ├── notifier-loader-plastic.gif
│ │ └── ico
│ │ ├── sortable-down.svg
│ │ ├── sortable-down_active.svg
│ │ ├── sortable-up.svg
│ │ ├── sortable-up_active.svg
│ │ ├── prev.svg
│ │ ├── left-arrow.svg
│ │ ├── left-arrow_blue.svg
│ │ ├── checked.svg
│ │ ├── next.svg
│ │ ├── right-arrow.svg
│ │ ├── right-arrow_blue.svg
│ │ └── add.svg
├── views
│ ├── rademade_admin
│ │ ├── abstract
│ │ │ ├── edit.html.erb
│ │ │ ├── form.html.erb
│ │ │ ├── new.html.erb
│ │ │ ├── _form.html.erb
│ │ │ └── index.html.erb
│ │ ├── _blocks
│ │ │ ├── _pagination.html.erb
│ │ │ ├── button
│ │ │ │ ├── _cancel.html.erb
│ │ │ │ ├── _gallery.html.erb
│ │ │ │ ├── _save.html.erb
│ │ │ │ ├── _preview.html.erb
│ │ │ │ ├── _edit.html.erb
│ │ │ │ ├── _save_and_return.html.erb
│ │ │ │ ├── _destroy.html.erb
│ │ │ │ └── _hide.html.erb
│ │ │ ├── navigation
│ │ │ │ ├── _menu.html.erb
│ │ │ │ └── menu
│ │ │ │ │ └── _item.html.erb
│ │ │ ├── form
│ │ │ │ ├── _control.html.erb
│ │ │ │ └── _lang_panel.html.erb
│ │ │ ├── _on_page_switcher.html.erb
│ │ │ ├── _search.html.erb
│ │ │ └── _navigation.html.erb
│ │ ├── dashboard
│ │ │ ├── index.html.erb
│ │ │ └── login.html.erb
│ │ └── _layouts
│ │ │ ├── login.html.erb
│ │ │ ├── parts
│ │ │ └── _head.html.erb
│ │ │ ├── content_item.html.erb
│ │ │ └── main.html.erb
│ ├── layouts
│ │ ├── login.html.erb
│ │ └── rademade_admin.html.erb
│ └── kaminari
│ │ └── rademade
│ │ ├── _gap.html.erb
│ │ ├── _last_page.html.erb
│ │ ├── _first_page.html.erb
│ │ ├── _next_page.html.erb
│ │ ├── _prev_page.html.erb
│ │ ├── _page.html.erb
│ │ └── _paginator.html.erb
├── controllers
│ └── rademade_admin
│ │ ├── application_controller.rb
│ │ ├── status_controller.rb
│ │ ├── dashboard_controller.rb
│ │ └── sessions_controller.rb
├── services
│ ├── loader_service.rb
│ ├── search
│ │ ├── part
│ │ │ ├── where.rb
│ │ │ ├── order.rb
│ │ │ └── abstract.rb
│ │ ├── where.rb
│ │ └── conditions
│ │ │ └── autocomplete.rb
│ ├── login
│ │ └── error.rb
│ ├── status
│ │ └── toggler.rb
│ ├── video_service.rb
│ ├── login.rb
│ ├── error_service.rb
│ ├── upload
│ │ ├── preview.rb
│ │ └── image_presenter.rb
│ ├── model_controller
│ │ ├── templates.rb
│ │ └── model_options.rb
│ ├── sortable_service.rb
│ └── csv_service.rb
├── inputs
│ └── rademade_admin
│ │ ├── date_input.rb
│ │ ├── date_time_input.rb
│ │ └── boolean_input.rb
└── helpers
│ └── rademade_admin
│ ├── pagination_helper.rb
│ └── field_type_helper.rb
├── config
├── locales
│ ├── select2.en.yml
│ ├── select2.ru.yml
│ ├── simple_form.ru.yml
│ ├── rademade_kaminari.en.yml
│ ├── rademade_kaminari.ru.yml
│ └── simple_form.en.yml
├── initializers
│ ├── ckeditor.rb
│ ├── routes.rb
│ ├── simple_form
│ │ ├── rademade_component.rb
│ │ ├── errors.rb
│ │ └── wrappers.rb
│ └── kaminari_route_proxy.rb
└── routes.rb
├── .coveralls.yml
├── lib
├── rademade_admin
│ ├── routing.rb
│ ├── version.rb
│ ├── model
│ │ ├── info
│ │ │ ├── relation
│ │ │ │ └── gallery.rb
│ │ │ ├── field
│ │ │ │ └── type.rb
│ │ │ ├── uploader.rb
│ │ │ ├── uploaders.rb
│ │ │ ├── relations.rb
│ │ │ ├── data_item
│ │ │ │ └── initializer.rb
│ │ │ └── field.rb
│ │ ├── configuration
│ │ │ ├── csv_fields.rb
│ │ │ ├── field_label.rb
│ │ │ ├── form_fields.rb
│ │ │ ├── list_fields.rb
│ │ │ ├── list_field.rb
│ │ │ ├── form_field.rb
│ │ │ └── fields_labels.rb
│ │ └── adapter
│ │ │ ├── query
│ │ │ ├── mysql.rb
│ │ │ ├── postgresql.rb
│ │ │ ├── active_record.rb
│ │ │ └── sequel.rb
│ │ │ ├── persistence
│ │ │ ├── sequel.rb
│ │ │ ├── mongoid.rb
│ │ │ └── active_record.rb
│ │ │ ├── persistence.rb
│ │ │ └── query.rb
│ ├── uploader
│ │ ├── video.rb
│ │ ├── carrier_wave.rb
│ │ ├── photo.rb
│ │ └── crop_photo.rb
│ ├── html_buffer.rb
│ ├── routing
│ │ └── resource.rb
│ ├── gallery.rb
│ ├── bower
│ │ └── performer.rb
│ ├── sortable.rb
│ ├── user.rb
│ ├── search
│ │ └── searcher.rb
│ ├── ckeditor_utils.rb
│ ├── hideable.rb
│ └── input
│ │ └── related_select_input
│ │ └── model_data.rb
├── tasks
│ ├── rademade_admin_tasks.rake
│ └── rademade_bower_install.rake
├── templates
│ └── erb
│ │ └── scaffold
│ │ └── _form.html.erb
└── rademade_admin.rb
├── .gitignore
├── bin
└── rails
├── .travis.yml
├── Rakefile
├── Gemfile
├── LICENSE
└── gulpfile.js
/spec/dummy/log/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/app/mailers/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/app/models/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/lib/assets/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/public/favicon.ico:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/app/assets/images/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/app/models/concerns/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/dummy/app/controllers/concerns/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/var/_path.sass:
--------------------------------------------------------------------------------
1 | $img-path: "/main/"
--------------------------------------------------------------------------------
/spec/dummy/.gitignore:
--------------------------------------------------------------------------------
1 | /tmp/
2 | /bower_components/
3 |
--------------------------------------------------------------------------------
/spec/dummy/public/.gitignore:
--------------------------------------------------------------------------------
1 | /assets/
2 | /uploads/
3 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/app.coffee:
--------------------------------------------------------------------------------
1 | window.Select2Input = {}
--------------------------------------------------------------------------------
/app/views/rademade_admin/abstract/edit.html.erb:
--------------------------------------------------------------------------------
1 | <%= render @form_template_path %>
--------------------------------------------------------------------------------
/app/views/rademade_admin/abstract/form.html.erb:
--------------------------------------------------------------------------------
1 | <%= render @form_template_path %>
--------------------------------------------------------------------------------
/app/views/rademade_admin/abstract/new.html.erb:
--------------------------------------------------------------------------------
1 | <%= render @form_template_path %>
--------------------------------------------------------------------------------
/config/locales/select2.en.yml:
--------------------------------------------------------------------------------
1 | en:
2 | select2:
3 | no_results: 'No results'
--------------------------------------------------------------------------------
/config/locales/select2.ru.yml:
--------------------------------------------------------------------------------
1 | ru:
2 | select2:
3 | no_results: 'Нет записей'
--------------------------------------------------------------------------------
/.coveralls.yml:
--------------------------------------------------------------------------------
1 | service_name: travis-ci
2 | repo_token: GZ1vfO3jtXqzbApOsPVcndcZ106iRO8ws
3 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/var/_import.sass:
--------------------------------------------------------------------------------
1 | @import "media"
2 | @import "color"
3 | @import "path"
--------------------------------------------------------------------------------
/app/views/layouts/login.html.erb:
--------------------------------------------------------------------------------
1 | <%= render :template => @template_service.login_layout %>
--------------------------------------------------------------------------------
/app/views/rademade_admin/abstract/_form.html.erb:
--------------------------------------------------------------------------------
1 | <%= render @template_service.form_block %>
--------------------------------------------------------------------------------
/app/views/rademade_admin/abstract/index.html.erb:
--------------------------------------------------------------------------------
1 | <%= render @template_service.list_block %>
--------------------------------------------------------------------------------
/app/assets/stylesheets/base/_floats.sass:
--------------------------------------------------------------------------------
1 | .fll
2 | float: left
3 |
4 | .flr
5 | float: right
--------------------------------------------------------------------------------
/app/views/layouts/rademade_admin.html.erb:
--------------------------------------------------------------------------------
1 | <%= render :template => @template_service.main_layout %>
--------------------------------------------------------------------------------
/app/assets/stylesheets/lib/_import.sass:
--------------------------------------------------------------------------------
1 | @import "leaflet"
2 | @import "jcrop"
3 | @import "calendar/import"
--------------------------------------------------------------------------------
/lib/rademade_admin/routing.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | module RademadeAdmin::Routing
3 |
4 | end
5 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/templates/crop/attributes.jst.ejs:
--------------------------------------------------------------------------------
1 |
2 |
<%= t('rademade_admin.show_on_page') %>
3 |
<%
4 | @pagination_variants.each_with_index do |per_page, index|
5 | concat on_page_item(per_page, index)
6 | end
7 | %>
8 |
--------------------------------------------------------------------------------
/config/initializers/simple_form/errors.rb:
--------------------------------------------------------------------------------
1 | module SimpleForm
2 | module Components
3 | module Errors
4 |
5 | def errors_on_attribute
6 | object.errors[attribute_name] || []
7 | end
8 |
9 | def full_errors_on_attribute
10 | object.errors.full_messages_for(attribute_name) || []
11 | end
12 |
13 | end
14 | end
15 | end
--------------------------------------------------------------------------------
/app/assets/javascripts/app/templates/related-item.jst.ejs:
--------------------------------------------------------------------------------
1 | <%
2 | if (isSortable) {
3 | %>
5 | <%- attributes.each do |attribute| -%>
6 | <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
7 | <%- end -%>
8 |
9 |
10 |
10 | <%
14 | if content_for?(:content)
15 | %>
<%= yield(:content) %>
<%
16 | end
17 | %>
--------------------------------------------------------------------------------
/app/views/kaminari/rademade/_paginator.html.erb:
--------------------------------------------------------------------------------
1 | <%= paginator.render do -%>
2 |
19 | <% end -%>
20 |
--------------------------------------------------------------------------------
/lib/rademade_admin/model/info/uploader.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | module RademadeAdmin
3 | module Model
4 | class Info
5 | class Uploader
6 |
7 | attr_reader :name, :uploader
8 |
9 | def initialize(name, uploader)
10 | @name, @uploader = name, uploader
11 | end
12 |
13 | def remove_proc
14 | method_name = :"remove_#{name}="
15 | Proc.new do
16 | self.send(method_name, true)
17 | end
18 | end
19 |
20 | def full_path_for(image_path)
21 | "#{CarrierWave.root}#{image_path}"
22 | end
23 |
24 | end
25 | end
26 | end
27 | end
--------------------------------------------------------------------------------
/spec/dummy/lib/kaminari/sequel.rb:
--------------------------------------------------------------------------------
1 | module Kaminari
2 | module Sequel
3 |
4 | def self.included(base)
5 |
6 | base.class_eval do
7 | alias :total_pages :page_count
8 | alias :limit_value :page_size
9 | end
10 |
11 | ::Sequel::DatasetPagination.class_eval do
12 |
13 | def paginate_with_safe_page(page_no, page_size, record_count = nil)
14 | page_no = page_no.to_i
15 | page_no = page_no == 0 ? 1 : page_no
16 | paginate_without_safe_page(page_no, page_size, record_count)
17 | end
18 |
19 | alias_method_chain :paginate, :safe_page
20 |
21 | end
22 |
23 | end
24 |
25 | end
26 | end
--------------------------------------------------------------------------------
/spec/dummy/app/assets/javascripts/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into application.js, which will include all the files
2 | // listed below.
3 | //
4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 | // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 | //
7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 | // compiled file.
9 | //
10 | // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11 | // about supported directives.
12 | //
13 | //= require_tree .
14 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/blocks/login/_project.sass:
--------------------------------------------------------------------------------
1 | .login-project
2 | position: absolute
3 | top: 0
4 | left: 0
5 | width: 100%
6 | text-align: center
7 | transform: translateY(0%)
8 | animation: projectFade 1.5s alternate ease
9 |
10 | .login-project-box
11 | display: inline-block
12 | padding: 9px 25px
13 | min-width: 330px
14 | background: $login-project-bg
15 | box-sizing: border-box
16 | border-radius: 0 0 4px 4px
17 |
18 | .login-project-title
19 | color: $login-project-title-color
20 | font-size: em(18)
21 |
22 |
23 | @keyframes projectFade
24 | 0%
25 | transform: translateY(-100%)
26 | 100%
27 | transform: translateY(0%)
28 |
--------------------------------------------------------------------------------
/lib/rademade_admin.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | require 'kaminari'
3 | require 'cancan'
4 | require 'bower-rails'
5 | require 'autoprefixer-rails'
6 | require 'sass-rails'
7 | require 'configurations'
8 |
9 | # js assets
10 | require 'turbolinks'
11 | require 'i18n-js'
12 | require 'simple_form'
13 | require 'ckeditor'
14 | require 'rademade_admin/ckeditor_utils'
15 |
16 | require 'rademade_admin/sortable'
17 | require 'rademade_admin/engine'
18 |
19 | module RademadeAdmin
20 |
21 | include Configurations
22 |
23 | configurable :admin_class, :ability_class
24 |
25 | configuration_defaults do |default_config|
26 | default_config.ability_class = ::RademadeAdmin::Ability
27 | end
28 |
29 | end
--------------------------------------------------------------------------------
/spec/dummy/app/controllers/rademade_admin/users_controller.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | class RademadeAdmin::UsersController < RademadeAdmin::ModelController
3 |
4 | options do
5 | parent_menu 'Mongoid'
6 | list :email, :first_name, :last_name, :avatar, :admin
7 | csv do
8 | full_name
9 | email
10 | admin :method => :admin_text
11 | end
12 | form do
13 | email :hint => 'Электронная почта'
14 | avatar
15 | first_name
16 | last_name
17 | address :'rademade_admin/location'
18 | posts
19 | admin :boolean
20 | end
21 | labels do
22 | full_name 'Полное имя'
23 | admin 'Права'
24 | end
25 | end
26 |
27 | end
28 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/blocks/button/link/_main.sass:
--------------------------------------------------------------------------------
1 | .btn-link
2 | display: inline-block
3 | margin: 10px 20px 0 0
4 | font-size: em(14)
5 | border: 0
6 | background: none
7 | cursor: pointer
8 | &.is-blue
9 | color: $btn-blue-color
10 | &:hover
11 | span
12 | border-bottom: 1px solid $btn-blue-color
13 | &.is-red
14 | color: $btn-red-color
15 | &:hover
16 | span
17 | border-bottom: 1px solid $btn-red-color
18 |
19 | &.is-label
20 | width: 35%
21 | padding-right: 26px
22 | margin-right: 0
23 | +media-below($media-mobile)
24 | width: 100%
25 |
26 | span
27 | border-bottom: 1px solid transparent
28 | transition: border 0.3s ease-in-out
--------------------------------------------------------------------------------
/app/assets/stylesheets/blocks/form/_input.sass:
--------------------------------------------------------------------------------
1 | .input-holder
2 | float: left
3 | display: block
4 | position: relative
5 | width: 60%
6 | +media-below($media-mobile)
7 | float: none
8 | width: 100%
9 |
10 | &.in-error
11 | .form-description
12 | display: none
13 | .form-input
14 | border: 1px solid $form-input-border-error
15 |
16 | .form-input
17 | display: block
18 | width: 100%
19 | padding: 11px 15px
20 | font-size: em(14)
21 | color: $form-input-color
22 | border: 1px solid $form-input-border
23 | border-radius: 4px
24 | box-sizing: border-box
25 | transition: border $transitionVal ease-in-out
26 | &:focus
27 | border: 1px solid $form-input-border-focus
28 |
--------------------------------------------------------------------------------
/app/views/rademade_admin/_blocks/button/_hide.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | if @model_info.hideable? && can?(:toggle, item)
3 | toggle_url = admin_url_for(
4 | :controller => :'rademade_admin/status',
5 | :action => :toggle,
6 | :model => @model,
7 | :id => item.id
8 | ) #todo via native method. Add route resource
9 | %>
2 |
7 |
8 | <%= login_form do |f| %>
9 |
10 | Rademade
11 | Admin
12 |
<%
13 | concat f.input :email, :label => t('rademade_admin.login.email'), :placeholder => t('rademade_admin.login.email')
14 | concat f.input :password, :label => t('rademade_admin.login.password'), :placeholder => t('rademade_admin.login.password')
15 | concat f.submit t('rademade_admin.login.submit'), :class => 'btn login-btn full-width'
16 | end
17 | %>
18 |
--------------------------------------------------------------------------------
/spec/dummy/app/models/post.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | class Post
3 | include RademadeAdmin::Hideable
4 | include Mongoid::Document
5 | include Sortable
6 |
7 | belongs_to :user
8 | belongs_to :gallery
9 | belongs_to :main_post, :class_name => 'Post', :inverse_of => :other_posts
10 | has_many :other_posts, :class_name => 'Post', :inverse_of => :main_post, :sortable => true
11 | has_and_belongs_to_many :tags, :sortable => true
12 |
13 | mount_uploader :avatar, PosterUploader
14 | mount_uploader :document, FileUploader
15 | mount_uploader :video, VideoUploader
16 |
17 | field :headline, :type => String
18 | field :text, :type => String, :localize => true
19 | field :status, :type => Integer
20 | field :post_date, :type => Date
21 | field :status, :type => Mongoid::Boolean, :default => RademadeAdmin::Hideable::STATUS_SHOWN
22 |
23 | validates_presence_of :headline
24 |
25 | def to_s
26 | headline
27 | end
28 |
29 | end
30 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/blocks/content/_header.sass:
--------------------------------------------------------------------------------
1 | .content-header
2 | position: relative
3 | padding-left: 0
4 | background-color: $content-header-bg
5 | border-bottom: 1px solid $content-header-border
6 | box-sizing: border-box
7 | +clear
8 |
9 | +media-below($media-desktop)
10 | position: fixed
11 | z-index: 988
12 | width: 100%
13 | padding-left: 50px
14 |
15 | .close-link
16 | position: absolute
17 | display: none
18 | top: 50%
19 | right: 25px
20 | transform: translateY(-50%)
21 | opacity: .4
22 | cursor: pointer
23 | transition: opacity $transitionVal ease-in-out
24 | +sprite(close_gray)
25 | &:hover
26 | opacity: .8
27 |
28 | .content-header-link
29 | position: relative
30 | display: block
31 | padding: 12px 70px 12px 20px
32 | color: $content-header-link-color
33 | font-weight: bold
34 | font-size: em(20)
35 | line-height: 25px
36 | box-sizing: border-box
37 | +to(block)
--------------------------------------------------------------------------------
/app/assets/images/rademade_admin/ico/sortable-up.svg:
--------------------------------------------------------------------------------
1 |
2 | <%
4 | element_id_prefix = "locale-#{form_field.name}-"
5 | %>
<%
18 | I18n.available_locales.each do |locale|
19 | %>
<%
20 | admin_localized_field(f, form_field, @model_info, locale)
21 | %>
<%
22 | end
23 | %>
<%
24 | end %>
--------------------------------------------------------------------------------
/lib/rademade_admin/model/info/relations.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | module RademadeAdmin
3 | module Model
4 | class Info
5 | class Relations
6 |
7 | #@param data_adapter [RademadeAdmin::Model::Adapter::Data]
8 | #
9 | def initialize(data_adapter)
10 | @data_adapter = data_adapter
11 | end
12 |
13 | # Return array of RademadeAdmin::Model::Info::Relation
14 | #
15 | # @return [Array]
16 | #
17 | def all
18 | @data_adapter.relations
19 | end
20 |
21 | # Return status of relation availability
22 | #
23 | # @param name [String]
24 | # @return [Bool]
25 | #
26 | def exist?(name)
27 | @data_adapter.has_relation? name
28 | end
29 |
30 | # @param name [String]
31 | # @return [RademadeAdmin::Model::Info::Relation]
32 | #
33 | def relation(name)
34 | @data_adapter.relation name
35 | end
36 |
37 | end
38 | end
39 | end
40 | end
--------------------------------------------------------------------------------
/lib/rademade_admin/model/info/data_item/initializer.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | module RademadeAdmin
3 | module Model
4 | class Info
5 | class DataItem
6 | class Initializer
7 |
8 | def auto
9 | return from_relation if @relation
10 | return form_field if @field
11 | raise 'No relation and field given for DateItem initialization' # TODO custom exception
12 | end
13 |
14 | def from_relation
15 | build(@relation.name, @relation.foreign_key)
16 | end
17 |
18 | def form_field
19 | name = @field.name
20 | build(name, name)
21 | end
22 |
23 | def build(name, order_column)
24 | RademadeAdmin::Model::Info::DataItem.new(name, @field, @relation, order_column)
25 | end
26 |
27 | protected
28 |
29 | def initialize(field, relation)
30 | @field, @relation = field, relation
31 | end
32 |
33 | end
34 | end
35 | end
36 | end
37 | end
38 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/lib/calendar/date/_month.sass:
--------------------------------------------------------------------------------
1 | .rademade-calendar .calendar-date
2 | .date-month
3 | position: relative
4 | height: 43px
5 | border-bottom: 1px solid #E1E6EF
6 | .month-btn
7 | position: absolute
8 | top: 0
9 | width: 35px
10 | height: 100%
11 | cursor: pointer
12 | &:hover
13 | background-color: #E1E6EF
14 |
15 | &:after
16 | position: absolute
17 | content: ""
18 | top: 50%
19 | left: 50%
20 | transform: translateY(-50%) translateX(-50%)
21 | &.month-prev
22 | left: 0
23 | &:after
24 | @extend .svg-calendar-prev-dims
25 | @extend .svg-calendar-prev
26 |
27 | &.month-next
28 | right: 0
29 | &:after
30 | @extend .svg-calendar-next-dims
31 | @extend .svg-calendar-next
32 |
33 | .month-val
34 | display: block
35 | width: 100%
36 | font-size: 15px
37 | color: #000
38 | font-weight: bold
39 | text-align: center
40 | line-height: 43px
--------------------------------------------------------------------------------
/lib/rademade_admin/input/related_select_input/model_data.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | module RademadeAdmin
3 | module Input
4 | class RelatedSelectInput
5 | module ModelData
6 |
7 | protected
8 |
9 | def model
10 | @model ||= @builder.object
11 | end
12 |
13 | def related_data_item
14 | unless @related_data_item
15 | model_info = Model::Graph.instance.model_info(model.class)
16 | @related_data_item = model_info.data_items.data_item(attribute_name)
17 | end
18 | @related_data_item
19 | end
20 |
21 | def related_to
22 | related_data_item.relation.to || related_value.class
23 | end
24 |
25 | def relation_getter
26 | related_data_item.getter
27 | end
28 |
29 | def multiple?
30 | related_data_item.relation.has_many?
31 | end
32 |
33 | def related_value
34 | @related_value ||= model.send(relation_getter)
35 | end
36 |
37 | end
38 | end
39 | end
40 | end
--------------------------------------------------------------------------------
/lib/rademade_admin/uploader/crop_photo.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | require 'rademade_admin/uploader/photo'
3 |
4 | module RademadeAdmin
5 | module Uploader
6 | module CropPhoto
7 | include ::RademadeAdmin::Uploader::Photo
8 |
9 | def crop_image(params, image_path = nil)
10 | crop_path = image_path ? full_image_path(image_path) : path
11 | crop(crop_path, params[:x], params[:y], params[:w], params[:h])
12 | end
13 |
14 | def crop(image_path, x, y, width, height)
15 | image = ::Magick::Image.read(image_path).first
16 | image.crop!(x.to_i, y.to_i, width.to_i, height.to_i, true)
17 | image.write("#{Rails.root}/tmp/cache/#{x}_#{y}_#{width}_#{height}_#{/([^\/]*)$/.match(image_path)[1]}")
18 | File.open(image.filename)
19 | end
20 |
21 | def original_dimensions
22 | if file && model
23 | image = Magick::Image.ping(file.file).first
24 | [image.columns, image.rows]
25 | else
26 | []
27 | end
28 | end
29 |
30 | end
31 | end
32 | end
33 |
--------------------------------------------------------------------------------
/app/assets/javascripts/app/gallery/image/collection-view.coffee:
--------------------------------------------------------------------------------
1 | class @GalleryImageCollectionView extends Backbone.View
2 |
3 | initImages : (className) ->
4 | @images = new GalleryImageCollection()
5 | @images.setClassName(className)
6 | @$el.find('[data-image-id]').each (index, image) =>
7 | @_initImage $(image)
8 |
9 | initSort : () ->
10 | sortUrl = @$el.data('sortableUrl')
11 | if sortUrl
12 | @images.setSortUrl sortUrl
13 | @$el.sortable
14 | stop : () =>
15 | @images.sort @_getSortedImages()
16 |
17 | addImage : ($image) ->
18 | @_initImage $image
19 | @$el.append $image
20 |
21 | _getSortedImages : () =>
22 | images = []
23 | @$el.find('[data-image-id]').each (index, el) ->
24 | images.push $(el).data('imageId')
25 | images
26 |
27 | _initImage : ($image) ->
28 | @images.add GalleryImageView.init($image)
29 |
30 | @init : ($el, className) ->
31 | collectionView = new this
32 | el : $el
33 | collectionView.initImages className
34 | collectionView.initSort()
35 | collectionView
--------------------------------------------------------------------------------
/lib/rademade_admin/model/adapter/query/active_record.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | require 'rademade_admin/model/adapter/query/sql'
3 |
4 | module RademadeAdmin
5 | module Model
6 | module Adapter
7 | class Query
8 | class ActiveRecord < RademadeAdmin::Model::Adapter::Query::Sql
9 |
10 | def find(ids)
11 | @model.find(ids)
12 | end
13 |
14 | def initial
15 | @model.unscoped
16 | end
17 |
18 | protected
19 |
20 | def order(order_conditions)
21 | order_conditions.parts.each do |part|
22 | if part.is_a? RademadeAdmin::Search::Part::Order
23 | # todo
24 | else
25 | @result = @result.order(part[:field] => part[:value])
26 | end
27 | end
28 | @result
29 | end
30 |
31 | def paginate(page_condition, per_page_condition)
32 | @result.page(page_condition).per(per_page_condition)
33 | end
34 |
35 | end
36 | end
37 | end
38 | end
39 | end
--------------------------------------------------------------------------------
/app/helpers/rademade_admin/field_type_helper.rb:
--------------------------------------------------------------------------------
1 | # -*- encoding : utf-8 -*-
2 | module RademadeAdmin::FieldTypeHelper
3 |
4 | def field_type(data_item, type)
5 | if type.nil?
6 | default_field_type(data_item)
7 | else
8 | rademade_admin_type(type)
9 | end
10 | end
11 |
12 | def default_field_type(data_item)
13 | if data_item.gallery_relation?
14 | :'rademade_admin/gallery'
15 | elsif data_item.has_relation?
16 | :'rademade_admin/related_select'
17 | elsif data_item.has_uploader?
18 | :'rademade_admin/file'
19 | elsif data_item.date_field?
20 | :'rademade_admin/date'
21 | elsif data_item.date_time_field?
22 | :'rademade_admin/date_time'
23 | elsif data_item.boolean_field?
24 | rademade_admin_boolean_type
25 | else
26 | nil
27 | end
28 | end
29 |
30 | def rademade_admin_type(type)
31 | if type == :boolean
32 | rademade_admin_boolean_type
33 | else
34 | type
35 | end
36 | end
37 |
38 | def rademade_admin_boolean_type
39 | :'rademade_admin/boolean'
40 | end
41 |
42 | end
--------------------------------------------------------------------------------
/app/assets/images/rademade_admin/ico/prev.svg:
--------------------------------------------------------------------------------
1 |
2 |