adminsite 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|