adminsite 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/Gemfile.lock +1 -1
 - data/app/assets/javascripts/adminsite/admin/inputs/multi_select_box_input.js.coffee +53 -0
 - data/app/assets/stylesheets/adminsite/admin/base.scss +6 -0
 - data/app/assets/stylesheets/adminsite/admin/inputs/multi_select_box_input.scss +24 -0
 - data/app/helpers/admin/adminsite_application_helper.rb +12 -1
 - data/app/inputs/adminsite/multi_select_box_input.rb +37 -0
 - data/app/views/adminsite/admin/resources/_form.haml +2 -5
 - data/lib/adminsite/version.rb +1 -1
 - metadata +5 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 7b3d294a019111f15b80a047d93e7150220447b1
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 95b04287bc58eb4fad54eb2f4089da3c64faed6f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 1756e777130a3f963ebf05ee01a24e4d5d269ba01560584ffd1d97573185471d94e3600718936b00013bb3e8ccb91c9fc2a9d9102b60ba30e48126bc1ce7a78f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f3a2157f68c0be9af4d100d5fa83a6a2f047aa552d6bda05e6528a2324f55a54d663263c98d5e89809c36e2a7d99c76d972fd7ff1b88ef4891287757ba4dbeb9
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    
| 
         @@ -0,0 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class window.Adminsite.Inputs
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Adminsite.Inputs.prepareMultiSelectBoxSubmit = ->
         
     | 
| 
      
 4 
     | 
    
         
            +
              form = $(this)
         
     | 
| 
      
 5 
     | 
    
         
            +
              deselectAllOptions form.find('select.source')
         
     | 
| 
      
 6 
     | 
    
         
            +
              selectAllOptions form.find('select.target')
         
     | 
| 
      
 7 
     | 
    
         
            +
              return
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Adminsite.Inputs.addToTarget = (wrapper_id) ->
         
     | 
| 
      
 10 
     | 
    
         
            +
              wrapper = $(wrapper_id)
         
     | 
| 
      
 11 
     | 
    
         
            +
              source = wrapper.find('select.source')
         
     | 
| 
      
 12 
     | 
    
         
            +
              target = wrapper.find('select.target')
         
     | 
| 
      
 13 
     | 
    
         
            +
              SelectMoveRows(source, target)
         
     | 
| 
      
 14 
     | 
    
         
            +
              return
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            Adminsite.Inputs.removeFromTarget = (wrapper_id) ->
         
     | 
| 
      
 17 
     | 
    
         
            +
              wrapper = $(wrapper_id)
         
     | 
| 
      
 18 
     | 
    
         
            +
              source = wrapper.find('select.source')
         
     | 
| 
      
 19 
     | 
    
         
            +
              target = wrapper.find('select.target')
         
     | 
| 
      
 20 
     | 
    
         
            +
              SelectMoveRows(target, source)
         
     | 
| 
      
 21 
     | 
    
         
            +
              return
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            Adminsite.Inputs.moveUp = (select_id) ->
         
     | 
| 
      
 24 
     | 
    
         
            +
              select = $(select_id)
         
     | 
| 
      
 25 
     | 
    
         
            +
              $op = select.find('option:selected')
         
     | 
| 
      
 26 
     | 
    
         
            +
              $op.first().prev().before($op) if $op.length
         
     | 
| 
      
 27 
     | 
    
         
            +
              return
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            Adminsite.Inputs.moveDown = (select_id) ->
         
     | 
| 
      
 30 
     | 
    
         
            +
              select = $(select_id)
         
     | 
| 
      
 31 
     | 
    
         
            +
              $op = select.find('option:selected')
         
     | 
| 
      
 32 
     | 
    
         
            +
              $op.last().next().after($op) if $op.length
         
     | 
| 
      
 33 
     | 
    
         
            +
              return
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            deselectAllOptions = (select) ->
         
     | 
| 
      
 36 
     | 
    
         
            +
              select.find('option').prop('selected', false);
         
     | 
| 
      
 37 
     | 
    
         
            +
              return
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            selectAllOptions = (select) ->
         
     | 
| 
      
 40 
     | 
    
         
            +
              select.find('option').prop('selected', true);
         
     | 
| 
      
 41 
     | 
    
         
            +
              return
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            SelectMoveRows = (source, target) ->
         
     | 
| 
      
 44 
     | 
    
         
            +
              $op = source.find('option:selected')
         
     | 
| 
      
 45 
     | 
    
         
            +
              target.append($op)
         
     | 
| 
      
 46 
     | 
    
         
            +
              return
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            Adminsite.Inputs.initInputs =  ->
         
     | 
| 
      
 49 
     | 
    
         
            +
              $('form').on('submit', Adminsite.Inputs.prepareMultiSelectBoxSubmit)
         
     | 
| 
      
 50 
     | 
    
         
            +
              return
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            $(document).on('page:change', Adminsite.Inputs.initInputs)
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            li.multi_select_box.input {
         
     | 
| 
      
 2 
     | 
    
         
            +
              > div {
         
     | 
| 
      
 3 
     | 
    
         
            +
                float: left;
         
     | 
| 
      
 4 
     | 
    
         
            +
              }
         
     | 
| 
      
 5 
     | 
    
         
            +
              .operators {
         
     | 
| 
      
 6 
     | 
    
         
            +
                padding: 10px;
         
     | 
| 
      
 7 
     | 
    
         
            +
                .data-ops {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  padding: 20px 0;
         
     | 
| 
      
 9 
     | 
    
         
            +
                  width: 100px;
         
     | 
| 
      
 10 
     | 
    
         
            +
                  border-bottom: 1px solid #ccc;
         
     | 
| 
      
 11 
     | 
    
         
            +
                  button {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    width: 100%;
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
      
 14 
     | 
    
         
            +
                }
         
     | 
| 
      
 15 
     | 
    
         
            +
                .order-ops {
         
     | 
| 
      
 16 
     | 
    
         
            +
                  padding: 20px 0;
         
     | 
| 
      
 17 
     | 
    
         
            +
                  width: 40px;
         
     | 
| 
      
 18 
     | 
    
         
            +
                  float: right;
         
     | 
| 
      
 19 
     | 
    
         
            +
                  button {
         
     | 
| 
      
 20 
     | 
    
         
            +
                    width: 100%;
         
     | 
| 
      
 21 
     | 
    
         
            +
                  }
         
     | 
| 
      
 22 
     | 
    
         
            +
                }
         
     | 
| 
      
 23 
     | 
    
         
            +
              }
         
     | 
| 
      
 24 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -157,7 +157,7 @@ module Admin::AdminsiteApplicationHelper 
     | 
|
| 
       157 
157 
     | 
    
         
             
              end
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
              def link_to_destroy(resource)
         
     | 
| 
       160 
     | 
    
         
            -
                link_to image_tag('adminsite/admin/cross.png', :size => '16x16'), admin_resource_path(resource.id), :confirm => 'Are you sure?', :method => :delete
         
     | 
| 
      
 160 
     | 
    
         
            +
                link_to image_tag('adminsite/admin/cross.png', :size => '16x16'), admin_resource_path(resource.id), data: { :confirm => 'Are you sure?'} , :method => :delete
         
     | 
| 
       161 
161 
     | 
    
         
             
              end
         
     | 
| 
       162 
162 
     | 
    
         | 
| 
       163 
163 
     | 
    
         
             
              def display_resource_value(resource, attr)
         
     | 
| 
         @@ -171,4 +171,15 @@ module Admin::AdminsiteApplicationHelper 
     | 
|
| 
       171 
171 
     | 
    
         
             
                link_to resource.title, send("edit_admin_#{resource.class.name.underscore.gsub('/','_')}_path", resource.id, admin_menu: params[:admin_menu])
         
     | 
| 
       172 
172 
     | 
    
         
             
              end
         
     | 
| 
       173 
173 
     | 
    
         | 
| 
      
 174 
     | 
    
         
            +
              def publish_form_input(form, form_input)
         
     | 
| 
      
 175 
     | 
    
         
            +
                options = {}
         
     | 
| 
      
 176 
     | 
    
         
            +
                if form_input.is_a?(Hash)
         
     | 
| 
      
 177 
     | 
    
         
            +
                  attr_name = form_input.keys.first
         
     | 
| 
      
 178 
     | 
    
         
            +
                  options = form_input[attr_name]
         
     | 
| 
      
 179 
     | 
    
         
            +
                else
         
     | 
| 
      
 180 
     | 
    
         
            +
                  attr_name = form_input
         
     | 
| 
      
 181 
     | 
    
         
            +
                end
         
     | 
| 
      
 182 
     | 
    
         
            +
                form.input(attr_name, options).html_safe
         
     | 
| 
      
 183 
     | 
    
         
            +
              end
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
       174 
185 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Adminsite::MultiSelectBoxInput < Formtastic::Inputs::SelectInput
         
     | 
| 
      
 2 
     | 
    
         
            +
              include ActionView::Helpers::FormTagHelper
         
     | 
| 
      
 3 
     | 
    
         
            +
              include ActionView::Helpers::FormOptionsHelper
         
     | 
| 
      
 4 
     | 
    
         
            +
              def to_html
         
     | 
| 
      
 5 
     | 
    
         
            +
                # super
         
     | 
| 
      
 6 
     | 
    
         
            +
                puts "this is my own version of Adminsite::MultiSelectBoxInput"
         
     | 
| 
      
 7 
     | 
    
         
            +
                diff_collection = collection.reject{|k,v| builder.object.send(input_name).include?(k) }
         
     | 
| 
      
 8 
     | 
    
         
            +
                input_wrapping do
         
     | 
| 
      
 9 
     | 
    
         
            +
                  label_html <<
         
     | 
| 
      
 10 
     | 
    
         
            +
                  raw("<div><span>Available #{(localized_label || humanized_method_name)}:</span><br/>") <<
         
     | 
| 
      
 11 
     | 
    
         
            +
                  select_tag(:collection, options_for_select(diff_collection), input_html_options.merge(:class => 'source', :name=> "#{object_name}[collection][]", :id=> collection_id)) <<
         
     | 
| 
      
 12 
     | 
    
         
            +
                  raw('</div>') <<
         
     | 
| 
      
 13 
     | 
    
         
            +
                  operators_html <<
         
     | 
| 
      
 14 
     | 
    
         
            +
                  raw("<div><span>Selected #{label_text}:</span><br/>") <<
         
     | 
| 
      
 15 
     | 
    
         
            +
                  builder.select(input_name, builder.object.send(input_name), input_options, input_html_options.merge(:class => 'target') ) <<
         
     | 
| 
      
 16 
     | 
    
         
            +
                  raw('</div>')
         
     | 
| 
      
 17 
     | 
    
         
            +
                end.html_safe
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              def operators_html
         
     | 
| 
      
 21 
     | 
    
         
            +
                raw('<div class="operators"><div class="data-ops">') <<
         
     | 
| 
      
 22 
     | 
    
         
            +
                button_tag('Add',    type: 'button', onClick: "Adminsite.Inputs.addToTarget('##{wrapper_dom_id}'); false;" ) <<
         
     | 
| 
      
 23 
     | 
    
         
            +
                button_tag('Remove', type: 'button', onClick: "Adminsite.Inputs.removeFromTarget('##{wrapper_dom_id}'); false;" ) <<
         
     | 
| 
      
 24 
     | 
    
         
            +
                raw('</div><div class="order-ops">') <<
         
     | 
| 
      
 25 
     | 
    
         
            +
                button_tag('⇧'.html_safe, type: 'button', onClick: "Adminsite.Inputs.moveUp('##{dom_id}'); false;" ) <<
         
     | 
| 
      
 26 
     | 
    
         
            +
                button_tag('⇩'.html_safe, type: 'button', onClick: "Adminsite.Inputs.moveDown('##{dom_id}'); false;" ) <<
         
     | 
| 
      
 27 
     | 
    
         
            +
                raw('</div></div>')
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              def collection_id
         
     | 
| 
      
 31 
     | 
    
         
            +
                @collection_id ||= "#{object_name}_collection"
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              def multiple?
         
     | 
| 
      
 35 
     | 
    
         
            +
                true
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,6 +1,3 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = f.inputs do
         
     | 
| 
       2 
     | 
    
         
            -
              - resource_admin_config.attributes_edit(@resource).each do | 
     | 
| 
       3 
     | 
    
         
            -
                 
     | 
| 
       4 
     | 
    
         
            -
                  = f.input attr.keys.first, attr.values.first
         
     | 
| 
       5 
     | 
    
         
            -
                - else
         
     | 
| 
       6 
     | 
    
         
            -
                  = f.input attr
         
     | 
| 
      
 2 
     | 
    
         
            +
              - resource_admin_config.attributes_edit(@resource).each do |form_input|
         
     | 
| 
      
 3 
     | 
    
         
            +
                = publish_form_input(f, form_input)
         
     | 
    
        data/lib/adminsite/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: adminsite
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Robin Wunderlin
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-11-27 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rails
         
     | 
| 
         @@ -257,9 +257,11 @@ files: 
     | 
|
| 
       257 
257 
     | 
    
         
             
            - app/assets/javascripts/adminsite/admin.js.coffee
         
     | 
| 
       258 
258 
     | 
    
         
             
            - app/assets/javascripts/adminsite/admin/code_editor.js.coffee
         
     | 
| 
       259 
259 
     | 
    
         
             
            - app/assets/javascripts/adminsite/admin/hide_and_show.js.coffee
         
     | 
| 
      
 260 
     | 
    
         
            +
            - app/assets/javascripts/adminsite/admin/inputs/multi_select_box_input.js.coffee
         
     | 
| 
       260 
261 
     | 
    
         
             
            - app/assets/stylesheets/adminsite/admin.scss
         
     | 
| 
       261 
262 
     | 
    
         
             
            - app/assets/stylesheets/adminsite/admin/base.scss
         
     | 
| 
       262 
263 
     | 
    
         
             
            - app/assets/stylesheets/adminsite/admin/code_editor.scss
         
     | 
| 
      
 264 
     | 
    
         
            +
            - app/assets/stylesheets/adminsite/admin/inputs/multi_select_box_input.scss
         
     | 
| 
       263 
265 
     | 
    
         
             
            - app/assets/stylesheets/adminsite/admin/pagination.scss
         
     | 
| 
       264 
266 
     | 
    
         
             
            - app/controllers/adminsite/admin/adminsite_admin_users_controller.rb
         
     | 
| 
       265 
267 
     | 
    
         
             
            - app/controllers/adminsite/admin/adminsite_file_assets_controller.rb
         
     | 
| 
         @@ -274,6 +276,7 @@ files: 
     | 
|
| 
       274 
276 
     | 
    
         
             
            - app/controllers/adminsite/contents_controller.rb
         
     | 
| 
       275 
277 
     | 
    
         
             
            - app/helpers/admin/adminsite_application_helper.rb
         
     | 
| 
       276 
278 
     | 
    
         
             
            - app/helpers/admin_application_helper.rb
         
     | 
| 
      
 279 
     | 
    
         
            +
            - app/inputs/adminsite/multi_select_box_input.rb
         
     | 
| 
       277 
280 
     | 
    
         
             
            - app/models/adminsite/admin_config/base.rb
         
     | 
| 
       278 
281 
     | 
    
         
             
            - app/models/adminsite/admin_user.rb
         
     | 
| 
       279 
282 
     | 
    
         
             
            - app/models/adminsite/file_asset.rb
         
     |