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
|