hobo_jquery_ui 2.0.0.pre7 → 2.0.0.pre8
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.
- data/VERSION +1 -1
- data/lib/hobo_jquery_ui/railtie.rb +1 -0
- data/taglibs/overrides.dryml +1 -1
- data/taglibs/sortable_collection.dryml +36 -0
- data/taglibs/sortable_input_many.dryml +35 -0
- data/vendor/assets/javascripts/hobo-jquery-ui/hjq-sortable-collection.js +39 -0
- data/vendor/assets/javascripts/hobo-jquery-ui/hjq-sortable-input-many.js +33 -0
- metadata +86 -56
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.0.
|
1
|
+
2.0.0.pre8
|
data/taglibs/overrides.dryml
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
</dialog-box>
|
6
6
|
</def>
|
7
7
|
|
8
|
-
<!-- use jQuery-UI for date inputs. To switch back to vanilla Rails (`<
|
8
|
+
<!-- use jQuery-UI for date inputs. To switch back to vanilla Rails (`<datepicker-rails>`) add to your application.dryml:
|
9
9
|
|
10
10
|
<def tag="input" for="Date">
|
11
11
|
<date-select merge/>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<!-- An enhanced version of Rapid's `<collection>` tag that supports drag-and-drop re-ordering.
|
2
|
+
|
3
|
+
Each item in the collection has a `<div class="ordering-handle" param="handle">` added, which can be used to drag the item up and down.
|
4
|
+
|
5
|
+
### Attributes
|
6
|
+
|
7
|
+
`sortable-collection` supports all of the options and events defined by [jQuery UI's Sortable](http://jqueryui.com/demos/sortable/).
|
8
|
+
|
9
|
+
Sortable also supports all of the standard [Hobo AJAX callbacks](http://cookbook.hobocentral.net/api_taglibs/rapid_forms).
|
10
|
+
|
11
|
+
The jQuery UI option `update` is used internally to save the new order via Ajax. If you modify this option, your function may call `$(this).hjq_sortable_collection('update')` to retain this functionality.
|
12
|
+
|
13
|
+
### Controller support
|
14
|
+
|
15
|
+
This tag assumes the controller has a `reorder` action and the model has a `position_column` method. This action is added automatically by Hobo's model-controller if the model declares `acts_as_list`. See also [Drag and Drop Reordering](/manual/controllers#drag_and_drop_reordering) in the [Controllers and Routing](/manual/controllers) chapter of the manual.
|
16
|
+
-->
|
17
|
+
<def tag="sortable-collection">
|
18
|
+
<%
|
19
|
+
options, attrs = attributes.partition_hash(['disabled', 'appendTo', 'axis', 'cancel', 'connectWith', 'containment', 'cursor', 'cursorAt', 'delay', 'distance', 'dropOnEmpty', 'forceHelperSize', 'forcePlaceholderSize', 'grid', 'handle', 'helper', 'items', 'opacity', 'placeholder', 'revert', 'scroll', 'scrollSensitivity', 'scrollSpeed', 'tolerance', 'zIndex'])
|
20
|
+
events, html_attrs = attrs.partition_hash(['create', 'start', 'sort', 'change', 'beforeStop', 'stop', 'update', 'receive', 'remove', 'over', 'out', 'activate', 'deactivate'])
|
21
|
+
ajax_attrs, html_attrs = attrs.partition_hash(HoboRapidHelper::AJAX_CALLBACKS)
|
22
|
+
|
23
|
+
singular_name = this.member_class.name.underscore
|
24
|
+
route_method = subsite ? "#{subsite}_reorder_#{singular_name.pluralize}_url" : "reorder_#{singular_name.pluralize}_url"
|
25
|
+
reorder_url = send(route_method)
|
26
|
+
|
27
|
+
add_classes!(html_attrs, "sortable-collection")
|
28
|
+
add_data_rapid!(html_attrs, "sortable-collection", :options => options, :events => events, :ajax_attrs => ajax_attrs, :reorder_url => reorder_url, :reorder_parameter => "#{singular_name}_ordering")
|
29
|
+
%>
|
30
|
+
<collection class="sortable" merge-attrs="&html_attrs" merge-params>
|
31
|
+
<item: param>
|
32
|
+
<div class="ordering-handle" param="handle" if="&can_edit?(this.position_column)">↑<br/>↓</div>
|
33
|
+
<do param="default"><card param/></do>
|
34
|
+
</item:>
|
35
|
+
</collection>
|
36
|
+
</def>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<!-- An enhanced version of [`<input-many>`](/api_tag_defs/input-many) that supports drag-and-drop re-ordering.
|
2
|
+
|
3
|
+
Each item in the collection has a `<div class="ordering-handle" param="handle">` added, which can be used to drag the item up and down.
|
4
|
+
|
5
|
+
If the items in the collection contain an [`acts_as_list`](http://ar.rubyonrails.org/classes/ActiveRecord/Acts/List/ClassMethods.html) declaration, it is updated.
|
6
|
+
|
7
|
+
The specified sort order may be maintained even without `acts_as_list`. The items will be passed to the controller in the correct order, so the order may be persisted there.
|
8
|
+
|
9
|
+
### Attributes
|
10
|
+
|
11
|
+
- `position-column`: The position column may be specified via `acts_as_list`, via a `position_column` method on your model or via this attribute.
|
12
|
+
- others: all other attributes are passed through to [jQuery UI's Sortable](http://jqueryui.com/demos/sortable/) or to `<input-many>`, as appropriate.
|
13
|
+
|
14
|
+
The jQuery UI option `update` is used internally to update the order. If you modify this option, your function may call `$(this).hjq_sortable_input_many('update')` to retain this functionality.
|
15
|
+
-->
|
16
|
+
|
17
|
+
<def tag="sortable-input-many" attrs="position-column, template">
|
18
|
+
<%
|
19
|
+
options, attributes = attributes.partition_hash(['disabled', 'appendTo', 'axis', 'cancel', 'connectWith', 'containment', 'cursor', 'cursorAt', 'delay', 'distance', 'dropOnEmpty', 'forceHelperSize', 'forcePlaceholderSize', 'grid', 'handle', 'helper', 'items', 'opacity', 'placeholder', 'revert', 'scroll', 'scrollSensitivity', 'scrollSpeed', 'tolerance', 'zIndex'])
|
20
|
+
events, attributes = attributes.partition_hash(['create', 'start', 'sort', 'change', 'beforeStop', 'stop', 'update', 'receive', 'remove', 'over', 'out', 'activate', 'deactivate'])
|
21
|
+
|
22
|
+
data_rapid_options = { :options => options, :events => events }
|
23
|
+
%>
|
24
|
+
<% template ||= this.try.new_candidate || this.member_class.new %>
|
25
|
+
<% position_column ||= template.try.position_column -%>
|
26
|
+
<input-many merge class="sortable-input-many" template="&template" more-skip="&position_column" data-rapid="&data_rapid('sortable-input-many', data_rapid_options)">
|
27
|
+
<default: replace>
|
28
|
+
<div class="ordering-handle" param="handle" if="&can_edit?">↑<br/>↓</div>
|
29
|
+
<if test="&position_column">
|
30
|
+
<input class="sortable-position" type="hidden" value="&this.send(position_column)" name="#{param_name_for_this}[#{position_column}]" />
|
31
|
+
</if>
|
32
|
+
<default restore/>
|
33
|
+
</default:>
|
34
|
+
</input-many>
|
35
|
+
</def>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
/* hjq-sortable-collection */
|
2
|
+
(function($) {
|
3
|
+
var methods = {
|
4
|
+
init: function(annotations) {
|
5
|
+
var options = $.extend({update: methods.update}, this.hjq('getOptions', annotations));
|
6
|
+
this.sortable(options);
|
7
|
+
},
|
8
|
+
|
9
|
+
update: function() {
|
10
|
+
var that=$(this);
|
11
|
+
var annotations=that.data('rapid')['sortable-collection'];
|
12
|
+
var roptions = that.hjq('buildRequest', {type: 'post',
|
13
|
+
attrs: annotations.ajax_attrs
|
14
|
+
});
|
15
|
+
roptions.data['authenticity_token']=that.hjq('pageData').form_auth_token.value;
|
16
|
+
roptions.data=$.param(roptions.data);
|
17
|
+
that.children("*[data-rapid-context]").each(function(i) {
|
18
|
+
roptions.data = roptions.data+"&"+annotations.reorder_parameter+"[]="+$(this).hjq('contextId');
|
19
|
+
});
|
20
|
+
|
21
|
+
$.ajax(annotations.reorder_url, roptions);
|
22
|
+
return that;
|
23
|
+
}
|
24
|
+
|
25
|
+
};
|
26
|
+
|
27
|
+
|
28
|
+
$.fn.hjq_sortable_collection = function( method ) {
|
29
|
+
|
30
|
+
if ( methods[method] ) {
|
31
|
+
return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
32
|
+
} else if ( typeof method === 'object' || ! method ) {
|
33
|
+
return methods.init.apply( this, arguments );
|
34
|
+
} else {
|
35
|
+
$.error( 'Method ' + method + ' does not exist on hjq_sortable_collection' );
|
36
|
+
}
|
37
|
+
};
|
38
|
+
|
39
|
+
})( jQuery );
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/* hjq-input-many */
|
2
|
+
(function($) {
|
3
|
+
var methods = {
|
4
|
+
init: function(annotations) {
|
5
|
+
var options = $.extend({update: methods.update}, this.hjq('getOptions', annotations));
|
6
|
+
this.sortable(options);
|
7
|
+
this.on('rapid:change', methods.update);
|
8
|
+
},
|
9
|
+
|
10
|
+
update: function() {
|
11
|
+
var that=$(this);
|
12
|
+
var annotations=that.data('rapid')['sortable-input-many'];
|
13
|
+
that.find("li:visible input.sortable-position").each(function(index) {
|
14
|
+
$(this).val(index+1);
|
15
|
+
});
|
16
|
+
return that;
|
17
|
+
}
|
18
|
+
|
19
|
+
};
|
20
|
+
|
21
|
+
|
22
|
+
$.fn.hjq_sortable_input_many = function( method ) {
|
23
|
+
|
24
|
+
if ( methods[method] ) {
|
25
|
+
return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
26
|
+
} else if ( typeof method === 'object' || ! method ) {
|
27
|
+
return methods.init.apply( this, arguments );
|
28
|
+
} else {
|
29
|
+
$.error( 'Method ' + method + ' does not exist on hjq_sortable_collection' );
|
30
|
+
}
|
31
|
+
};
|
32
|
+
|
33
|
+
})( jQuery );
|
metadata
CHANGED
@@ -1,70 +1,85 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobo_jquery_ui
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: -2480710916
|
5
5
|
prerelease: 6
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
- pre
|
11
|
+
- 8
|
12
|
+
version: 2.0.0.pre8
|
6
13
|
platform: ruby
|
7
|
-
authors:
|
14
|
+
authors:
|
8
15
|
- Bryan Larsen
|
9
16
|
autorequire:
|
10
17
|
bindir: bin
|
11
18
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
19
|
+
|
20
|
+
date: 2013-02-04 00:00:00 Z
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
15
23
|
name: jquery-ui-themes
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 0.0.4
|
22
|
-
type: :runtime
|
23
24
|
prerelease: false
|
24
|
-
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
26
|
none: false
|
26
|
-
requirements:
|
27
|
+
requirements:
|
27
28
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 23
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
- 4
|
29
35
|
version: 0.0.4
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: hobo
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - '='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 2.0.0.pre7
|
38
36
|
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: hobo
|
39
40
|
prerelease: false
|
40
|
-
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - '='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 2.0.0.pre7
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: hobo_jquery
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
49
42
|
none: false
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
|
43
|
+
requirements:
|
44
|
+
- - "="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: -2480710916
|
47
|
+
segments:
|
48
|
+
- 2
|
49
|
+
- 0
|
50
|
+
- 0
|
51
|
+
- pre
|
52
|
+
- 8
|
53
|
+
version: 2.0.0.pre8
|
54
54
|
type: :runtime
|
55
|
+
version_requirements: *id002
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: hobo_jquery
|
55
58
|
prerelease: false
|
56
|
-
|
59
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
60
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
61
|
+
requirements:
|
62
|
+
- - "="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
hash: -2480710916
|
65
|
+
segments:
|
66
|
+
- 2
|
67
|
+
- 0
|
68
|
+
- 0
|
69
|
+
- pre
|
70
|
+
- 8
|
71
|
+
version: 2.0.0.pre8
|
72
|
+
type: :runtime
|
73
|
+
version_requirements: *id003
|
62
74
|
description: JQuery UI support for Hobo
|
63
75
|
email: bryan@larsen.st
|
64
76
|
executables: []
|
77
|
+
|
65
78
|
extensions: []
|
79
|
+
|
66
80
|
extra_rdoc_files: []
|
67
|
-
|
81
|
+
|
82
|
+
files:
|
68
83
|
- .gitmodules
|
69
84
|
- LICENSE.txt
|
70
85
|
- README.markdown
|
@@ -82,6 +97,8 @@ files:
|
|
82
97
|
- taglibs/hobo_jquery_ui.dryml
|
83
98
|
- taglibs/name_one.dryml
|
84
99
|
- taglibs/overrides.dryml
|
100
|
+
- taglibs/sortable_collection.dryml
|
101
|
+
- taglibs/sortable_input_many.dryml
|
85
102
|
- taglibs/tabs.dryml
|
86
103
|
- taglibs/toggle.dryml
|
87
104
|
- vendor/assets/javascripts/combobox.js
|
@@ -90,6 +107,8 @@ files:
|
|
90
107
|
- vendor/assets/javascripts/hobo-jquery-ui/hjq-combobox.js
|
91
108
|
- vendor/assets/javascripts/hobo-jquery-ui/hjq-datepicker.js
|
92
109
|
- vendor/assets/javascripts/hobo-jquery-ui/hjq-dialog.js
|
110
|
+
- vendor/assets/javascripts/hobo-jquery-ui/hjq-sortable-collection.js
|
111
|
+
- vendor/assets/javascripts/hobo-jquery-ui/hjq-sortable-input-many.js
|
93
112
|
- vendor/assets/javascripts/hobo-jquery-ui/hjq-tabs.js
|
94
113
|
- vendor/assets/javascripts/hobo-jquery-ui/hjq-toggle.js
|
95
114
|
- vendor/assets/javascripts/hobo_jquery_ui.js
|
@@ -97,30 +116,41 @@ files:
|
|
97
116
|
- vendor/assets/stylesheets/hobo_jquery_ui.css
|
98
117
|
homepage: http://hobocentral.net
|
99
118
|
licenses: []
|
119
|
+
|
100
120
|
post_install_message:
|
101
|
-
rdoc_options:
|
121
|
+
rdoc_options:
|
102
122
|
- --charset=UTF-8
|
103
|
-
require_paths:
|
123
|
+
require_paths:
|
104
124
|
- lib
|
105
125
|
- vendor
|
106
126
|
- taglibs
|
107
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
128
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
|
113
|
-
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
hash: 3
|
133
|
+
segments:
|
134
|
+
- 0
|
135
|
+
version: "0"
|
136
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
137
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
hash: 23
|
142
|
+
segments:
|
143
|
+
- 1
|
144
|
+
- 3
|
145
|
+
- 6
|
118
146
|
version: 1.3.6
|
119
147
|
requirements: []
|
148
|
+
|
120
149
|
rubyforge_project:
|
121
|
-
rubygems_version: 1.8.
|
150
|
+
rubygems_version: 1.8.25
|
122
151
|
signing_key:
|
123
152
|
specification_version: 3
|
124
153
|
summary: JQuery UI support for Hobo
|
125
154
|
test_files: []
|
155
|
+
|
126
156
|
has_rdoc:
|