romo 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/Gemfile +9 -1
- data/README.md +1 -1
- data/assets/css/romo/_mixins.scss +486 -0
- data/assets/css/romo/_vars.scss +159 -0
- data/assets/css/romo/base.scss +454 -0
- data/assets/css/romo/buttons.scss +211 -0
- data/assets/css/romo/datepicker.scss +73 -0
- data/assets/css/romo/dropdown.scss +33 -0
- data/assets/css/romo/forms.scss +193 -0
- data/assets/css/romo/grid.scss +271 -0
- data/assets/css/romo/grid_table.scss +129 -0
- data/assets/css/romo/labels.scss +41 -0
- data/assets/css/romo/lists.scss +37 -0
- data/assets/css/romo/modal.scss +32 -0
- data/assets/css/romo/normalize.scss +425 -0
- data/assets/css/romo/select.scss +89 -0
- data/assets/css/romo/sortable.scss +14 -0
- data/assets/css/romo/table.scss +99 -0
- data/assets/css/romo/tabs.scss +71 -0
- data/assets/css/romo/tooltip.scss +89 -0
- data/assets/css/romo/z_index.scss +26 -0
- data/assets/js/romo/base.js +177 -0
- data/assets/js/romo/datepicker.js +541 -0
- data/assets/js/romo/dropdown.js +309 -0
- data/assets/js/romo/dropdown_form.js +92 -0
- data/assets/js/romo/form.js +182 -0
- data/assets/js/romo/indicator.js +88 -0
- data/assets/js/romo/inline.js +77 -0
- data/assets/js/romo/inline_form.js +86 -0
- data/assets/js/romo/invoke.js +87 -0
- data/assets/js/romo/modal.js +311 -0
- data/assets/js/romo/modal_form.js +101 -0
- data/assets/js/romo/select.js +139 -0
- data/assets/js/romo/select_dropdown.js +325 -0
- data/assets/js/romo/sortable.js +201 -0
- data/assets/js/romo/tooltip.js +258 -0
- data/lib/romo/dassets.rb +64 -0
- data/lib/romo/version.rb +1 -1
- data/lib/romo.rb +9 -0
- data/romo.gemspec +4 -2
- data/test/support/.gitkeep +0 -0
- data/test/system/.gitkeep +0 -0
- data/test/unit/dassets_tests.rb +67 -0
- data/test/unit/romo_tests.rb +21 -0
- metadata +53 -10
@@ -0,0 +1,89 @@
|
|
1
|
+
@import 'css/romo/vars';
|
2
|
+
@import 'css/romo/mixins';
|
3
|
+
|
4
|
+
.romo-select-dropdown-options-parent {
|
5
|
+
display: none;
|
6
|
+
}
|
7
|
+
|
8
|
+
.romo-select-wrapper {
|
9
|
+
display: inline-block;
|
10
|
+
text-align: left;
|
11
|
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
12
|
+
cursor: pointer;
|
13
|
+
@include user-select(none);
|
14
|
+
position: relative;
|
15
|
+
}
|
16
|
+
|
17
|
+
.romo-select {
|
18
|
+
min-width: 50px;
|
19
|
+
font-weight: normal;
|
20
|
+
text-align: left;
|
21
|
+
padding-left: 6px;
|
22
|
+
padding-right: 6px;
|
23
|
+
}
|
24
|
+
|
25
|
+
.romo-select:focus{ @include input-focus; }
|
26
|
+
|
27
|
+
.romo-select:active,
|
28
|
+
.romo-select.active {
|
29
|
+
background-image: none;
|
30
|
+
outline: 0;
|
31
|
+
@include box-shadow((inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)));
|
32
|
+
}
|
33
|
+
|
34
|
+
.romo-select-text {
|
35
|
+
white-space: nowrap;
|
36
|
+
overflow: hidden;
|
37
|
+
display: inline-block;
|
38
|
+
width: 100%;
|
39
|
+
}
|
40
|
+
.romo-select-caret {
|
41
|
+
position: absolute;
|
42
|
+
right: 6px;
|
43
|
+
vertical-align: middle;
|
44
|
+
}
|
45
|
+
|
46
|
+
.romo-select-option-list {
|
47
|
+
cursor: pointer;
|
48
|
+
font-weight: normal;
|
49
|
+
padding: 4px 0;
|
50
|
+
@include user-select(none);
|
51
|
+
|
52
|
+
background-color: $inputBackground;
|
53
|
+
color: $inputColor;
|
54
|
+
}
|
55
|
+
|
56
|
+
.romo-select-option-list UL {
|
57
|
+
list-style: none outside none;
|
58
|
+
margin: 0;
|
59
|
+
padding: 0;
|
60
|
+
white-space: nowrap;
|
61
|
+
overflow: hidden;
|
62
|
+
}
|
63
|
+
|
64
|
+
.romo-select-option-list UL.romo-select-optgroup LI {
|
65
|
+
padding-left: $spacingSize1;
|
66
|
+
}
|
67
|
+
|
68
|
+
.romo-select-option-list LI {
|
69
|
+
@include select-option;
|
70
|
+
}
|
71
|
+
|
72
|
+
.romo-select-option-list LI[data-romo-select-item="optgroup"] {
|
73
|
+
@include select-optgroup;
|
74
|
+
}
|
75
|
+
|
76
|
+
.romo-select-option-list LI.romo-select-highlight {
|
77
|
+
background-color: $inputHighlightBackround;
|
78
|
+
color: $inputBackground;
|
79
|
+
}
|
80
|
+
|
81
|
+
.romo-select-option-list LI.disabled {
|
82
|
+
cursor: $notAllowedCursor;
|
83
|
+
}
|
84
|
+
|
85
|
+
.romo-select-option-list LI.disabled,
|
86
|
+
.romo-select-option-list LI.disabled.romo-select-highlight {
|
87
|
+
background-color: $inputBackground;
|
88
|
+
color: $disabledColor;
|
89
|
+
}
|
@@ -0,0 +1,99 @@
|
|
1
|
+
@import 'css/romo/vars';
|
2
|
+
@import 'css/romo/mixins';
|
3
|
+
|
4
|
+
.romo-table { width: 100%; }
|
5
|
+
|
6
|
+
.romo-table th,
|
7
|
+
.romo-table td {
|
8
|
+
@include rm-pad;
|
9
|
+
@include align-left;
|
10
|
+
@include align-middle;
|
11
|
+
@include border1-bottom;
|
12
|
+
}
|
13
|
+
|
14
|
+
.romo-table th { @include font-weight(bold); }
|
15
|
+
.romo-table thead th { @include align-bottom; }
|
16
|
+
|
17
|
+
.romo-table-alt { @include bg-alt; }
|
18
|
+
|
19
|
+
.romo-table-striped tbody > tr:nth-child(odd) { @include bg-striped; }
|
20
|
+
.romo-table-striped.romo-table-striped-alt tbody > tr:nth-child(odd) { @include bg-base; }
|
21
|
+
.romo-table-striped.romo-table-striped-alt { @include bg-striped; }
|
22
|
+
|
23
|
+
.romo-table tr.romo-muted { @include bg-muted; }
|
24
|
+
.romo-table tr.romo-warning { @include bg-warning; }
|
25
|
+
.romo-table tr.romo-error { @include bg-error; }
|
26
|
+
.romo-table tr.romo-info { @include bg-info; }
|
27
|
+
.romo-table tr.romo-success { @include bg-success; }
|
28
|
+
.romo-table tr.romo-inverse { @include bg-inverse; }
|
29
|
+
|
30
|
+
.romo-table-hover tbody tr:hover,
|
31
|
+
.romo-table-hover.romo-table-alt tbody tr:hover { @include bg-hover; }
|
32
|
+
|
33
|
+
.romo-table-hover tbody tr.romo-muted:hover { @include bg-muted-hover; }
|
34
|
+
.romo-table-hover tbody tr.romo-warning:hover { @include bg-warning-hover; }
|
35
|
+
.romo-table-hover tbody tr.romo-error:hover { @include bg-error-hover; }
|
36
|
+
.romo-table-hover tbody tr.romo-info:hover { @include bg-info-hover; }
|
37
|
+
.romo-table-hover tbody tr.romo-success:hover { @include bg-success-hover; }
|
38
|
+
.romo-table-hover tbody tr.romo-inverse:hover { @include bg-inverse-hover; }
|
39
|
+
|
40
|
+
.romo-table-border,
|
41
|
+
.romo-table-border0,
|
42
|
+
.romo-table-border1,
|
43
|
+
.romo-table-border2 { border-collapse: collapse; *border-collapse: collapse; }
|
44
|
+
|
45
|
+
.romo-table-border,
|
46
|
+
.romo-table-border1 { @include border1-top; @include border1-left; }
|
47
|
+
.romo-table-border0 { @include border0-top; @include border0-left; }
|
48
|
+
.romo-table-border2 { @include border2-top; @include border2-left; }
|
49
|
+
|
50
|
+
.romo-table-border th, .romo-table-border td,
|
51
|
+
.romo-table-border1 th, .romo-table-border1 td { @include border1-bottom; @include border1-right; }
|
52
|
+
.romo-table-border0 th, .romo-table-border0 td { @include border0-bottom; @include border0-right; }
|
53
|
+
.romo-table-border2 th, .romo-table-border2 td { @include border2-bottom; @include border2-right; }
|
54
|
+
|
55
|
+
.romo-table-border-muted { @include border-muted; }
|
56
|
+
.romo-table-border-warning { @include border-warning; }
|
57
|
+
.romo-table-border-error { @include border-error; }
|
58
|
+
.romo-table-border-info { @include border-info; }
|
59
|
+
.romo-table-border-success { @include border-success; }
|
60
|
+
.romo-table-border-inverse { @include border-inverse; }
|
61
|
+
.romo-table-border-alt { @include border-alt; }
|
62
|
+
|
63
|
+
.romo-table-border-muted th, .romo-table-border-muted td { @include border-muted; }
|
64
|
+
.romo-table-border-warning th, .romo-table-border-warning td { @include border-warning; }
|
65
|
+
.romo-table-border-error th, .romo-table-border-error td { @include border-error; }
|
66
|
+
.romo-table-border-info th, .romo-table-border-info td { @include border-info; }
|
67
|
+
.romo-table-border-success th, .romo-table-border-success td { @include border-success; }
|
68
|
+
.romo-table-border-inverse th, .romo-table-border-inverse td { @include border-inverse; }
|
69
|
+
.romo-table-border-alt th, .romo-table-border-alt td { @include border-alt; }
|
70
|
+
|
71
|
+
.romo-table-pad th, .romo-table-pad td,
|
72
|
+
.romo-table-pad1 th, .romo-table-pad1 td { @include pad1; }
|
73
|
+
.romo-table-pad0 th, .romo-table-pad0 td { @include pad0; }
|
74
|
+
.romo-table-pad2 th, .romo-table-pad2 td { @include pad2; }
|
75
|
+
.romo-table-rm-pad th, .romo-table-rm-pad td { @include rm-pad; }
|
76
|
+
|
77
|
+
.romo-table-pad-top th, .romo-table-pad-top td,
|
78
|
+
.romo-table-pad1-top th, .romo-table-pad1-top td { @include pad1-top; }
|
79
|
+
.romo-table-pad0-top th, .romo-table-pad0-top td { @include pad0-top; }
|
80
|
+
.romo-table-pad2-top th, .romo-table-pad2-top td { @include pad2-top; }
|
81
|
+
.romo-table-rm-pad-top th, .romo-table-rm-pad-top td { @include rm-pad-top; }
|
82
|
+
|
83
|
+
.romo-table-pad-right th, .romo-table-pad-right td,
|
84
|
+
.romo-table-pad1-right th, .romo-table-pad1-right td { @include pad1-right; }
|
85
|
+
.romo-table-pad0-right th, .romo-table-pad0-right td { @include pad0-right; }
|
86
|
+
.romo-table-pad2-right th, .romo-table-pad2-right td { @include pad2-right; }
|
87
|
+
.romo-table-rm-pad-right th, .romo-table-rm-pad-right td { @include rm-pad-right; }
|
88
|
+
|
89
|
+
.romo-table-pad-bottom th, .romo-table-pad-bottom td,
|
90
|
+
.romo-table-pad1-bottom th, .romo-table-pad1-bottom td { @include pad1-bottom; }
|
91
|
+
.romo-table-pad0-bottom th, .romo-table-pad0-bottom td { @include pad0-bottom; }
|
92
|
+
.romo-table-pad2-bottom th, .romo-table-pad2-bottom td { @include pad2-bottom; }
|
93
|
+
.romo-table-rm-pad-bottom th, .romo-table-rm-pad-bottom td { @include rm-pad-bottom; }
|
94
|
+
|
95
|
+
.romo-table-pad-left th, .romo-table-pad-left td,
|
96
|
+
.romo-table-pad1-left th, .romo-table-pad1-left td { @include pad1-left; }
|
97
|
+
.romo-table-pad0-left th, .romo-table-pad0-left td { @include pad0-left; }
|
98
|
+
.romo-table-pad2-left th, .romo-table-pad2-left td { @include pad2-left; }
|
99
|
+
.romo-table-rm-pad-left th, .romo-table-rm-pad-left td { @include rm-pad-left; }
|
@@ -0,0 +1,71 @@
|
|
1
|
+
@import 'css/romo/vars';
|
2
|
+
@import 'css/romo/mixins';
|
3
|
+
|
4
|
+
/* tabs */
|
5
|
+
|
6
|
+
.romo-tabs {
|
7
|
+
display: block;
|
8
|
+
@include list-unstyled;
|
9
|
+
@include clearfix;
|
10
|
+
|
11
|
+
border-bottom: $tabDividerSize solid $tabBackgroundActive;
|
12
|
+
}
|
13
|
+
|
14
|
+
.romo-tabs > li {
|
15
|
+
float: left;
|
16
|
+
@include rm-push;
|
17
|
+
@include rm-pad;
|
18
|
+
}
|
19
|
+
|
20
|
+
.romo-tabs-pull-left > li { float: left; }
|
21
|
+
.romo-tabs-pull-right > li { float: right; }
|
22
|
+
|
23
|
+
.romo-tabs > li > a {
|
24
|
+
display: block;
|
25
|
+
cursor: pointer;
|
26
|
+
|
27
|
+
@include border1;
|
28
|
+
background-color: $tabBackground;
|
29
|
+
border-color: $tabBackground;
|
30
|
+
color: $tabColor;
|
31
|
+
|
32
|
+
&:hover,
|
33
|
+
&:focus {
|
34
|
+
outline: 0;
|
35
|
+
text-decoration: none;
|
36
|
+
background-color: $tabBackgroundHover;
|
37
|
+
border-color: $tabBackgroundHover;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
.romo-tabs > li.active > a {
|
42
|
+
background-color: $tabBackgroundActive;
|
43
|
+
border-color: $tabBackgroundActive;
|
44
|
+
color: $tabColorActive;
|
45
|
+
}
|
46
|
+
|
47
|
+
.romo-tabs > li.disabled a,
|
48
|
+
.romo-tabs > li:disabled a {
|
49
|
+
color: $tabColorDisabled;
|
50
|
+
cursor: $notAllowedCursor;
|
51
|
+
|
52
|
+
&:hover,
|
53
|
+
&:focus {
|
54
|
+
background-color: $tabBackground;
|
55
|
+
border-color: $tabBackgroundHover;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
.romo-tabs.romo-tabs-small > li > a,
|
60
|
+
.romo-tabs.romo-tabs0 > li > a { @include font-size0; @include font-weight0; @include line-height0; @include button-pad0; }
|
61
|
+
.romo-tabs > li > a,
|
62
|
+
.romo-tabs.romo-tabs1 > li > a { @include font-size1; @include font-weight1; @include line-height1; @include button-pad1; }
|
63
|
+
.romo-tabs.romo-tabs-large > li > a,
|
64
|
+
.romo-tabs.romo-tabs2 > li > a { @include font-size2; @include font-weight2; @include line-height2; @include button-pad2; }
|
65
|
+
.romo-tabs.romo-tabs3 > li > a { @include font-size3; @include font-weight3; @include line-height3; @include button-pad3; }
|
66
|
+
|
67
|
+
.romo-tabs.romo-tabs-stacked { @include rm-border; }
|
68
|
+
.romo-tabs.romo-tabs-stacked > li { float: none; }
|
69
|
+
.romo-tabs.romo-tabs-stacked > li > a { @include border1; border-color: $baseBorderColor; }
|
70
|
+
.romo-tabs.romo-tabs-stacked > li.active > a { border-color: $tabBackgroundActive; }
|
71
|
+
.romo-tabs.romo-tabs-stacked > li:not(:last-child) > a { @include rm-border-bottom; }
|
@@ -0,0 +1,89 @@
|
|
1
|
+
@import 'css/romo/vars';
|
2
|
+
@import 'css/romo/mixins';
|
3
|
+
|
4
|
+
.romo-tooltip {
|
5
|
+
cursor: pointer;
|
6
|
+
}
|
7
|
+
|
8
|
+
.romo-tooltip-popup {
|
9
|
+
position: absolute;
|
10
|
+
float: left;
|
11
|
+
@include border1-radius;
|
12
|
+
|
13
|
+
white-space: normal;
|
14
|
+
text-align: center;
|
15
|
+
|
16
|
+
font-size: 11px;
|
17
|
+
line-height: 1.4;
|
18
|
+
font-weight: 300;
|
19
|
+
}
|
20
|
+
|
21
|
+
.romo-tooltip-popup:not([class*="romo-tooltip-open"]) {
|
22
|
+
display: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
.romo-tooltip-arrow {
|
26
|
+
position: absolute;
|
27
|
+
width: 0;
|
28
|
+
height: 0;
|
29
|
+
border-color: transparent;
|
30
|
+
border-style: solid;
|
31
|
+
}
|
32
|
+
|
33
|
+
.romo-tooltip-popup[data-romo-tooltip-position="top"] .romo-tooltip-arrow {
|
34
|
+
border-width: 6px 6px 0;
|
35
|
+
bottom: -6px;
|
36
|
+
left: 50%;
|
37
|
+
margin-left: -6px;
|
38
|
+
}
|
39
|
+
|
40
|
+
.romo-tooltip-popup[data-romo-tooltip-position="right"] .romo-tooltip-arrow {
|
41
|
+
border-width: 6px 6px 6px 0;
|
42
|
+
left: -6px;
|
43
|
+
top: 50%;
|
44
|
+
margin-top: -6px;
|
45
|
+
}
|
46
|
+
|
47
|
+
.romo-tooltip-popup[data-romo-tooltip-position="bottom"] .romo-tooltip-arrow {
|
48
|
+
border-width: 0 6px 6px;
|
49
|
+
top: -6px;
|
50
|
+
left: 50%;
|
51
|
+
margin-left: -6px;
|
52
|
+
}
|
53
|
+
|
54
|
+
.romo-tooltip-popup[data-romo-tooltip-position="left"] .romo-tooltip-arrow {
|
55
|
+
border-width: 6px 0 6px 6px;
|
56
|
+
right: -6px;
|
57
|
+
top: 50%;
|
58
|
+
margin-top: -6px;
|
59
|
+
}
|
60
|
+
|
61
|
+
.romo-tooltip-popup[data-romo-tooltip-alignment="left"] { @include align-left; }
|
62
|
+
.romo-tooltip-popup[data-romo-tooltip-alignment="center"] { @include align-center; }
|
63
|
+
.romo-tooltip-popup[data-romo-tooltip-alignment="right"] { @include align-right; }
|
64
|
+
|
65
|
+
.romo-tooltip-body {
|
66
|
+
padding: 6px 8px;
|
67
|
+
overflow: hidden;
|
68
|
+
}
|
69
|
+
|
70
|
+
|
71
|
+
/* theme */
|
72
|
+
|
73
|
+
.romo-tooltip-popup {
|
74
|
+
background-color: $tooltipBackground;
|
75
|
+
color: $tooltipColor;
|
76
|
+
}
|
77
|
+
|
78
|
+
.romo-tooltip-popup[data-romo-tooltip-position="top"] .romo-tooltip-arrow {
|
79
|
+
border-top-color: $tooltipBackground;
|
80
|
+
}
|
81
|
+
.romo-tooltip-popup[data-romo-tooltip-position="right"] .romo-tooltip-arrow {
|
82
|
+
border-right-color: $tooltipBackground;
|
83
|
+
}
|
84
|
+
.romo-tooltip-popup[data-romo-tooltip-position="bottom"] .romo-tooltip-arrow {
|
85
|
+
border-bottom-color: $tooltipBackground;
|
86
|
+
}
|
87
|
+
.romo-tooltip-popup[data-romo-tooltip-position="left"] .romo-tooltip-arrow {
|
88
|
+
border-left-color: $tooltipBackground;
|
89
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
@import 'css/romo/vars';
|
2
|
+
@import 'css/romo/mixins';
|
3
|
+
|
4
|
+
.romo-tooltip-popup {
|
5
|
+
z-index: $tooltipZIndex;
|
6
|
+
}
|
7
|
+
.romo-tooltip-popup * {
|
8
|
+
z-index: inherit;
|
9
|
+
}
|
10
|
+
|
11
|
+
.romo-dropdown-popup {
|
12
|
+
z-index: $dropdownZIndex;
|
13
|
+
}
|
14
|
+
.romo-dropdown-popup * {
|
15
|
+
z-index: inherit;
|
16
|
+
}
|
17
|
+
|
18
|
+
// 1300 is reserved for app specific things like nav bars, etc
|
19
|
+
// modals should appear on top of everything though
|
20
|
+
|
21
|
+
.romo-modal-popup {
|
22
|
+
z-index: $modalZIndex;
|
23
|
+
}
|
24
|
+
.romo-modal-popup * {
|
25
|
+
z-index: inherit;
|
26
|
+
}
|
@@ -0,0 +1,177 @@
|
|
1
|
+
(function() {
|
2
|
+
var Romo = function() {
|
3
|
+
this._eventCallbacks = [];
|
4
|
+
}
|
5
|
+
|
6
|
+
Romo.prototype.doInit = function() {
|
7
|
+
$.each(this._eventCallbacks, function(idx, eventCallback) {
|
8
|
+
$('body').on(eventCallback.eventName, eventCallback.callback);
|
9
|
+
});
|
10
|
+
|
11
|
+
this.triggerInitUI($('body'));
|
12
|
+
}
|
13
|
+
|
14
|
+
// init UI
|
15
|
+
|
16
|
+
Romo.prototype.onInitUI = function(callback) {
|
17
|
+
this._addEventCallback('romo:initUI', callback);
|
18
|
+
}
|
19
|
+
|
20
|
+
Romo.prototype.triggerInitUI = function(elems) {
|
21
|
+
elems.trigger('romo:initUI');
|
22
|
+
}
|
23
|
+
|
24
|
+
Romo.prototype.initUIElems = function(e, selector) {
|
25
|
+
var elems = $(e.target).find(selector).get();
|
26
|
+
if ($(e.target).is(selector)) {
|
27
|
+
elems.push(e.target)
|
28
|
+
}
|
29
|
+
return $(elems);
|
30
|
+
}
|
31
|
+
|
32
|
+
Romo.prototype.initHtml = function(elem, data) {
|
33
|
+
var htmlElems = $(data)
|
34
|
+
elem.html(htmlElems);
|
35
|
+
this.triggerInitUI(htmlElems);
|
36
|
+
return htmlElems;
|
37
|
+
}
|
38
|
+
|
39
|
+
Romo.prototype.initReplace = function(elem, data) {
|
40
|
+
var replacementElem = $(data);
|
41
|
+
elem.replaceWith(replacementElem);
|
42
|
+
this.triggerInitUI(replacementElem);
|
43
|
+
return replacementElem;
|
44
|
+
}
|
45
|
+
|
46
|
+
Romo.prototype.initPrepend = function(elem, data) {
|
47
|
+
var prependedElem = $(data);
|
48
|
+
elem.prepend(prependedElem);
|
49
|
+
this.triggerInitUI(prependedElem);
|
50
|
+
return prependedElem;
|
51
|
+
}
|
52
|
+
|
53
|
+
Romo.prototype.initAppend = function(elem, data) {
|
54
|
+
var appendedElem = $(data);
|
55
|
+
elem.append(appendedElem);
|
56
|
+
this.triggerInitUI(appendedElem);
|
57
|
+
return appendedElem;
|
58
|
+
}
|
59
|
+
|
60
|
+
Romo.prototype.initBefore = function(elem, data) {
|
61
|
+
var insertedElem = $(data);
|
62
|
+
elem.before(insertedElem);
|
63
|
+
this.triggerInitUI(insertedElem);
|
64
|
+
return insertedElem;
|
65
|
+
}
|
66
|
+
|
67
|
+
Romo.prototype.initAfter = function(elem, data) {
|
68
|
+
var insertedElem = $(data);
|
69
|
+
elem.after(insertedElem);
|
70
|
+
this.triggerInitUI(insertedElem);
|
71
|
+
return insertedElem;
|
72
|
+
}
|
73
|
+
|
74
|
+
// page handling
|
75
|
+
|
76
|
+
Romo.prototype.reloadPage = function() {
|
77
|
+
window.location = window.location;
|
78
|
+
}
|
79
|
+
|
80
|
+
Romo.prototype.redirectPage = function(redirectUrl) {
|
81
|
+
window.location = redirectUrl;
|
82
|
+
}
|
83
|
+
|
84
|
+
// param serialization
|
85
|
+
|
86
|
+
Romo.prototype.param = function(data, opts) {
|
87
|
+
var paramData = $.extend({}, data);
|
88
|
+
|
89
|
+
if (opts && opts.removeEmpty) {
|
90
|
+
$.each(paramData, function(key, value) {
|
91
|
+
if (value === '') {
|
92
|
+
delete paramData[key];
|
93
|
+
}
|
94
|
+
})
|
95
|
+
}
|
96
|
+
|
97
|
+
var paramString = $.param(paramData);
|
98
|
+
|
99
|
+
if (opts && opts.decodeValues) {
|
100
|
+
paramString = this.decodeParam(paramString);
|
101
|
+
}
|
102
|
+
|
103
|
+
return paramString;
|
104
|
+
}
|
105
|
+
|
106
|
+
Romo.prototype.decodeParam = function(string) {
|
107
|
+
return this.decodeParamMap.reduce(function(prev, curr) {
|
108
|
+
return prev.replace(curr[0], curr[1]);
|
109
|
+
}, string);
|
110
|
+
}
|
111
|
+
|
112
|
+
Romo.prototype.decodeParamMap = [
|
113
|
+
[/%20/g, '+'],
|
114
|
+
[/%21/g, '!'],
|
115
|
+
[/%24/g, '$'],
|
116
|
+
[/%28/g, '('],
|
117
|
+
[/%29/g, ')'],
|
118
|
+
[/%2A/g, '*'],
|
119
|
+
[/%2B/g, '+'],
|
120
|
+
[/%2C/g, ','],
|
121
|
+
[/%2D/g, '-'],
|
122
|
+
[/%2E/g, '.'],
|
123
|
+
[/%2F/g, '/'],
|
124
|
+
[/%5B/g, '['],
|
125
|
+
[/%5C/g, '\\'],
|
126
|
+
[/%5D/g, ']'],
|
127
|
+
[/%3A/g, ':'],
|
128
|
+
[/%3C/g, '<'],
|
129
|
+
[/%3E/g, '>'],
|
130
|
+
[/%3F/g, '?'],
|
131
|
+
[/%40/g, '@'],
|
132
|
+
[/%5E/g, '^'],
|
133
|
+
[/%5F/g, '_'],
|
134
|
+
[/%60/g, '`'],
|
135
|
+
[/%7B/g, '{'],
|
136
|
+
[/%7C/g, '|'],
|
137
|
+
[/%7D/g, '}'],
|
138
|
+
[/%7E/g, '~']
|
139
|
+
];
|
140
|
+
|
141
|
+
// style handling
|
142
|
+
|
143
|
+
Romo.prototype.parseZIndex = function(elem) {
|
144
|
+
// for the case where the browser doesn't suck and can read inherited z-index
|
145
|
+
var val = parseInt(elem.css('z-index'));
|
146
|
+
if (!isNaN(val)) {
|
147
|
+
return val;
|
148
|
+
}
|
149
|
+
|
150
|
+
// for the case where the browser sucks and can't read inherited z-index - we'll do it for you!
|
151
|
+
var parentIndexes = $.map(elem.parents(), function(item) {
|
152
|
+
return item; // converts the collection to an array
|
153
|
+
}).reduce($.proxy(function(prev, curr) {
|
154
|
+
var pval = parseInt($(curr).css('z-index'));
|
155
|
+
if (!isNaN(pval)) {
|
156
|
+
prev.push(pval);
|
157
|
+
}
|
158
|
+
return prev;
|
159
|
+
}, this), []);
|
160
|
+
parentIndexes.push(0); // in case z-index is 'auto' all the way up
|
161
|
+
return parentIndexes[0];
|
162
|
+
}
|
163
|
+
|
164
|
+
// private
|
165
|
+
|
166
|
+
Romo.prototype._addEventCallback = function(name, callback) {
|
167
|
+
this._eventCallbacks.push({ eventName: name, callback: callback });
|
168
|
+
}
|
169
|
+
|
170
|
+
window.Romo = new Romo();
|
171
|
+
})();
|
172
|
+
|
173
|
+
$(function() {
|
174
|
+
|
175
|
+
Romo.doInit();
|
176
|
+
|
177
|
+
})
|