From 88470e38b0cf96cd108db0483aaa60991e53268c Mon Sep 17 00:00:00 2001 From: Yuri Kanivetsky Date: Mon, 28 Nov 2016 16:46:55 +0200 Subject: [PATCH 01/20] Make rademade_admin get along with md files angular-rails-templates [registers][1] in sprockets any template engine it can from the list: erb haml liquid md radius slim str textile wiki. apitome comes with template engine for md files. It must be poorly written, since sprockets chokes on ckeditor's CHANGES.md file (and others) as a result. Namely it [fails][2] to add extension back to the filename. But I didn't dig into it enough to be certain who's the culprit. [1]: https://github.com/pitr/angular-rails-templates/blob/v1.0.2/lib/angular-rails-templates/engine.rb#L12-L21 [2]: https://github.com/rails/sprockets/blob/v2.12.4/lib/sprockets/asset_attributes.rb#L50 --- lib/rademade_admin/engine.rb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/rademade_admin/engine.rb b/lib/rademade_admin/engine.rb index 83bf6a0d..1f9a5222 100644 --- a/lib/rademade_admin/engine.rb +++ b/lib/rademade_admin/engine.rb @@ -12,7 +12,22 @@ class Engine < ::Rails::Engine config.assets.paths << "#{config.root}/vendor/assets/javascript/bower_components" initializer 'ckeditor.assets_precompile', :group => :all do |app| - app.config.assets.precompile += %w(rademade_admin.css rademade_admin.js ckeditor/* rademade_admin/fav1.ico) + filter_ckeditor_assets = Proc.new do |logical_path| + File.fnmatch('ckeditor/*', logical_path) \ + && ! [ + 'ckeditor/CHANGES', + 'ckeditor/LICENSE', + 'ckeditor/README', + 'ckeditor/plugins/scayt/CHANGELOG', + 'ckeditor/plugins/scayt/LICENSE', + 'ckeditor/plugins/scayt/README', + 'ckeditor/plugins/wsc/LICENSE', + 'ckeditor/plugins/wsc/README', + 'ckeditor/skins/moono/readme', + ].include?(logical_path) + end + app.config.assets.precompile << filter_ckeditor_assets + app.config.assets.precompile += %w(rademade_admin.css rademade_admin.js rademade_admin/fav1.ico) end $LOAD_PATH << "#{config.root}/app/services/" @@ -29,4 +44,4 @@ class Engine < ::Rails::Engine end end -end \ No newline at end of file +end From 7a25e7372d47e8f8b23ab06fd43fb6779986eaeb Mon Sep 17 00:00:00 2001 From: Praffesor Date: Tue, 7 Mar 2017 12:06:40 +0200 Subject: [PATCH 02/20] Update Bowerfile --- Bowerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bowerfile b/Bowerfile index 259d755f..c691dd2e 100644 --- a/Bowerfile +++ b/Bowerfile @@ -26,7 +26,7 @@ asset 'TableDnD' # Form asset 'moment' -asset 'jquery-form', :github => 'malsup/form' +asset 'jquery-form', :github => 'malsup/form', :ref => 'v3.19' asset 'jquery-serialize', :github => 'macek/jquery-serialize-object' asset 'jquery-formrestrict', :github => 'treyhunner/jquery-formrestrict' asset 'jquery-validation', :github => 'jzaefferer/jquery-validation#v1.13.1' From 66bd0f2e56f97f23832b7b4901213dc9bec724e6 Mon Sep 17 00:00:00 2001 From: Praffesor Date: Tue, 7 Mar 2017 12:21:27 +0200 Subject: [PATCH 03/20] fixed jquery form --- Bowerfile | 2 +- app/assets/javascripts/rademade_admin.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Bowerfile b/Bowerfile index c691dd2e..259d755f 100644 --- a/Bowerfile +++ b/Bowerfile @@ -26,7 +26,7 @@ asset 'TableDnD' # Form asset 'moment' -asset 'jquery-form', :github => 'malsup/form', :ref => 'v3.19' +asset 'jquery-form', :github => 'malsup/form' asset 'jquery-serialize', :github => 'macek/jquery-serialize-object' asset 'jquery-formrestrict', :github => 'treyhunner/jquery-formrestrict' asset 'jquery-validation', :github => 'jzaefferer/jquery-validation#v1.13.1' diff --git a/app/assets/javascripts/rademade_admin.coffee b/app/assets/javascripts/rademade_admin.coffee index 474c2f30..6916e703 100644 --- a/app/assets/javascripts/rademade_admin.coffee +++ b/app/assets/javascripts/rademade_admin.coffee @@ -15,7 +15,7 @@ #= require jquery-filthypillow/jquery.filthypillow #= require jquery-fileupload/js/jquery.fileupload #= require jquery-fileupload/js/jquery.iframe-transport -#= require jquery-form/jquery.form +#= require jquery-form/src/jquery.form #= require jquery-serialize/jquery.serialize-object #= require jquery-formrestrict/jquery.formrestrict #= require jquery-validation/src/core From a231af194bf2587d58c241075034ba4e30eb3400 Mon Sep 17 00:00:00 2001 From: Isaiev Date: Mon, 3 Apr 2017 17:12:58 +0300 Subject: [PATCH 04/20] add explicit definition for table columns --- lib/rademade_admin/model/adapter/query/postgresql.rb | 2 ++ lib/rademade_admin/model/adapter/query/sql.rb | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/rademade_admin/model/adapter/query/postgresql.rb b/lib/rademade_admin/model/adapter/query/postgresql.rb index b12c7d37..b3b4998b 100644 --- a/lib/rademade_admin/model/adapter/query/postgresql.rb +++ b/lib/rademade_admin/model/adapter/query/postgresql.rb @@ -10,6 +10,8 @@ class Postgresql < RademadeAdmin::Model::Adapter::Query::ActiveRecord protected def build_where_condition(field: nil, value: nil) + field = table_field(field) + if value.is_a? Regexp ["LOWER(#{field}) ~ ?", [value.source]] elsif value.is_a? Array diff --git a/lib/rademade_admin/model/adapter/query/sql.rb b/lib/rademade_admin/model/adapter/query/sql.rb index 861a13d4..6a401c77 100644 --- a/lib/rademade_admin/model/adapter/query/sql.rb +++ b/lib/rademade_admin/model/adapter/query/sql.rb @@ -30,7 +30,7 @@ def collect_where_conditions(where_conditions) end def build_where_condition(field: nil, value: nil) - field = "`#{field}`" + field = table_field(field) if value.is_a? Regexp ["LOWER(#{field}) REGEXP ?", [value.source]] elsif value.is_a? Array @@ -39,6 +39,10 @@ def build_where_condition(field: nil, value: nil) ["#{field} = ?", [value]] end end + + def table_field(field) + "#{@model.table_name}.#{field}" + end end end end From bd4b1a7cc5e29bd9ee29e673f879b4d4f35b2fb6 Mon Sep 17 00:00:00 2001 From: Sergey Slavin Date: Fri, 7 Apr 2017 18:03:14 +0300 Subject: [PATCH 05/20] Fixed search value case. --- lib/rademade_admin/model/adapter/query/postgresql.rb | 2 +- lib/rademade_admin/model/adapter/query/sql.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rademade_admin/model/adapter/query/postgresql.rb b/lib/rademade_admin/model/adapter/query/postgresql.rb index b3b4998b..6dfa5718 100644 --- a/lib/rademade_admin/model/adapter/query/postgresql.rb +++ b/lib/rademade_admin/model/adapter/query/postgresql.rb @@ -13,7 +13,7 @@ def build_where_condition(field: nil, value: nil) field = table_field(field) if value.is_a? Regexp - ["LOWER(#{field}) ~ ?", [value.source]] + ["LOWER(#{field}) ~ LOWER(?)", [value.source]] elsif value.is_a? Array ["#{field} IN (?)", [value]] else diff --git a/lib/rademade_admin/model/adapter/query/sql.rb b/lib/rademade_admin/model/adapter/query/sql.rb index 6a401c77..f76e9319 100644 --- a/lib/rademade_admin/model/adapter/query/sql.rb +++ b/lib/rademade_admin/model/adapter/query/sql.rb @@ -32,7 +32,7 @@ def collect_where_conditions(where_conditions) def build_where_condition(field: nil, value: nil) field = table_field(field) if value.is_a? Regexp - ["LOWER(#{field}) REGEXP ?", [value.source]] + ["LOWER(#{field}) REGEXP LOWER(?)", [value.source]] elsif value.is_a? Array ["#{field} IN (?)", [value]] else From f7d8f7f20d01917eb0980b8e232d485dc110adde Mon Sep 17 00:00:00 2001 From: Sergey Date: Sat, 8 Apr 2017 14:26:46 +0300 Subject: [PATCH 06/20] uploader fix --- app/assets/javascripts/app/common/uploader.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/app/common/uploader.coffee b/app/assets/javascripts/app/common/uploader.coffee index 69e5cded..198cbc85 100644 --- a/app/assets/javascripts/app/common/uploader.coffee +++ b/app/assets/javascripts/app/common/uploader.coffee @@ -23,7 +23,7 @@ class @Uploader extends Backbone.View updateUploader : (result) => @$el.find('[data-preview-item]').replaceWith(result.html) @$el.find('.upload-holder.hide').removeClass('hide') - @$hidden.val(result.file[@$uploader.data('column')].url) + @$hidden.val(result.file.url) ImagePreview.initPlugin() showLoader : () -> From c97ed3bb8024d2f996a86fa2e385aa594aa280d7 Mon Sep 17 00:00:00 2001 From: Vladislav Melanitskiy Date: Sat, 22 Apr 2017 02:54:22 +0300 Subject: [PATCH 07/20] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 1586b342..25aa2a05 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,11 @@ rademade_admin **Best rails admin panel!** +Live demo +-------------- +1. [http://admin.rademade.com/login](http://admin.rademade.com/login) +2. Login: mrtom@rademade.com +3. Password: 12345678 How to use it -------------- From 739aed3236c9111cdeaad141d3cb88945d2a69fa Mon Sep 17 00:00:00 2001 From: Isaiev Date: Thu, 27 Apr 2017 15:58:58 +0300 Subject: [PATCH 08/20] fix asstets path --- app/assets/javascripts/rademade_admin.coffee | 17 +++++++++-------- app/assets/stylesheets/rademade_admin.sass | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/rademade_admin.coffee b/app/assets/javascripts/rademade_admin.coffee index 6916e703..40562eca 100644 --- a/app/assets/javascripts/rademade_admin.coffee +++ b/app/assets/javascripts/rademade_admin.coffee @@ -3,13 +3,13 @@ #= require jquery/dist/jquery #= require jquery-ui/ui/core #= require jquery-ui/ui/widget -#= require jquery-ui/ui/mouse -#= require jquery-ui/ui/draggable -#= require jquery-ui/ui/resizable -#= require jquery-ui/ui/sortable -#= require jquery-ui/ui/slider -#= require jquery-ui/ui/tabs -#= require jquery-ui/ui/datepicker +#= require jquery-ui/ui/widgets/mouse +#= require jquery-ui/ui/widgets/draggable +#= require jquery-ui/ui/widgets/resizable +#= require jquery-ui/ui/widgets/sortable +#= require jquery-ui/ui/widgets/slider +#= require jquery-ui/ui/widgets/tabs +#= require jquery-ui/ui/widgets/datepicker #= require touch-punch/jquery.ui.touch-punch #= require jcrop/js/jquery.Jcrop #= require jquery-filthypillow/jquery.filthypillow @@ -31,12 +31,13 @@ #= require flot/jquery.flot.resize #= require flot/jquery.flot.stack #= require knob/js/jquery.knob -#= require uniform/dist/jquery.uniform.min +#= require uniform/dist/js/jquery.uniform.bundled #= require data-tables/media/js/jquery.dataTables #= require wysihtml5/dist/wysihtml5-0.3.0 #= require underscore/underscore #= require backbone/backbone #= require backbone-notifier/js/backbone.notifier +#= require jquery-ujs #= require_tree ./ckeditor #= require_tree ./settings #= require_tree ./form diff --git a/app/assets/stylesheets/rademade_admin.sass b/app/assets/stylesheets/rademade_admin.sass index df508851..4000d365 100644 --- a/app/assets/stylesheets/rademade_admin.sass +++ b/app/assets/stylesheets/rademade_admin.sass @@ -4,7 +4,7 @@ *= require jquery-ui/themes/base/core *= require jquery-ui/themes/base/slider *= require jquery-ui/themes/base/datepicker - *= require uniform/themes/default/css/uniform.default + *= require uniform/dist/css/default.css *= require jcrop/css/jquery.Jcrop *= require leaflet/dist/leaflet *= require backbone-notifier/css/notifier-base From 465ea3b3d11a32ae9964db20a3ce311a15a0e6b5 Mon Sep 17 00:00:00 2001 From: Yuri Kanivetsky Date: Fri, 28 Apr 2017 20:08:05 +0300 Subject: [PATCH 09/20] jquery-form: add version constraint --- Bowerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bowerfile b/Bowerfile index 7f6ed4d5..fa0a0aff 100644 --- a/Bowerfile +++ b/Bowerfile @@ -27,7 +27,7 @@ asset 'TableDnD' # Form asset 'moment' -asset 'jquery-form', :github => 'malsup/form' +asset 'jquery-form', :github => 'malsup/form#3.45.0' asset 'jquery-serialize', :github => 'macek/jquery-serialize-object' asset 'jquery-formrestrict', :github => 'treyhunner/jquery-formrestrict' asset 'jquery-validation', :github => 'jzaefferer/jquery-validation#v1.13.1' From 6fa425a21d054bc3eb7dfa83d03ce3a9c18fbdba Mon Sep 17 00:00:00 2001 From: Vladislav Melanitskiy Date: Wed, 3 May 2017 16:22:16 +0300 Subject: [PATCH 10/20] Update README.md --- README.md | 76 ++----------------------------------------------------- 1 file changed, 2 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index 25aa2a05..cf0865ac 100644 --- a/README.md +++ b/README.md @@ -22,81 +22,9 @@ Live demo 2. Login: mrtom@rademade.com 3. Password: 12345678 -How to use it +How to install -------------- - -1) Add `gem 'rademade_admin'` to Gemfile - -2) Update `config/initializers/assets.rb` with line: -```ruby -config.assets.precompile += %w(rademade_admin.css rademade_admin.js) -``` - -3) Mount rails engine at routing.rb `mount RademadeAdmin::Engine => '/admin'` - -4) Create `User` model and other needed models -```ruby -class User < ActiveRecord::Base - include RademadeAdmin::UserModule - - has_secure_password - - validates :password, length: { minimum: 8 }, allow_nil: true - - def self.get_by_email(email) - where(email: email).first - end - - alias valid_password? authenticate - - def to_s - email - end - -end -``` - - -5) Add rademade_admin initializer `initializers/rademade_admin.rb` -```ruby -RademadeAdmin.configure do |config| - config.admin_class = User -end - -``` - -6) Create admin controller. Example `app/controllers/rademade_admin/users_controller.rb` -```ruby -class RademadeAdmin::UsersController < RademadeAdmin::ModelController - - # You can leave controller absolutely empty! - - options do - list do - email - end - form do - first_name - email - password :hint => 'Or leave it empty' - end - end - -end -``` - -7) Add `admin_resources` to `routers.rb` -```ruby -namespace :rademade_admin, :path => 'admin' do - admin_resources :users -end -``` - -8) Install assets with bower `rake rademade_admin:bower:install` - -9) Start rails `rails s` - -**Good luck :)** +[https://github.com/Rademade/rademade_admin/wiki/install](https://github.com/Rademade/rademade_admin/wiki/install) Supported options From 87e2ba24bf2e6c29ddadeef62a8815a2db666cea Mon Sep 17 00:00:00 2001 From: Vladislav Melanitskiy Date: Wed, 3 May 2017 16:24:42 +0300 Subject: [PATCH 11/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cf0865ac..0421e66e 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Live demo -------------- 1. [http://admin.rademade.com/login](http://admin.rademade.com/login) 2. Login: mrtom@rademade.com -3. Password: 12345678 +3. Password: 123456 How to install -------------- From a22058df6f721cb824e11125f3088d1f4518175a Mon Sep 17 00:00:00 2001 From: Praffesor Date: Thu, 4 May 2017 16:41:28 +0300 Subject: [PATCH 12/20] Revert "jquery-form: add version constraint" --- Bowerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bowerfile b/Bowerfile index fa0a0aff..7f6ed4d5 100644 --- a/Bowerfile +++ b/Bowerfile @@ -27,7 +27,7 @@ asset 'TableDnD' # Form asset 'moment' -asset 'jquery-form', :github => 'malsup/form#3.45.0' +asset 'jquery-form', :github => 'malsup/form' asset 'jquery-serialize', :github => 'macek/jquery-serialize-object' asset 'jquery-formrestrict', :github => 'treyhunner/jquery-formrestrict' asset 'jquery-validation', :github => 'jzaefferer/jquery-validation#v1.13.1' From a4ce760f088cf68ac35f071896353fbfecdfef22 Mon Sep 17 00:00:00 2001 From: Isaiev Date: Fri, 19 May 2017 19:18:52 +0300 Subject: [PATCH 13/20] temp: fixes --- Bowerfile | 2 +- app/assets/javascripts/rademade_admin.coffee | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/Bowerfile b/Bowerfile index 7f6ed4d5..19bf4d4b 100644 --- a/Bowerfile +++ b/Bowerfile @@ -11,7 +11,7 @@ asset 'leaflet' asset 'data-tables', :github => 'DataTables/DataTables' asset 'flot', :github => 'flot/flot' asset 'knob', :github => 'aterrien/jQuery-Knob' -asset 'uniform', :github => 'AudithSoftworks/Uniform', :ref => 'v2.2.0' +asset 'uniform', :github => 'AudithSoftworks/Uniform' asset 'jquery-ui', :github => 'jquery/jquery-ui#1.11.4' asset 'jquery-filthypillow', :github => 'Rademade/jquery.filthypillow#master' asset 'magnific-popup', :github => 'dimsemenov/Magnific-Popup' diff --git a/app/assets/javascripts/rademade_admin.coffee b/app/assets/javascripts/rademade_admin.coffee index 237fff69..8042da40 100644 --- a/app/assets/javascripts/rademade_admin.coffee +++ b/app/assets/javascripts/rademade_admin.coffee @@ -4,13 +4,6 @@ #= require jquery-ujs #= require jquery-ui/ui/core #= require jquery-ui/ui/widget -#= require jquery-ui/ui/widgets/mouse -#= require jquery-ui/ui/widgets/draggable -#= require jquery-ui/ui/widgets/resizable -#= require jquery-ui/ui/widgets/sortable -#= require jquery-ui/ui/widgets/slider -#= require jquery-ui/ui/widgets/tabs -#= require jquery-ui/ui/widgets/datepicker #= require touch-punch/jquery.ui.touch-punch #= require jcrop/js/jquery.Jcrop #= require jquery-filthypillow/jquery.filthypillow @@ -32,7 +25,7 @@ #= require flot/jquery.flot.resize #= require flot/jquery.flot.stack #= require knob/js/jquery.knob -#= require uniform/dist/js/jquery.uniform.bundled +#= require uniform/src/js/jquery.uniform #= require data-tables/media/js/jquery.dataTables #= require floatThead/dist/jquery.floatThead #= require wysihtml5/dist/wysihtml5-0.3.0 From 502620bd018ff8dbd81189c5edc5e92d5774dd97 Mon Sep 17 00:00:00 2001 From: andrey-abramow Date: Fri, 26 May 2017 17:30:48 +0300 Subject: [PATCH 14/20] fix related items destroy --- .../select2/related/collection-view.coffee | 3 + .../app/select2/related/collection.coffee | 7 ++ .../app/select2/related/view.coffee | 7 ++ .../app/templates/related-item.jst.ejs | 6 +- .../related_select_input/related_list.rb | 9 +- .../model/adapter/data/active_record.rb | 25 ++++ lib/rademade_admin/model/info/relation.rb | 5 + rademade_admin.gemspec | 117 ++++++++++++------ 8 files changed, 135 insertions(+), 44 deletions(-) diff --git a/app/assets/javascripts/app/select2/related/collection-view.coffee b/app/assets/javascripts/app/select2/related/collection-view.coffee index 4876480c..b486f24b 100644 --- a/app/assets/javascripts/app/select2/related/collection-view.coffee +++ b/app/assets/javascripts/app/select2/related/collection-view.coffee @@ -23,7 +23,10 @@ class @Select2Input.RelatedCollectionView extends Backbone.View @init : ($list) -> views = [] collection = new Select2Input.RelatedCollection + console.log($list) collection.setSortable $list.data('sortable') + collection.setDeletable $list.data('deletable') + $list.find('li').each () -> relatedView = Select2Input.RelatedView.init $(this) views.push relatedView diff --git a/app/assets/javascripts/app/select2/related/collection.coffee b/app/assets/javascripts/app/select2/related/collection.coffee index ad04582c..d4b3a336 100644 --- a/app/assets/javascripts/app/select2/related/collection.coffee +++ b/app/assets/javascripts/app/select2/related/collection.coffee @@ -16,9 +16,16 @@ class @Select2Input.RelatedCollection extends Backbone.Collection setSortable : (sortable) -> @sortable = sortable + setDeletable : (deletable) -> + @deletable = deletable + isSortable : () -> @sortable + isDeletable : () -> + console.log 'isDeletable' + @deletable + resort : () -> @sort() @_triggerChange() diff --git a/app/assets/javascripts/app/select2/related/view.coffee b/app/assets/javascripts/app/select2/related/view.coffee index 0b9e6f7b..e5bf434f 100644 --- a/app/assets/javascripts/app/select2/related/view.coffee +++ b/app/assets/javascripts/app/select2/related/view.coffee @@ -32,9 +32,16 @@ class @Select2Input.RelatedView extends Backbone.View else false + isDeletable: () -> + if @model.collection + @model.collection.isDeletable() + else + false + _getHtml : (data) -> JST['app/templates/related-item'] _.extend isSortable : @isSortable() + isDeletable : @isDeletable() , data @init : ($el) -> diff --git a/app/assets/javascripts/app/templates/related-item.jst.ejs b/app/assets/javascripts/app/templates/related-item.jst.ejs index ef3d0d5c..12226c65 100644 --- a/app/assets/javascripts/app/templates/related-item.jst.ejs +++ b/app/assets/javascripts/app/templates/related-item.jst.ejs @@ -3,4 +3,8 @@ if (isSortable) { %><% } %> - \ No newline at end of file +<% +if (isDeletable) { + %><% +} +%> \ No newline at end of file diff --git a/lib/rademade_admin/input/related_select_input/related_list.rb b/lib/rademade_admin/input/related_select_input/related_list.rb index 8a43934b..86b2cebc 100644 --- a/lib/rademade_admin/input/related_select_input/related_list.rb +++ b/lib/rademade_admin/input/related_select_input/related_list.rb @@ -10,7 +10,8 @@ def related_list_html template.content_tag(:ul, related_list_items_html, { :class => 'select2-items-list', :data => { - :sortable => sortable_relation? + :sortable => sortable_relation?, + :deletable => destroyable_relation? } }) end @@ -51,7 +52,7 @@ def related_list_item_remove_html template.content_tag(:button, I18n.t('rademade_admin.relation.destroy'), { :'data-remove' => '', :class => 'select2-item-remove' - }) + }) if destroyable_relation? end def related_item_class @@ -64,6 +65,10 @@ def sortable_relation? related_data_item.relation.sortable? end + def destroyable_relation? + related_data_item.relation.destroyable? + end + end end end diff --git a/lib/rademade_admin/model/adapter/data/active_record.rb b/lib/rademade_admin/model/adapter/data/active_record.rb index b7bf0ef1..27b6e40e 100644 --- a/lib/rademade_admin/model/adapter/data/active_record.rb +++ b/lib/rademade_admin/model/adapter/data/active_record.rb @@ -33,6 +33,7 @@ def _map_relations :name => name, :from => @model, :to => to_class, + :destroyable => relation_destroyable?(relation_info), :getter => name, :setter => :"#{name}=", :type => type, @@ -47,6 +48,30 @@ def _map_relations relations end + def relation_destroyable?(relation_info) + !validates_association?(relation_info) && + !validates_presence?(relation_info) + end + + def model_validates?(model, name, validator_class) + model.validators.select do |validator| + validator.class == validator_class && + validator.attributes.include?(name) + end.any? + end + + def validates_association?(relation_info) + model_validates?(@model, + relation_info.name, + ::ActiveRecord::Validations::AssociatedValidator) + end + + def validates_presence?(relation_info) + model_validates?(relation_info.klass, + relation_info.foreign_key, + ::ActiveRecord::Validations::PresenceValidator) + end + def _add_non_localizable_fields(fields) @model.attribute_types.each do |field_name, field_data| name = field_name.to_sym diff --git a/lib/rademade_admin/model/info/relation.rb b/lib/rademade_admin/model/info/relation.rb index 4ffbd5a3..878e62ee 100644 --- a/lib/rademade_admin/model/info/relation.rb +++ b/lib/rademade_admin/model/info/relation.rb @@ -18,6 +18,10 @@ def sortable? @sortable end + def destroyable? + @destroyable + end + def gallery? @is_gallery end @@ -46,6 +50,7 @@ def initialize(opt = {}) @foreign_key = opt[:foreign_key] @sortable = opt[:sortable] @sortable_field = opt[:sortable_field] + @destroyable = opt[:destroyable] @is_gallery = opt[:is_gallery] end diff --git a/rademade_admin.gemspec b/rademade_admin.gemspec index 79015ac3..c7692e74 100644 --- a/rademade_admin.gemspec +++ b/rademade_admin.gemspec @@ -1,47 +1,82 @@ -#encoding: utf-8 -$:.push File.expand_path('../lib', __FILE__) - -require 'rademade_admin/version' +# -*- encoding: utf-8 -*- +# stub: rademade_admin 0.3.0 ruby lib Gem::Specification.new do |s| - s.name = 'rademade_admin' - s.version = RademadeAdmin::VERSION - s.authors = ['Vladislav Melanitskiy', 'Denis Sergienko', 'Sergey Kuzhavskiy'] - s.email = %w(co@rademade.com olol.toor@gmail.com kuzh@rademade.com) - s.homepage = 'https://github.com/Rademade/rademade_admin' - s.summary = 'Rails admin panel engine' - s.description = 'Best rails admin panel. Great mechanism for customization and rapid development' - s.licenses = ['MIT'] - - s.files = Dir['{app,config,db,lib}/**/*', 'MIT-LICENSE', 'Rakefile', 'Bowerfile', 'README.rdoc'] - s.test_files = Dir['test/**/*'] - - # Core dependencies - s.add_dependency 'rails', '~> 5' - s.add_dependency 'kaminari' - - # Images - s.add_dependency 'carrierwave' - s.add_dependency 'light_resizer' - - # Assets - s.add_dependency 'bower-rails', '>= 0.8.2' - s.add_dependency 'sass-rails' - s.add_dependency 'coffee-rails' - s.add_dependency 'autoprefixer-rails' + s.name = "rademade_admin".freeze + s.version = "0.3.0" - s.add_dependency 'i18n-js' - s.add_dependency 'ejs' + s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= + s.require_paths = ["lib".freeze] + s.authors = ["Vladislav Melanitskiy".freeze, "Denis Sergienko".freeze, "Sergey Kuzhavskiy".freeze] + s.date = "2017-05-17" + s.description = "Best rails admin panel. Great mechanism for customization and rapid development".freeze + s.email = ["co@rademade.com".freeze, "olol.toor@gmail.com".freeze, "kuzh@rademade.com".freeze] + s.files = ["Bowerfile".freeze, "Rakefile".freeze, "app/assets".freeze, "app/assets/fonts".freeze, "app/assets/fonts/HelveticaNeueCyr-Black.eot".freeze, "app/assets/fonts/HelveticaNeueCyr-Black.otf".freeze, "app/assets/fonts/HelveticaNeueCyr-Black.svg".freeze, "app/assets/fonts/HelveticaNeueCyr-Black.ttf".freeze, "app/assets/fonts/HelveticaNeueCyr-Black.woff".freeze, "app/assets/fonts/HelveticaNeueCyr-Bold.eot".freeze, "app/assets/fonts/HelveticaNeueCyr-Bold.otf".freeze, "app/assets/fonts/HelveticaNeueCyr-Bold.svg".freeze, "app/assets/fonts/HelveticaNeueCyr-Bold.ttf".freeze, "app/assets/fonts/HelveticaNeueCyr-Bold.woff".freeze, "app/assets/fonts/HelveticaNeueCyr-Light.eot".freeze, "app/assets/fonts/HelveticaNeueCyr-Light.otf".freeze, "app/assets/fonts/HelveticaNeueCyr-Light.svg".freeze, "app/assets/fonts/HelveticaNeueCyr-Light.ttf".freeze, "app/assets/fonts/HelveticaNeueCyr-Light.woff".freeze, "app/assets/fonts/HelveticaNeueCyr-Medium.eot".freeze, "app/assets/fonts/HelveticaNeueCyr-Medium.otf".freeze, "app/assets/fonts/HelveticaNeueCyr-Medium.svg".freeze, "app/assets/fonts/HelveticaNeueCyr-Medium.ttf".freeze, "app/assets/fonts/HelveticaNeueCyr-Medium.woff".freeze, "app/assets/fonts/HelveticaNeueCyr-Roman.eot".freeze, "app/assets/fonts/HelveticaNeueCyr-Roman.otf".freeze, "app/assets/fonts/HelveticaNeueCyr-Roman.svg".freeze, "app/assets/fonts/HelveticaNeueCyr-Roman.ttf".freeze, "app/assets/fonts/HelveticaNeueCyr-Roman.woff".freeze, "app/assets/images".freeze, "app/assets/images/rademade_admin".freeze, "app/assets/images/rademade_admin/fav1.ico".freeze, "app/assets/images/rademade_admin/fav2.ico".freeze, "app/assets/images/rademade_admin/ico".freeze, "app/assets/images/rademade_admin/ico/add.svg".freeze, "app/assets/images/rademade_admin/ico/button_add.svg".freeze, "app/assets/images/rademade_admin/ico/button_add_blue.svg".freeze, "app/assets/images/rademade_admin/ico/calendar-next.svg".freeze, "app/assets/images/rademade_admin/ico/calendar-prev.svg".freeze, "app/assets/images/rademade_admin/ico/checkbox_active.svg".freeze, "app/assets/images/rademade_admin/ico/checkbox_empty.svg".freeze, "app/assets/images/rademade_admin/ico/checked.svg".freeze, "app/assets/images/rademade_admin/ico/close_gray.svg".freeze, "app/assets/images/rademade_admin/ico/close_white.svg".freeze, "app/assets/images/rademade_admin/ico/datetimepicker-next.svg".freeze, "app/assets/images/rademade_admin/ico/datetimepicker-prev.svg".freeze, "app/assets/images/rademade_admin/ico/dd-tile.svg".freeze, "app/assets/images/rademade_admin/ico/delete-small.svg".freeze, "app/assets/images/rademade_admin/ico/discard_red.svg".freeze, "app/assets/images/rademade_admin/ico/dragndrop.svg".freeze, "app/assets/images/rademade_admin/ico/eye.svg".freeze, "app/assets/images/rademade_admin/ico/file.svg".freeze, "app/assets/images/rademade_admin/ico/file_blue.svg".freeze, "app/assets/images/rademade_admin/ico/image.svg".freeze, "app/assets/images/rademade_admin/ico/info.svg".freeze, "app/assets/images/rademade_admin/ico/invisible.svg".freeze, "app/assets/images/rademade_admin/ico/jcrop.svg".freeze, "app/assets/images/rademade_admin/ico/left-arrow.svg".freeze, "app/assets/images/rademade_admin/ico/left-arrow_blue.svg".freeze, "app/assets/images/rademade_admin/ico/link.svg".freeze, "app/assets/images/rademade_admin/ico/logout.svg".freeze, "app/assets/images/rademade_admin/ico/next.svg".freeze, "app/assets/images/rademade_admin/ico/password.svg".freeze, "app/assets/images/rademade_admin/ico/password_red.svg".freeze, "app/assets/images/rademade_admin/ico/pen.svg".freeze, "app/assets/images/rademade_admin/ico/photo.svg".freeze, "app/assets/images/rademade_admin/ico/prev.svg".freeze, "app/assets/images/rademade_admin/ico/rejected.svg".freeze, "app/assets/images/rademade_admin/ico/resize.svg".freeze, "app/assets/images/rademade_admin/ico/right-arrow.svg".freeze, "app/assets/images/rademade_admin/ico/right-arrow_blue.svg".freeze, "app/assets/images/rademade_admin/ico/search.svg".freeze, "app/assets/images/rademade_admin/ico/search_blue.svg".freeze, "app/assets/images/rademade_admin/ico/select-close.svg".freeze, "app/assets/images/rademade_admin/ico/select-edit.svg".freeze, "app/assets/images/rademade_admin/ico/select2-add.svg".freeze, "app/assets/images/rademade_admin/ico/select2.svg".freeze, "app/assets/images/rademade_admin/ico/settings.svg".freeze, "app/assets/images/rademade_admin/ico/sortable-down.svg".freeze, "app/assets/images/rademade_admin/ico/sortable-down_active.svg".freeze, "app/assets/images/rademade_admin/ico/sortable-up.svg".freeze, "app/assets/images/rademade_admin/ico/sortable-up_active.svg".freeze, "app/assets/images/rademade_admin/ico/trash.svg".freeze, "app/assets/images/rademade_admin/ico/trash_r.svg".freeze, "app/assets/images/rademade_admin/ico/trash_white.svg".freeze, "app/assets/images/rademade_admin/ico/user-photo.svg".freeze, "app/assets/images/rademade_admin/ico/user.svg".freeze, "app/assets/images/rademade_admin/ico/user_red.svg".freeze, "app/assets/images/rademade_admin/leaflet".freeze, "app/assets/images/rademade_admin/leaflet/layers-2x.png".freeze, "app/assets/images/rademade_admin/leaflet/layers.png".freeze, "app/assets/images/rademade_admin/leaflet/marker-icon-2x.png".freeze, "app/assets/images/rademade_admin/leaflet/marker-icon.png".freeze, "app/assets/images/rademade_admin/leaflet/marker-shadow.png".freeze, "app/assets/images/rademade_admin/loader.GIF".freeze, "app/assets/images/rademade_admin/notifier-loader-clean.gif".freeze, "app/assets/images/rademade_admin/notifier-loader-plastic.gif".freeze, "app/assets/images/rademade_admin/sprite.svg".freeze, "app/assets/javascripts".freeze, "app/assets/javascripts/app".freeze, "app/assets/javascripts/app/app.coffee".freeze, "app/assets/javascripts/app/common".freeze, "app/assets/javascripts/app/common/cropper.coffee".freeze, "app/assets/javascripts/app/common/datetime-picker.coffee".freeze, "app/assets/javascripts/app/common/dnd-sort.coffee".freeze, "app/assets/javascripts/app/common/image-preview.coffee".freeze, "app/assets/javascripts/app/common/lang-panel.coffee".freeze, "app/assets/javascripts/app/common/location.coffee.erb".freeze, "app/assets/javascripts/app/common/menu.coffee".freeze, "app/assets/javascripts/app/common/status-toggler.coffee".freeze, "app/assets/javascripts/app/common/turboform.coffee".freeze, "app/assets/javascripts/app/common/uploader.coffee".freeze, "app/assets/javascripts/app/common/url-visitor.coffee".freeze, "app/assets/javascripts/app/compatibility".freeze, "app/assets/javascripts/app/compatibility/turbolinks.coffee".freeze, "app/assets/javascripts/app/content".freeze, "app/assets/javascripts/app/content/view.coffee".freeze, "app/assets/javascripts/app/forms".freeze, "app/assets/javascripts/app/forms/insert.coffee".freeze, "app/assets/javascripts/app/forms/login.coffee".freeze, "app/assets/javascripts/app/forms/remove.coffee".freeze, "app/assets/javascripts/app/gallery".freeze, "app/assets/javascripts/app/gallery/image".freeze, "app/assets/javascripts/app/gallery/image/collection-view.coffee".freeze, "app/assets/javascripts/app/gallery/image/collection.coffee".freeze, "app/assets/javascripts/app/gallery/image/model.coffee".freeze, "app/assets/javascripts/app/gallery/image/view.coffee".freeze, "app/assets/javascripts/app/gallery/popup.coffee".freeze, "app/assets/javascripts/app/gallery/view.coffee".freeze, "app/assets/javascripts/app/image".freeze, "app/assets/javascripts/app/image/model.coffee".freeze, "app/assets/javascripts/app/image/preview.coffee".freeze, "app/assets/javascripts/app/notifier".freeze, "app/assets/javascripts/app/notifier/initialize.js".freeze, "app/assets/javascripts/app/select2".freeze, "app/assets/javascripts/app/select2/model.coffee".freeze, "app/assets/javascripts/app/select2/related".freeze, "app/assets/javascripts/app/select2/related/collection-view.coffee".freeze, "app/assets/javascripts/app/select2/related/collection.coffee".freeze, "app/assets/javascripts/app/select2/related/model.coffee".freeze, "app/assets/javascripts/app/select2/related/view.coffee".freeze, "app/assets/javascripts/app/select2/view.coffee".freeze, "app/assets/javascripts/app/templates".freeze, "app/assets/javascripts/app/templates/crop".freeze, "app/assets/javascripts/app/templates/crop/attributes.jst.ejs".freeze, "app/assets/javascripts/app/templates/crop/size.jst.ejs".freeze, "app/assets/javascripts/app/templates/gallery-popup.jst.ejs".freeze, "app/assets/javascripts/app/templates/related-item.jst.ejs".freeze, "app/assets/javascripts/app/templates/select2".freeze, "app/assets/javascripts/app/templates/select2/add.jst.ejs".freeze, "app/assets/javascripts/app/templates/select2/edit.jst.ejs".freeze, "app/assets/javascripts/ckeditor".freeze, "app/assets/javascripts/ckeditor/config.js".freeze, "app/assets/javascripts/form".freeze, "app/assets/javascripts/form/form-ajax.coffee".freeze, "app/assets/javascripts/form/form-initializer.coffee".freeze, "app/assets/javascripts/form/form-validation.coffee".freeze, "app/assets/javascripts/form/form.coffee".freeze, "app/assets/javascripts/rademade_admin.coffee".freeze, "app/assets/javascripts/settings".freeze, "app/assets/javascripts/settings/ajax-csrf.coffee".freeze, "app/assets/stylesheets".freeze, "app/assets/stylesheets/base".freeze, "app/assets/stylesheets/base/_fix.sass".freeze, "app/assets/stylesheets/base/_floats.sass".freeze, "app/assets/stylesheets/base/_import.sass".freeze, "app/assets/stylesheets/base/_main.sass".freeze, "app/assets/stylesheets/base/_reset.sass".freeze, "app/assets/stylesheets/base/_text.sass".freeze, "app/assets/stylesheets/base/_wrapper.sass".freeze, "app/assets/stylesheets/blocks".freeze, "app/assets/stylesheets/blocks/_import.sass".freeze, "app/assets/stylesheets/blocks/button".freeze, "app/assets/stylesheets/blocks/button/_box.sass".freeze, "app/assets/stylesheets/blocks/button/_import.sass".freeze, "app/assets/stylesheets/blocks/button/link".freeze, "app/assets/stylesheets/blocks/button/link/_main.sass".freeze, "app/assets/stylesheets/blocks/button/main".freeze, "app/assets/stylesheets/blocks/button/main/_main.sass".freeze, "app/assets/stylesheets/blocks/button/main/colors".freeze, "app/assets/stylesheets/blocks/button/main/colors/_main.sass".freeze, "app/assets/stylesheets/blocks/button/main/colors/_other.sass".freeze, "app/assets/stylesheets/blocks/button/switch".freeze, "app/assets/stylesheets/blocks/button/switch/_main.sass".freeze, "app/assets/stylesheets/blocks/button/switch/colors".freeze, "app/assets/stylesheets/blocks/button/switch/colors/_blue.sass".freeze, "app/assets/stylesheets/blocks/content".freeze, "app/assets/stylesheets/blocks/content/_actions.sass".freeze, "app/assets/stylesheets/blocks/content/_draggable.sass".freeze, "app/assets/stylesheets/blocks/content/_header.sass".freeze, "app/assets/stylesheets/blocks/content/_import.sass".freeze, "app/assets/stylesheets/blocks/content/_item.sass".freeze, "app/assets/stylesheets/blocks/content/_main.sass".freeze, "app/assets/stylesheets/blocks/content/_search.sass".freeze, "app/assets/stylesheets/blocks/content/_status.sass".freeze, "app/assets/stylesheets/blocks/content/_table.sass".freeze, "app/assets/stylesheets/blocks/content/_tooltip.sass".freeze, "app/assets/stylesheets/blocks/form".freeze, "app/assets/stylesheets/blocks/form/_checkbox.sass".freeze, "app/assets/stylesheets/blocks/form/_description.sass".freeze, "app/assets/stylesheets/blocks/form/_erorr.sass".freeze, "app/assets/stylesheets/blocks/form/_import.sass".freeze, "app/assets/stylesheets/blocks/form/_input.sass".freeze, "app/assets/stylesheets/blocks/form/_label.sass".freeze, "app/assets/stylesheets/blocks/form/_lang.sass".freeze, "app/assets/stylesheets/blocks/form/_main.sass".freeze, "app/assets/stylesheets/blocks/form/_select.sass".freeze, "app/assets/stylesheets/blocks/form/_textarea.sass".freeze, "app/assets/stylesheets/blocks/form/datetimepicker".freeze, "app/assets/stylesheets/blocks/form/datetimepicker/_main.sass".freeze, "app/assets/stylesheets/blocks/form/file".freeze, "app/assets/stylesheets/blocks/form/file/_item.sass".freeze, "app/assets/stylesheets/blocks/form/file/_main.sass".freeze, "app/assets/stylesheets/blocks/form/select2".freeze, "app/assets/stylesheets/blocks/form/select2/_arrow.sass".freeze, "app/assets/stylesheets/blocks/form/select2/_btn.sass".freeze, "app/assets/stylesheets/blocks/form/select2/_choise.sass".freeze, "app/assets/stylesheets/blocks/form/select2/_drop.sass".freeze, "app/assets/stylesheets/blocks/form/select2/_list.sass".freeze, "app/assets/stylesheets/blocks/form/select2/_main.sass".freeze, "app/assets/stylesheets/blocks/form/select2/_result.sass".freeze, "app/assets/stylesheets/blocks/login".freeze, "app/assets/stylesheets/blocks/login/_import.sass".freeze, "app/assets/stylesheets/blocks/login/_main.sass".freeze, "app/assets/stylesheets/blocks/login/_project.sass".freeze, "app/assets/stylesheets/blocks/login/_title.sass".freeze, "app/assets/stylesheets/blocks/login/form".freeze, "app/assets/stylesheets/blocks/login/form/_error.sass".freeze, "app/assets/stylesheets/blocks/login/form/_input.sass".freeze, "app/assets/stylesheets/blocks/login/form/_label.sass".freeze, "app/assets/stylesheets/blocks/login/form/_main.sass".freeze, "app/assets/stylesheets/blocks/nav".freeze, "app/assets/stylesheets/blocks/nav/_btn.sass".freeze, "app/assets/stylesheets/blocks/nav/_copyright.sass".freeze, "app/assets/stylesheets/blocks/nav/_counter.sass".freeze, "app/assets/stylesheets/blocks/nav/_dd.sass".freeze, "app/assets/stylesheets/blocks/nav/_import.sass".freeze, "app/assets/stylesheets/blocks/nav/_item.sass".freeze, "app/assets/stylesheets/blocks/nav/_link.sass".freeze, "app/assets/stylesheets/blocks/nav/_logo.sass".freeze, "app/assets/stylesheets/blocks/nav/_main.sass".freeze, "app/assets/stylesheets/blocks/nav/_user.sass".freeze, "app/assets/stylesheets/blocks/pagination".freeze, "app/assets/stylesheets/blocks/pagination/_import.sass".freeze, "app/assets/stylesheets/blocks/pagination/_link-states.sass".freeze, "app/assets/stylesheets/blocks/pagination/_link.sass".freeze, "app/assets/stylesheets/blocks/pagination/_main.sass".freeze, "app/assets/stylesheets/blocks/pagination/_sep.sass".freeze, "app/assets/stylesheets/blocks/popup".freeze, "app/assets/stylesheets/blocks/popup/_action.sass".freeze, "app/assets/stylesheets/blocks/popup/_gallery.sass".freeze, "app/assets/stylesheets/blocks/popup/_import.sass".freeze, "app/assets/stylesheets/blocks/popup/_main.sass".freeze, "app/assets/stylesheets/blocks/popup/_title.sass".freeze, "app/assets/stylesheets/lib".freeze, "app/assets/stylesheets/lib/_import.sass".freeze, "app/assets/stylesheets/lib/_jcrop.sass".freeze, "app/assets/stylesheets/lib/_leaflet.sass".freeze, "app/assets/stylesheets/lib/calendar".freeze, "app/assets/stylesheets/lib/calendar/_import.sass".freeze, "app/assets/stylesheets/lib/calendar/_main.sass".freeze, "app/assets/stylesheets/lib/calendar/date".freeze, "app/assets/stylesheets/lib/calendar/date/_day.sass".freeze, "app/assets/stylesheets/lib/calendar/date/_import.sass".freeze, "app/assets/stylesheets/lib/calendar/date/_main.sass".freeze, "app/assets/stylesheets/lib/calendar/date/_month.sass".freeze, "app/assets/stylesheets/lib/calendar/date/_week.sass".freeze, "app/assets/stylesheets/lib/calendar/time".freeze, "app/assets/stylesheets/lib/calendar/time/_btn.sass".freeze, "app/assets/stylesheets/lib/calendar/time/_import.sass".freeze, "app/assets/stylesheets/lib/calendar/time/_input.sass".freeze, "app/assets/stylesheets/lib/calendar/time/_label.sass".freeze, "app/assets/stylesheets/lib/calendar/time/_main.sass".freeze, "app/assets/stylesheets/mixins".freeze, "app/assets/stylesheets/mixins/_background.sass".freeze, "app/assets/stylesheets/mixins/_clear.sass".freeze, "app/assets/stylesheets/mixins/_column.sass".freeze, "app/assets/stylesheets/mixins/_fonts-mixin.sass".freeze, "app/assets/stylesheets/mixins/_fonts.scss".freeze, "app/assets/stylesheets/mixins/_import.sass".freeze, "app/assets/stylesheets/mixins/_media.sass".freeze, "app/assets/stylesheets/mixins/_placeholder.sass".freeze, "app/assets/stylesheets/mixins/_sprite-m.sass".freeze, "app/assets/stylesheets/mixins/_sprites.scss".freeze, "app/assets/stylesheets/mixins/_text-indent.sass".freeze, "app/assets/stylesheets/mixins/_text-overflow.sass".freeze, "app/assets/stylesheets/mixins/_user-select.sass".freeze, "app/assets/stylesheets/rademade_admin.sass".freeze, "app/assets/stylesheets/var".freeze, "app/assets/stylesheets/var/_color.sass".freeze, "app/assets/stylesheets/var/_import.sass".freeze, "app/assets/stylesheets/var/_media.sass".freeze, "app/assets/stylesheets/var/_path.sass".freeze, "app/controllers".freeze, "app/controllers/rademade_admin".freeze, "app/controllers/rademade_admin/abstract_controller.rb".freeze, "app/controllers/rademade_admin/application_controller.rb".freeze, "app/controllers/rademade_admin/dashboard_controller.rb".freeze, "app/controllers/rademade_admin/file_controller.rb".freeze, "app/controllers/rademade_admin/gallery_controller.rb".freeze, "app/controllers/rademade_admin/model_controller.rb".freeze, "app/controllers/rademade_admin/sessions_controller.rb".freeze, "app/controllers/rademade_admin/status_controller.rb".freeze, "app/helpers".freeze, "app/helpers/rademade_admin".freeze, "app/helpers/rademade_admin/field_helper.rb".freeze, "app/helpers/rademade_admin/field_type_helper.rb".freeze, "app/helpers/rademade_admin/form_helper.rb".freeze, "app/helpers/rademade_admin/menu_helper.rb".freeze, "app/helpers/rademade_admin/pagination_helper.rb".freeze, "app/helpers/rademade_admin/uri_helper.rb".freeze, "app/inputs".freeze, "app/inputs/rademade_admin".freeze, "app/inputs/rademade_admin/boolean_input.rb".freeze, "app/inputs/rademade_admin/date_input.rb".freeze, "app/inputs/rademade_admin/date_time_input.rb".freeze, "app/inputs/rademade_admin/file_input.rb".freeze, "app/inputs/rademade_admin/gallery_input.rb".freeze, "app/inputs/rademade_admin/location_input.rb".freeze, "app/inputs/rademade_admin/related_select_input.rb".freeze, "app/models".freeze, "app/models/rademade_admin".freeze, "app/models/rademade_admin/ability.rb".freeze, "app/serializers".freeze, "app/serializers/autocomplete".freeze, "app/serializers/autocomplete/base_serializer.rb".freeze, "app/services".freeze, "app/services/csv_service.rb".freeze, "app/services/error_service.rb".freeze, "app/services/gallery".freeze, "app/services/gallery/manager.rb".freeze, "app/services/loader_service.rb".freeze, "app/services/login".freeze, "app/services/login.rb".freeze, "app/services/login/error.rb".freeze, "app/services/model_controller".freeze, "app/services/model_controller/instance_options.rb".freeze, "app/services/model_controller/model_options.rb".freeze, "app/services/model_controller/notifier.rb".freeze, "app/services/model_controller/templates.rb".freeze, "app/services/saver.rb".freeze, "app/services/search".freeze, "app/services/search/conditions".freeze, "app/services/search/conditions/abstract.rb".freeze, "app/services/search/conditions/autocomplete.rb".freeze, "app/services/search/conditions/list.rb".freeze, "app/services/search/part".freeze, "app/services/search/part/abstract.rb".freeze, "app/services/search/part/order.rb".freeze, "app/services/search/part/where.rb".freeze, "app/services/search/where.rb".freeze, "app/services/sortable_service.rb".freeze, "app/services/status".freeze, "app/services/status/toggler.rb".freeze, "app/services/template_service.rb".freeze, "app/services/upload".freeze, "app/services/upload/image_presenter.rb".freeze, "app/services/upload/preview".freeze, "app/services/upload/preview.rb".freeze, "app/services/upload/preview/file.rb".freeze, "app/services/upload/preview/gallery.rb".freeze, "app/services/video_service.rb".freeze, "app/views".freeze, "app/views/kaminari".freeze, "app/views/kaminari/rademade".freeze, "app/views/kaminari/rademade/_first_page.html.erb".freeze, "app/views/kaminari/rademade/_gap.html.erb".freeze, "app/views/kaminari/rademade/_last_page.html.erb".freeze, "app/views/kaminari/rademade/_next_page.html.erb".freeze, "app/views/kaminari/rademade/_page.html.erb".freeze, "app/views/kaminari/rademade/_paginator.html.erb".freeze, "app/views/kaminari/rademade/_prev_page.html.erb".freeze, "app/views/layouts".freeze, "app/views/layouts/login.html.erb".freeze, "app/views/layouts/rademade_admin.html.erb".freeze, "app/views/rademade_admin".freeze, "app/views/rademade_admin/_blocks".freeze, "app/views/rademade_admin/_blocks/_form.html.erb".freeze, "app/views/rademade_admin/_blocks/_list.html.erb".freeze, "app/views/rademade_admin/_blocks/_navigation.html.erb".freeze, "app/views/rademade_admin/_blocks/_on_page_switcher.html.erb".freeze, "app/views/rademade_admin/_blocks/_pagination.html.erb".freeze, "app/views/rademade_admin/_blocks/_search.html.erb".freeze, "app/views/rademade_admin/_blocks/button".freeze, "app/views/rademade_admin/_blocks/button/_cancel.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_destroy.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_edit.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_gallery.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_hide.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_preview.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_save.html.erb".freeze, "app/views/rademade_admin/_blocks/button/_save_and_return.html.erb".freeze, "app/views/rademade_admin/_blocks/form".freeze, "app/views/rademade_admin/_blocks/form/_control.html.erb".freeze, "app/views/rademade_admin/_blocks/form/_lang_panel.html.erb".freeze, "app/views/rademade_admin/_blocks/navigation".freeze, "app/views/rademade_admin/_blocks/navigation/_menu.html.erb".freeze, "app/views/rademade_admin/_blocks/navigation/menu".freeze, "app/views/rademade_admin/_blocks/navigation/menu/_item.html.erb".freeze, "app/views/rademade_admin/_blocks/table".freeze, "app/views/rademade_admin/_blocks/table/_head.html.erb".freeze, "app/views/rademade_admin/_blocks/table/_list.html.erb".freeze, "app/views/rademade_admin/_layouts".freeze, "app/views/rademade_admin/_layouts/content_item.html.erb".freeze, "app/views/rademade_admin/_layouts/login.html.erb".freeze, "app/views/rademade_admin/_layouts/main.html.erb".freeze, "app/views/rademade_admin/_layouts/parts".freeze, "app/views/rademade_admin/_layouts/parts/_head.html.erb".freeze, "app/views/rademade_admin/abstract".freeze, "app/views/rademade_admin/abstract/_form.html.erb".freeze, "app/views/rademade_admin/abstract/edit.html.erb".freeze, "app/views/rademade_admin/abstract/form.html.erb".freeze, "app/views/rademade_admin/abstract/index.html.erb".freeze, "app/views/rademade_admin/abstract/new.html.erb".freeze, "app/views/rademade_admin/dashboard".freeze, "app/views/rademade_admin/dashboard/index.html.erb".freeze, "app/views/rademade_admin/dashboard/login.html.erb".freeze, "config/initializers".freeze, "config/initializers/bower_rails.rb".freeze, "config/initializers/carrier_wave".freeze, "config/initializers/carrier_wave/mongoid.rb".freeze, "config/initializers/ckeditor.rb".freeze, "config/initializers/kaminari_route_proxy.rb".freeze, "config/initializers/routes.rb".freeze, "config/initializers/simple_form".freeze, "config/initializers/simple_form.rb".freeze, "config/initializers/simple_form/errors.rb".freeze, "config/initializers/simple_form/rademade_component.rb".freeze, "config/initializers/simple_form/wrappers.rb".freeze, "config/locales".freeze, "config/locales/rademade_admin.en.yml".freeze, "config/locales/rademade_admin.ru.yml".freeze, "config/locales/rademade_kaminari.en.yml".freeze, "config/locales/rademade_kaminari.ru.yml".freeze, "config/locales/select2.en.yml".freeze, "config/locales/select2.ru.yml".freeze, "config/locales/simple_form.en.yml".freeze, "config/locales/simple_form.ru.yml".freeze, "config/routes.rb".freeze, "lib/rademade_admin".freeze, "lib/rademade_admin.rb".freeze, "lib/rademade_admin/bower".freeze, "lib/rademade_admin/bower/performer.rb".freeze, "lib/rademade_admin/ckeditor_utils.rb".freeze, "lib/rademade_admin/engine.rb".freeze, "lib/rademade_admin/gallery.rb".freeze, "lib/rademade_admin/hideable.rb".freeze, "lib/rademade_admin/html_buffer.rb".freeze, "lib/rademade_admin/input".freeze, "lib/rademade_admin/input/related_select_input".freeze, "lib/rademade_admin/input/related_select_input/model_data.rb".freeze, "lib/rademade_admin/input/related_select_input/related_list.rb".freeze, "lib/rademade_admin/model".freeze, "lib/rademade_admin/model/adapter".freeze, "lib/rademade_admin/model/adapter/data".freeze, "lib/rademade_admin/model/adapter/data.rb".freeze, "lib/rademade_admin/model/adapter/data/active_record.rb".freeze, "lib/rademade_admin/model/adapter/data/mongoid.rb".freeze, "lib/rademade_admin/model/adapter/data/sequel.rb".freeze, "lib/rademade_admin/model/adapter/persistence".freeze, "lib/rademade_admin/model/adapter/persistence.rb".freeze, "lib/rademade_admin/model/adapter/persistence/active_record.rb".freeze, "lib/rademade_admin/model/adapter/persistence/mongoid.rb".freeze, "lib/rademade_admin/model/adapter/persistence/sequel.rb".freeze, "lib/rademade_admin/model/adapter/query".freeze, "lib/rademade_admin/model/adapter/query.rb".freeze, "lib/rademade_admin/model/adapter/query/active_record.rb".freeze, "lib/rademade_admin/model/adapter/query/mongoid.rb".freeze, "lib/rademade_admin/model/adapter/query/mysql.rb".freeze, "lib/rademade_admin/model/adapter/query/postgresql.rb".freeze, "lib/rademade_admin/model/adapter/query/sequel.rb".freeze, "lib/rademade_admin/model/adapter/query/sql.rb".freeze, "lib/rademade_admin/model/configuration".freeze, "lib/rademade_admin/model/configuration.rb".freeze, "lib/rademade_admin/model/configuration/csv_fields.rb".freeze, "lib/rademade_admin/model/configuration/field_label.rb".freeze, "lib/rademade_admin/model/configuration/fields.rb".freeze, "lib/rademade_admin/model/configuration/fields_labels.rb".freeze, "lib/rademade_admin/model/configuration/form_field.rb".freeze, "lib/rademade_admin/model/configuration/form_fields.rb".freeze, "lib/rademade_admin/model/configuration/list_field.rb".freeze, "lib/rademade_admin/model/configuration/list_fields.rb".freeze, "lib/rademade_admin/model/graph.rb".freeze, "lib/rademade_admin/model/info".freeze, "lib/rademade_admin/model/info.rb".freeze, "lib/rademade_admin/model/info/data_item".freeze, "lib/rademade_admin/model/info/data_item.rb".freeze, "lib/rademade_admin/model/info/data_item/initializer.rb".freeze, "lib/rademade_admin/model/info/data_items.rb".freeze, "lib/rademade_admin/model/info/field".freeze, "lib/rademade_admin/model/info/field.rb".freeze, "lib/rademade_admin/model/info/field/type.rb".freeze, "lib/rademade_admin/model/info/fields.rb".freeze, "lib/rademade_admin/model/info/relation".freeze, "lib/rademade_admin/model/info/relation.rb".freeze, "lib/rademade_admin/model/info/relation/gallery.rb".freeze, "lib/rademade_admin/model/info/relations.rb".freeze, "lib/rademade_admin/model/info/uploader.rb".freeze, "lib/rademade_admin/model/info/uploaders.rb".freeze, "lib/rademade_admin/model/reflection.rb".freeze, "lib/rademade_admin/routing".freeze, "lib/rademade_admin/routing.rb".freeze, "lib/rademade_admin/routing/mapper.rb".freeze, "lib/rademade_admin/routing/resource.rb".freeze, "lib/rademade_admin/search".freeze, "lib/rademade_admin/search/searcher.rb".freeze, "lib/rademade_admin/sortable.rb".freeze, "lib/rademade_admin/uploader".freeze, "lib/rademade_admin/uploader/carrier_wave.rb".freeze, "lib/rademade_admin/uploader/crop_photo.rb".freeze, "lib/rademade_admin/uploader/photo.rb".freeze, "lib/rademade_admin/uploader/video.rb".freeze, "lib/rademade_admin/user.rb".freeze, "lib/rademade_admin/version.rb".freeze, "lib/tasks".freeze, "lib/tasks/rademade_admin_tasks.rake".freeze, "lib/tasks/rademade_bower_install.rake".freeze, "lib/templates".freeze, "lib/templates/erb".freeze, "lib/templates/erb/scaffold".freeze, "lib/templates/erb/scaffold/_form.html.erb".freeze] + s.homepage = "https://github.com/Rademade/rademade_admin".freeze + s.licenses = ["MIT".freeze] + s.rubygems_version = "2.6.10".freeze + s.summary = "Rails admin panel engine".freeze - # Public JS assets - s.add_dependency 'turbolinks' - s.add_dependency 'jquery-rails' - s.add_dependency 'select2-rails', '~> 3.5' + if s.respond_to? :specification_version then + s.specification_version = 4 - # Admin - s.add_dependency 'mini_magick' # TODO remove. Need for ckeditor or light_resizer. - s.add_dependency 'simple_form' - s.add_dependency 'ckeditor' - s.add_dependency 'cancan' - s.add_dependency 'configurations' + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then + s.add_runtime_dependency(%q.freeze, ["~> 5"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0.8.2"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, ["~> 3.5"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + s.add_runtime_dependency(%q.freeze, [">= 0"]) + else + s.add_dependency(%q.freeze, ["~> 5"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0.8.2"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, ["~> 3.5"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + end + else + s.add_dependency(%q.freeze, ["~> 5"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0.8.2"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, ["~> 3.5"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + s.add_dependency(%q.freeze, [">= 0"]) + end end From abebabd06459a9d4c43a0b1f07118ed0738a64fb Mon Sep 17 00:00:00 2001 From: andrey-abramow Date: Fri, 26 May 2017 17:58:08 +0300 Subject: [PATCH 15/20] remove logs --- .../javascripts/app/select2/related/collection-view.coffee | 1 - app/assets/javascripts/app/select2/related/collection.coffee | 1 - 2 files changed, 2 deletions(-) diff --git a/app/assets/javascripts/app/select2/related/collection-view.coffee b/app/assets/javascripts/app/select2/related/collection-view.coffee index b486f24b..c7181e3e 100644 --- a/app/assets/javascripts/app/select2/related/collection-view.coffee +++ b/app/assets/javascripts/app/select2/related/collection-view.coffee @@ -23,7 +23,6 @@ class @Select2Input.RelatedCollectionView extends Backbone.View @init : ($list) -> views = [] collection = new Select2Input.RelatedCollection - console.log($list) collection.setSortable $list.data('sortable') collection.setDeletable $list.data('deletable') diff --git a/app/assets/javascripts/app/select2/related/collection.coffee b/app/assets/javascripts/app/select2/related/collection.coffee index d4b3a336..b55ab798 100644 --- a/app/assets/javascripts/app/select2/related/collection.coffee +++ b/app/assets/javascripts/app/select2/related/collection.coffee @@ -23,7 +23,6 @@ class @Select2Input.RelatedCollection extends Backbone.Collection @sortable isDeletable : () -> - console.log 'isDeletable' @deletable resort : () -> From a791f7d6287ef2c6e42d35e883cf8d5afed0b181 Mon Sep 17 00:00:00 2001 From: andrey-abramow Date: Fri, 26 May 2017 18:23:55 +0300 Subject: [PATCH 16/20] set deletable to true --- lib/rademade_admin/model/info/relation.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rademade_admin/model/info/relation.rb b/lib/rademade_admin/model/info/relation.rb index 878e62ee..90944223 100644 --- a/lib/rademade_admin/model/info/relation.rb +++ b/lib/rademade_admin/model/info/relation.rb @@ -19,7 +19,7 @@ def sortable? end def destroyable? - @destroyable + @destroyable.nil? ? true : @destroyable end def gallery? From fd58ed5e88aec413e727106049a905b605464959 Mon Sep 17 00:00:00 2001 From: andrey-abramow Date: Fri, 26 May 2017 18:51:17 +0300 Subject: [PATCH 17/20] added _relation_destroyable? to sequel/mongoid --- .../model/adapter/data/active_record.rb | 30 +++++++++---------- .../model/adapter/data/mongoid.rb | 5 ++++ .../model/adapter/data/sequel.rb | 5 ++++ lib/rademade_admin/model/info/relation.rb | 2 +- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/lib/rademade_admin/model/adapter/data/active_record.rb b/lib/rademade_admin/model/adapter/data/active_record.rb index 27b6e40e..0be0749e 100644 --- a/lib/rademade_admin/model/adapter/data/active_record.rb +++ b/lib/rademade_admin/model/adapter/data/active_record.rb @@ -33,7 +33,7 @@ def _map_relations :name => name, :from => @model, :to => to_class, - :destroyable => relation_destroyable?(relation_info), + :destroyable => _relation_destroyable?(relation_info), :getter => name, :setter => :"#{name}=", :type => type, @@ -48,30 +48,30 @@ def _map_relations relations end - def relation_destroyable?(relation_info) - !validates_association?(relation_info) && - !validates_presence?(relation_info) + def _relation_destroyable?(relation_info) + !_validates_association?(relation_info) && + !_validates_presence?(relation_info) end - def model_validates?(model, name, validator_class) - model.validators.select do |validator| - validator.class == validator_class && - validator.attributes.include?(name) - end.any? - end - - def validates_association?(relation_info) - model_validates?(@model, + def _validates_association?(relation_info) + _model_validates?(@model, relation_info.name, ::ActiveRecord::Validations::AssociatedValidator) end - def validates_presence?(relation_info) - model_validates?(relation_info.klass, + def _validates_presence?(relation_info) + _model_validates?(relation_info.klass, relation_info.foreign_key, ::ActiveRecord::Validations::PresenceValidator) end + def _model_validates?(model, name, validator_class) + model.validators.select do |validator| + validator.class == validator_class && + validator.attributes.include?(name) + end.any? + end + def _add_non_localizable_fields(fields) @model.attribute_types.each do |field_name, field_data| name = field_name.to_sym diff --git a/lib/rademade_admin/model/adapter/data/mongoid.rb b/lib/rademade_admin/model/adapter/data/mongoid.rb index 723f89c1..de36c6e6 100644 --- a/lib/rademade_admin/model/adapter/data/mongoid.rb +++ b/lib/rademade_admin/model/adapter/data/mongoid.rb @@ -49,6 +49,7 @@ def _map_relations :type => type, :many => type == :has_many, :has_many => has_many_relations.include?(type), + :destroyable => _relation_destroyable?, :sortable => is_sortable, :sortable_field => is_sortable ? relation_info.sortable_field : nil, :foreign_key => relation_info.foreign_key ? relation_info.foreign_key.to_sym : nil @@ -57,6 +58,10 @@ def _map_relations relations end + def _relation_destroyable? + true + end + def _model_fields @model.fields.keys.map(&:to_sym) end diff --git a/lib/rademade_admin/model/adapter/data/sequel.rb b/lib/rademade_admin/model/adapter/data/sequel.rb index 4730ca7a..657ab74f 100644 --- a/lib/rademade_admin/model/adapter/data/sequel.rb +++ b/lib/rademade_admin/model/adapter/data/sequel.rb @@ -47,6 +47,7 @@ def _map_relations :type => relation_info[:type], :many => relation_info[:type] == :one_to_many, :has_many => has_many, + :destroyable => _relation_destroyable?, :sortable => false, :foreign_key => relation_info[:key] }) @@ -54,6 +55,10 @@ def _map_relations relations end + def _relation_destroyable? + true + end + def _to_many_setter(relation_info, getter) Proc.new do |new_items| old_items = self.send(getter) diff --git a/lib/rademade_admin/model/info/relation.rb b/lib/rademade_admin/model/info/relation.rb index 90944223..878e62ee 100644 --- a/lib/rademade_admin/model/info/relation.rb +++ b/lib/rademade_admin/model/info/relation.rb @@ -19,7 +19,7 @@ def sortable? end def destroyable? - @destroyable.nil? ? true : @destroyable + @destroyable end def gallery? From 38ee63b5a162164a88a8a6d11eea20ae0b995842 Mon Sep 17 00:00:00 2001 From: Volodymyr Leshchenko Date: Fri, 30 Jun 2017 14:53:29 +0300 Subject: [PATCH 18/20] fix --- app/controllers/rademade_admin/file_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/rademade_admin/file_controller.rb b/app/controllers/rademade_admin/file_controller.rb index abe5cb9f..08f5339a 100644 --- a/app/controllers/rademade_admin/file_controller.rb +++ b/app/controllers/rademade_admin/file_controller.rb @@ -6,7 +6,7 @@ def upload uploader.store!(params[param_key]) render :json => { :html => RademadeAdmin::Upload::Preview::File.new(uploader).preview_html, - :file => uploader + :file => JSON.parse(uploader.to_json).merge(url: uploader.url) } rescue CarrierWave::UploadError => e show_error(e) From 1e7aac02e9ded8a9817bd0f7bad44b8ddd04e3ba Mon Sep 17 00:00:00 2001 From: Yuri Kanivetsky Date: Thu, 6 Jul 2017 14:52:29 +0300 Subject: [PATCH 19/20] No bower tasks on asset precompile --- config/initializers/bower_rails.rb | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 config/initializers/bower_rails.rb diff --git a/config/initializers/bower_rails.rb b/config/initializers/bower_rails.rb deleted file mode 100644 index 32389809..00000000 --- a/config/initializers/bower_rails.rb +++ /dev/null @@ -1,6 +0,0 @@ -# -*- encoding : utf-8 -*- -BowerRails.configure do |bower_rails| - bower_rails.install_before_precompile = true - bower_rails.resolve_before_precompile = true - bower_rails.clean_before_precompile = true -end From 7d8bfe64e9f1d858afe335e2c5f44887aecb8e3d Mon Sep 17 00:00:00 2001 From: Sergey Kuzhavskiy Date: Fri, 5 Jan 2018 17:56:13 +0200 Subject: [PATCH 20/20] Update _destroy.html.erb --- app/views/rademade_admin/_blocks/button/_destroy.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/rademade_admin/_blocks/button/_destroy.html.erb b/app/views/rademade_admin/_blocks/button/_destroy.html.erb index 4c71934b..c034de43 100644 --- a/app/views/rademade_admin/_blocks/button/_destroy.html.erb +++ b/app/views/rademade_admin/_blocks/button/_destroy.html.erb @@ -1,5 +1,5 @@ <% -if can? :destroy, @model +if can? :destroy, item delete_uri = admin_delete_uri(item) unless delete_uri.nil? %><%= form_tag(delete_uri, :method => :delete, :class => 'inline-el', :data => { :'delete-item-form' => '' }) do @@ -10,4 +10,4 @@ if can? :destroy, @model <% end end -end %> \ No newline at end of file +end %>