fuelux-rails 2.3.2 → 2.4.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +6 -3
- data/lib/fuelux-rails/version.rb +1 -1
- data/lib/generators/fuelux/install_generator.rb +2 -2
- data/lib/tasks/fuelux-rails_tasks.rake +99 -3
- data/vendor/assets/javascripts/fuelux.js +4 -4
- data/vendor/assets/javascripts/fuelux/checkbox.js +22 -3
- data/vendor/assets/javascripts/fuelux/combobox.js +5 -2
- data/vendor/assets/javascripts/fuelux/datagrid.js +61 -12
- data/vendor/assets/javascripts/fuelux/intelligent-dropdown.js +132 -0
- data/vendor/assets/javascripts/fuelux/pillbox.js +64 -12
- data/vendor/assets/javascripts/fuelux/radio.js +11 -1
- data/vendor/assets/javascripts/fuelux/search.js +4 -1
- data/vendor/assets/javascripts/fuelux/select.js +13 -16
- data/vendor/assets/javascripts/fuelux/spinner.js +20 -6
- data/vendor/assets/javascripts/fuelux/tree.js +98 -27
- data/vendor/assets/javascripts/fuelux/util.js +3 -1
- data/vendor/assets/javascripts/fuelux/wizard.js +69 -13
- data/vendor/toolkit/fuelux.less +6 -4
- data/vendor/toolkit/fuelux/checkbox.less +14 -2
- data/vendor/toolkit/fuelux/combobox.less +1 -1
- data/vendor/toolkit/fuelux/datagrid.less +5 -0
- data/vendor/toolkit/fuelux/intelligent-dropdown.less +5 -0
- data/vendor/toolkit/fuelux/pillbox.less +1 -1
- data/vendor/toolkit/fuelux/radio.less +4 -2
- data/vendor/toolkit/fuelux/search.less +1 -1
- data/vendor/toolkit/fuelux/select.less +7 -7
- data/vendor/toolkit/fuelux/spinner.less +1 -1
- data/vendor/toolkit/fuelux/tree.less +5 -3
- data/vendor/toolkit/fuelux/wizard.less +21 -34
- metadata +29 -13
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
!function ($) {
|
10
10
|
|
11
|
+
|
12
|
+
|
11
13
|
// custom case-insensitive match expression
|
12
14
|
function fuelTextExactCI(elem, text) {
|
13
15
|
return (elem.textContent || elem.innerText || $(elem).text() || '').toLowerCase() === (text || '').toLowerCase();
|
@@ -23,4 +25,4 @@
|
|
23
25
|
return fuelTextExactCI(elem, match[3]);
|
24
26
|
};
|
25
27
|
|
26
|
-
}(window.jQuery);
|
28
|
+
}(window.jQuery);
|
@@ -8,6 +8,9 @@
|
|
8
8
|
|
9
9
|
!function ($) {
|
10
10
|
|
11
|
+
|
12
|
+
|
13
|
+
|
11
14
|
// WIZARD CONSTRUCTOR AND PROTOTYPE
|
12
15
|
|
13
16
|
var Wizard = function (element, options) {
|
@@ -15,8 +18,8 @@
|
|
15
18
|
|
16
19
|
this.$element = $(element);
|
17
20
|
this.options = $.extend({}, $.fn.wizard.defaults, options);
|
18
|
-
this.currentStep =
|
19
|
-
this.numSteps = this.$element.find('li').length;
|
21
|
+
this.currentStep = this.options.selectedItem.step;
|
22
|
+
this.numSteps = this.$element.find('.steps li').length;
|
20
23
|
this.$prevBtn = this.$element.find('button.btn-prev');
|
21
24
|
this.$nextBtn = this.$element.find('button.btn-next');
|
22
25
|
|
@@ -28,6 +31,10 @@
|
|
28
31
|
this.$prevBtn.on('click', $.proxy(this.previous, this));
|
29
32
|
this.$nextBtn.on('click', $.proxy(this.next, this));
|
30
33
|
this.$element.on('click', 'li.complete', $.proxy(this.stepclicked, this));
|
34
|
+
|
35
|
+
if(this.currentStep > 1) {
|
36
|
+
this.selectedItem(this.options.selectedItem);
|
37
|
+
}
|
31
38
|
};
|
32
39
|
|
33
40
|
Wizard.prototype = {
|
@@ -55,34 +62,66 @@
|
|
55
62
|
}
|
56
63
|
|
57
64
|
// reset classes for all steps
|
58
|
-
var $steps = this.$element.find('li');
|
65
|
+
var $steps = this.$element.find('.steps li');
|
59
66
|
$steps.removeClass('active').removeClass('complete');
|
60
67
|
$steps.find('span.badge').removeClass('badge-info').removeClass('badge-success');
|
61
68
|
|
62
69
|
// set class for all previous steps
|
63
|
-
var prevSelector = 'li:lt(' + (this.currentStep - 1) + ')';
|
70
|
+
var prevSelector = '.steps li:lt(' + (this.currentStep - 1) + ')';
|
64
71
|
var $prevSteps = this.$element.find(prevSelector);
|
65
72
|
$prevSteps.addClass('complete');
|
66
73
|
$prevSteps.find('span.badge').addClass('badge-success');
|
67
74
|
|
68
75
|
// set class for current step
|
69
|
-
var currentSelector = 'li:eq(' + (this.currentStep - 1) + ')';
|
76
|
+
var currentSelector = '.steps li:eq(' + (this.currentStep - 1) + ')';
|
70
77
|
var $currentStep = this.$element.find(currentSelector);
|
71
78
|
$currentStep.addClass('active');
|
72
79
|
$currentStep.find('span.badge').addClass('badge-info');
|
73
80
|
|
74
81
|
// set display of target element
|
75
82
|
var target = $currentStep.data().target;
|
76
|
-
|
83
|
+
this.$element.find('.step-pane').removeClass('active');
|
77
84
|
$(target).addClass('active');
|
78
85
|
|
86
|
+
// reset the wizard position to the left
|
87
|
+
$('.wizard .steps').attr('style','margin-left: 0');
|
88
|
+
|
89
|
+
// check if the steps are wider than the container div
|
90
|
+
var totalWidth = 0;
|
91
|
+
$('.wizard .steps > li').each(function () {
|
92
|
+
totalWidth += $(this).outerWidth();
|
93
|
+
});
|
94
|
+
var containerWidth = 0;
|
95
|
+
if ($('.wizard .actions').length) {
|
96
|
+
containerWidth = $('.wizard').width() - $('.wizard .actions').outerWidth();
|
97
|
+
} else {
|
98
|
+
containerWidth = $('.wizard').width();
|
99
|
+
}
|
100
|
+
if (totalWidth > containerWidth) {
|
101
|
+
|
102
|
+
// set the position so that the last step is on the right
|
103
|
+
var newMargin = totalWidth - containerWidth;
|
104
|
+
$('.wizard .steps').attr('style','margin-left: -' + newMargin + 'px');
|
105
|
+
|
106
|
+
// set the position so that the active step is in a good
|
107
|
+
// position if it has been moved out of view
|
108
|
+
if ($('.wizard li.active').position().left < 200) {
|
109
|
+
newMargin += $('.wizard li.active').position().left - 200;
|
110
|
+
if (newMargin < 1) {
|
111
|
+
$('.wizard .steps').attr('style','margin-left: 0');
|
112
|
+
} else {
|
113
|
+
$('.wizard .steps').attr('style','margin-left: -' + newMargin + 'px');
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
79
118
|
this.$element.trigger('changed');
|
80
119
|
},
|
81
120
|
|
82
121
|
stepclicked: function (e) {
|
83
122
|
var li = $(e.currentTarget);
|
84
123
|
|
85
|
-
var index =
|
124
|
+
var index = this.$element.find('.steps li').index(li);
|
86
125
|
|
87
126
|
var evt = $.Event('stepclick');
|
88
127
|
this.$element.trigger(evt, {step: index + 1});
|
@@ -122,10 +161,25 @@
|
|
122
161
|
}
|
123
162
|
},
|
124
163
|
|
125
|
-
selectedItem: function (
|
126
|
-
|
127
|
-
|
128
|
-
|
164
|
+
selectedItem: function (selectedItem) {
|
165
|
+
var retVal, step;
|
166
|
+
|
167
|
+
if(selectedItem) {
|
168
|
+
|
169
|
+
step = selectedItem.step || -1;
|
170
|
+
|
171
|
+
if(step >= 1 && step <= this.numSteps) {
|
172
|
+
this.currentStep = step;
|
173
|
+
this.setState();
|
174
|
+
}
|
175
|
+
|
176
|
+
retVal = this;
|
177
|
+
}
|
178
|
+
else {
|
179
|
+
retVal = { step: this.currentStep };
|
180
|
+
}
|
181
|
+
|
182
|
+
return retVal;
|
129
183
|
}
|
130
184
|
};
|
131
185
|
|
@@ -147,7 +201,9 @@
|
|
147
201
|
return (methodReturn === undefined) ? $set : methodReturn;
|
148
202
|
};
|
149
203
|
|
150
|
-
$.fn.wizard.defaults = {
|
204
|
+
$.fn.wizard.defaults = {
|
205
|
+
selectedItem: {step:1}
|
206
|
+
};
|
151
207
|
|
152
208
|
$.fn.wizard.Constructor = Wizard;
|
153
209
|
|
@@ -162,4 +218,4 @@
|
|
162
218
|
});
|
163
219
|
});
|
164
220
|
|
165
|
-
}(window.jQuery);
|
221
|
+
}(window.jQuery);
|
data/vendor/toolkit/fuelux.less
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
//
|
1
|
+
// Tree
|
2
|
+
// --------------------------------------------------
|
3
|
+
@treeBackgroundHover: #DFEEF5;
|
4
|
+
@treeBackgroundSelect: #B9DFF1;
|
2
5
|
@import "fuelux/checkbox.less";
|
3
6
|
@import "fuelux/combobox.less";
|
4
7
|
@import "fuelux/datagrid.less";
|
8
|
+
@import "fuelux/intelligent-dropdown.less";
|
5
9
|
@import "fuelux/pillbox.less";
|
6
10
|
@import "fuelux/radio.less";
|
7
|
-
@import "fuelux/spinner.less";
|
8
11
|
@import "fuelux/search.less";
|
9
12
|
@import "fuelux/select.less";
|
10
|
-
@
|
11
|
-
@treeBackgroundSelect: #B9DFF1;
|
13
|
+
@import "fuelux/spinner.less";
|
12
14
|
@import "fuelux/tree.less";
|
13
15
|
@import "fuelux/wizard.less";
|
@@ -1,10 +1,22 @@
|
|
1
|
+
.form-inline {
|
2
|
+
.checkbox-custom {
|
3
|
+
padding-left: 20px;
|
4
|
+
}
|
5
|
+
|
6
|
+
.checkbox-custom .checkbox {
|
7
|
+
padding-left: 16px;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
1
11
|
.checkbox-custom {
|
2
12
|
input[type=checkbox] {
|
3
|
-
|
13
|
+
/* IE cannot fire events if display none or visibility hidden */
|
14
|
+
position: relative;
|
15
|
+
top: -99999px;
|
4
16
|
}
|
5
17
|
|
6
18
|
i {
|
7
|
-
background-image:
|
19
|
+
background-image: url(../img/form.png);
|
8
20
|
background-position: 0 1px;
|
9
21
|
background-repeat: no-repeat;
|
10
22
|
margin-left: -20px;
|
@@ -34,12 +34,17 @@
|
|
34
34
|
}
|
35
35
|
}
|
36
36
|
|
37
|
+
// When changing this section verify stretchHeight column sizes when sorting
|
38
|
+
// and update SORTED_HEADER_OFFSET in datagrid.js as needed
|
37
39
|
.sorted {
|
38
40
|
.gradientBar(@tableBackgroundAccent, @tableBackgroundAccentDark, @textColor, 'none');
|
39
41
|
|
42
|
+
padding-right: 30px;
|
43
|
+
|
40
44
|
i {
|
41
45
|
float: right;
|
42
46
|
margin-top: 2px;
|
47
|
+
margin-right: -22px;
|
43
48
|
}
|
44
49
|
}
|
45
50
|
|
@@ -1,10 +1,12 @@
|
|
1
1
|
.radio-custom {
|
2
2
|
input[type=radio] {
|
3
|
-
|
3
|
+
/* IE cannot fire events if display none or visibility hidden */
|
4
|
+
position: relative;
|
5
|
+
top: -99999px;
|
4
6
|
}
|
5
7
|
|
6
8
|
i {
|
7
|
-
background-image:
|
9
|
+
background-image: url(../img/form.png);
|
8
10
|
background-position: 0 -15px;
|
9
11
|
background-repeat: no-repeat;
|
10
12
|
margin-left: -20px;
|
@@ -7,11 +7,11 @@
|
|
7
7
|
font-weight: normal;
|
8
8
|
color: #333;
|
9
9
|
}
|
10
|
-
}
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
}
|
11
|
+
&-sizer {
|
12
|
+
display: inline-block;
|
13
|
+
position: absolute;
|
14
|
+
visibility: hidden;
|
15
|
+
top: 0;
|
16
|
+
}
|
17
|
+
}
|
@@ -34,8 +34,10 @@
|
|
34
34
|
}
|
35
35
|
|
36
36
|
.tree-folder-name {
|
37
|
-
|
38
|
-
|
37
|
+
padding-left: 29px;
|
38
|
+
white-space: nowrap;
|
39
|
+
overflow: hidden;
|
40
|
+
text-overflow: ellipsis;
|
39
41
|
}
|
40
42
|
|
41
43
|
}
|
@@ -94,4 +96,4 @@
|
|
94
96
|
background-color: @treeBackgroundSelect;
|
95
97
|
}
|
96
98
|
}
|
97
|
-
}
|
99
|
+
}
|
@@ -6,12 +6,15 @@
|
|
6
6
|
.border-radius(@baseBorderRadius);
|
7
7
|
.box-shadow(0 1px 4px rgba(0,0,0,.065));
|
8
8
|
background-color: @tableBackgroundAccent;
|
9
|
+
position: relative;
|
10
|
+
overflow: hidden;
|
9
11
|
|
10
12
|
ul {
|
11
13
|
list-style: none outside none;
|
12
14
|
padding: 0;
|
13
15
|
margin: 0;
|
14
|
-
|
16
|
+
width: 4000px;
|
17
|
+
|
15
18
|
li {
|
16
19
|
float: left;
|
17
20
|
margin: 0;
|
@@ -32,6 +35,7 @@
|
|
32
35
|
position: absolute;
|
33
36
|
right: -14px;
|
34
37
|
top: 0;
|
38
|
+
z-index: 1;
|
35
39
|
}
|
36
40
|
|
37
41
|
.chevron:before {
|
@@ -75,46 +79,23 @@
|
|
75
79
|
}
|
76
80
|
}
|
77
81
|
|
78
|
-
|
79
|
-
li:nth-child(1) {
|
82
|
+
li:first-child {
|
80
83
|
border-radius: 4px 0 0 4px;
|
81
84
|
padding-left: 20px;
|
82
|
-
z-index: 10;
|
83
|
-
}
|
84
|
-
li:nth-child(2) {
|
85
|
-
z-index: 9;
|
86
|
-
}
|
87
|
-
li:nth-child(3) {
|
88
|
-
z-index: 8;
|
89
|
-
}
|
90
|
-
li:nth-child(4) {
|
91
|
-
z-index: 7;
|
92
|
-
}
|
93
|
-
li:nth-child(5) {
|
94
|
-
z-index: 6;
|
95
|
-
}
|
96
|
-
li:nth-child(6) {
|
97
|
-
z-index: 5;
|
98
|
-
}
|
99
|
-
li:nth-child(7) {
|
100
|
-
z-index: 4;
|
101
|
-
}
|
102
|
-
li:nth-child(8) {
|
103
|
-
z-index: 3;
|
104
|
-
}
|
105
|
-
li:nth-child(9) {
|
106
|
-
z-index: 2;
|
107
|
-
}
|
108
|
-
li:nth-child(10) {
|
109
|
-
z-index: 1;
|
110
85
|
}
|
111
86
|
}
|
112
87
|
|
113
88
|
.actions {
|
114
|
-
|
89
|
+
z-index: 1000;
|
90
|
+
position: absolute;
|
91
|
+
right: 0;
|
92
|
+
line-height: 46px;
|
115
93
|
float: right;
|
116
|
-
padding-
|
94
|
+
padding-left: 15px;
|
95
|
+
padding-right: 15px;
|
117
96
|
vertical-align: middle;
|
97
|
+
background-color: #e5e5e5;
|
98
|
+
border-left: 1px solid @navbarBorder;
|
118
99
|
|
119
100
|
a {
|
120
101
|
line-height: 45px;
|
@@ -143,5 +124,11 @@
|
|
143
124
|
|
144
125
|
.active {
|
145
126
|
display: block;
|
127
|
+
|
128
|
+
.btn-group {
|
129
|
+
.active {
|
130
|
+
display: inline-block;
|
131
|
+
}
|
132
|
+
}
|
146
133
|
}
|
147
|
-
}
|
134
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fuelux-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Baldwin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -66,34 +66,48 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.1'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.1'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: twitter-bootstrap-rails
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - '>='
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
76
|
-
type: :
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - '>='
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: rake
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - '>='
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
103
|
+
version: '0'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - '>='
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
110
|
+
version: '0'
|
97
111
|
description: fuelux-rails project integrates Fuel UX Bootstrap extensions for Rails
|
98
112
|
3.1 Asset Pipeline
|
99
113
|
email:
|
@@ -112,6 +126,7 @@ files:
|
|
112
126
|
- vendor/assets/javascripts/fuelux/checkbox.js
|
113
127
|
- vendor/assets/javascripts/fuelux/combobox.js
|
114
128
|
- vendor/assets/javascripts/fuelux/datagrid.js
|
129
|
+
- vendor/assets/javascripts/fuelux/intelligent-dropdown.js
|
115
130
|
- vendor/assets/javascripts/fuelux/loader.js
|
116
131
|
- vendor/assets/javascripts/fuelux/pillbox.js
|
117
132
|
- vendor/assets/javascripts/fuelux/radio.js
|
@@ -125,6 +140,7 @@ files:
|
|
125
140
|
- vendor/toolkit/fuelux/checkbox.less
|
126
141
|
- vendor/toolkit/fuelux/combobox.less
|
127
142
|
- vendor/toolkit/fuelux/datagrid.less
|
143
|
+
- vendor/toolkit/fuelux/intelligent-dropdown.less
|
128
144
|
- vendor/toolkit/fuelux/pillbox.less
|
129
145
|
- vendor/toolkit/fuelux/radio.less
|
130
146
|
- vendor/toolkit/fuelux/search.less
|
@@ -185,12 +201,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
201
|
version: '0'
|
186
202
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
203
|
requirements:
|
188
|
-
- - '
|
204
|
+
- - '>'
|
189
205
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
206
|
+
version: 1.3.1
|
191
207
|
requirements: []
|
192
208
|
rubyforge_project: fuelux-rails
|
193
|
-
rubygems_version: 2.
|
209
|
+
rubygems_version: 2.1.4
|
194
210
|
signing_key:
|
195
211
|
specification_version: 4
|
196
212
|
summary: Fuel UX for Rails 3.1 Asset Pipeline
|