spiderfw 0.6.30 → 0.6.31
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 +15 -7
- data/CHANGELOG +11 -0
- data/VERSION +1 -1
- data/apps/app_server/config/options.rb +1 -1
- data/apps/core/auth/controllers/login_controller.rb +3 -0
- data/apps/core/components/assets.rb +61 -3
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.eot +0 -0
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.svg +229 -0
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.ttf +0 -0
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.woff +0 -0
- data/apps/core/components/public/bootstrap_3/js/affix.js +140 -0
- data/apps/core/components/public/bootstrap_3/js/alert.js +92 -0
- data/apps/core/components/public/bootstrap_3/js/button.js +110 -0
- data/apps/core/components/public/bootstrap_3/js/carousel.js +210 -0
- data/apps/core/components/public/bootstrap_3/js/collapse.js +180 -0
- data/apps/core/components/public/bootstrap_3/js/dropdown.js +151 -0
- data/apps/core/components/public/bootstrap_3/js/modal.js +277 -0
- data/apps/core/components/public/bootstrap_3/js/popover.js +113 -0
- data/apps/core/components/public/bootstrap_3/js/scrollspy.js +158 -0
- data/apps/core/components/public/bootstrap_3/js/tab.js +128 -0
- data/apps/core/components/public/bootstrap_3/js/tooltip.js +456 -0
- data/apps/core/components/public/bootstrap_3/js/transition.js +48 -0
- data/apps/core/components/public/bootstrap_3/scss/_alerts.scss +67 -0
- data/apps/core/components/public/bootstrap_3/scss/_badges.scss +57 -0
- data/apps/core/components/public/bootstrap_3/scss/_breadcrumbs.scss +26 -0
- data/apps/core/components/public/bootstrap_3/scss/_button-groups.scss +240 -0
- data/apps/core/components/public/bootstrap_3/scss/_buttons.scss +159 -0
- data/apps/core/components/public/bootstrap_3/scss/_carousel.scss +243 -0
- data/apps/core/components/public/bootstrap_3/scss/_close.scss +35 -0
- data/apps/core/components/public/bootstrap_3/scss/_code.scss +62 -0
- data/apps/core/components/public/bootstrap_3/scss/_component-animations.scss +35 -0
- data/apps/core/components/public/bootstrap_3/scss/_dropdowns.scss +214 -0
- data/apps/core/components/public/bootstrap_3/scss/_forms.scss +489 -0
- data/apps/core/components/public/bootstrap_3/scss/_glyphicons.scss +237 -0
- data/apps/core/components/public/bootstrap_3/scss/_grid.scss +84 -0
- data/apps/core/components/public/bootstrap_3/scss/_input-groups.scss +166 -0
- data/apps/core/components/public/bootstrap_3/scss/_jumbotron.scss +48 -0
- data/apps/core/components/public/bootstrap_3/scss/_labels.scss +66 -0
- data/apps/core/components/public/bootstrap_3/scss/_list-group.scss +129 -0
- data/apps/core/components/public/bootstrap_3/scss/_media.scss +56 -0
- data/apps/core/components/public/bootstrap_3/scss/_mixins.scss +39 -0
- data/apps/core/components/public/bootstrap_3/scss/_modals.scss +147 -0
- data/apps/core/components/public/bootstrap_3/scss/_navbar.scss +658 -0
- data/apps/core/components/public/bootstrap_3/scss/_navs.scss +242 -0
- data/apps/core/components/public/bootstrap_3/scss/_normalize.scss +425 -0
- data/apps/core/components/public/bootstrap_3/scss/_pager.scss +55 -0
- data/apps/core/components/public/bootstrap_3/scss/_pagination.scss +88 -0
- data/apps/core/components/public/bootstrap_3/scss/_panels.scss +240 -0
- data/apps/core/components/public/bootstrap_3/scss/_popovers.scss +133 -0
- data/apps/core/components/public/bootstrap_3/scss/_print.scss +101 -0
- data/apps/core/components/public/bootstrap_3/scss/_progress-bars.scss +89 -0
- data/apps/core/components/public/bootstrap_3/scss/_responsive-embed.scss +34 -0
- data/apps/core/components/public/bootstrap_3/scss/_responsive-utilities.scss +174 -0
- data/apps/core/components/public/bootstrap_3/scss/_scaffolding.scss +150 -0
- data/apps/core/components/public/bootstrap_3/scss/_tables.scss +233 -0
- data/apps/core/components/public/bootstrap_3/scss/_theme.scss +247 -0
- data/apps/core/components/public/bootstrap_3/scss/_thumbnails.scss +38 -0
- data/apps/core/components/public/bootstrap_3/scss/_tooltip.scss +95 -0
- data/apps/core/components/public/bootstrap_3/scss/_type.scss +298 -0
- data/apps/core/components/public/bootstrap_3/scss/_utilities.scss +56 -0
- data/apps/core/components/public/bootstrap_3/scss/_variables.scss +853 -0
- data/apps/core/components/public/bootstrap_3/scss/_wells.scss +29 -0
- data/apps/core/components/public/bootstrap_3/scss/bootstrap.scss +50 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_alerts.scss +14 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_background-variant.scss +11 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_border-radius.scss +18 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_buttons.scss +50 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_center-block.scss +7 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_clearfix.scss +22 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_forms.scss +84 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_gradients.scss +58 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_grid-framework.scss +87 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_grid.scss +122 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_hide-text.scss +21 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_image.scss +33 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_labels.scss +12 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_list-group.scss +31 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_nav-divider.scss +10 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_nav-vertical-align.scss +9 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_opacity.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_pagination.scss +23 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_panels.scss +20 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_progress-bar.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_reset-filter.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_resize.scss +6 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_responsive-visibility.scss +21 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_size.scss +10 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_tab-focus.scss +9 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_table-row.scss +28 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_text-emphasis.scss +11 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_text-overflow.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_vendor-prefixes.scss +224 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.js +1 -1
- data/apps/core/components/widgets/month_calendar/month_calendar.shtml +3 -3
- data/apps/core/components/widgets/table/table.rb +6 -2
- data/apps/core/components/widgets/table/table.shtml +4 -4
- data/apps/core/forms/widgets/form/form.rb +1 -1
- data/apps/core/forms/widgets/inputs/select/select.rb +13 -2
- data/apps/messenger/lib/backends/mobyt.rb +6 -2
- data/apps/messenger/lib/backends/skebby.rb +1 -1
- data/apps/webdav/controllers/webdav_controller.rb +16 -7
- data/lib/spiderfw/controller/http_controller.rb +4 -1
- data/lib/spiderfw/env.rb +0 -1
- data/lib/spiderfw/http/adapters/rack.rb +3 -1
- data/lib/spiderfw/model/base_model.rb +7 -3
- data/lib/spiderfw/model/storage/connection_pool.rb +6 -2
- data/lib/spiderfw/model/storage/db/db_storage.rb +25 -9
- data/lib/spiderfw/site.rb +1 -1
- metadata +308 -149
@@ -0,0 +1,23 @@
|
|
1
|
+
// Pagination
|
2
|
+
|
3
|
+
@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) {
|
4
|
+
> li {
|
5
|
+
> a,
|
6
|
+
> span {
|
7
|
+
padding: $padding-vertical $padding-horizontal;
|
8
|
+
font-size: $font-size;
|
9
|
+
}
|
10
|
+
&:first-child {
|
11
|
+
> a,
|
12
|
+
> span {
|
13
|
+
@include border-left-radius($border-radius);
|
14
|
+
}
|
15
|
+
}
|
16
|
+
&:last-child {
|
17
|
+
> a,
|
18
|
+
> span {
|
19
|
+
@include border-right-radius($border-radius);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// Panels
|
2
|
+
|
3
|
+
@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
|
4
|
+
border-color: $border;
|
5
|
+
|
6
|
+
& > .panel-heading {
|
7
|
+
color: $heading-text-color;
|
8
|
+
background-color: $heading-bg-color;
|
9
|
+
border-color: $heading-border;
|
10
|
+
|
11
|
+
+ .panel-collapse > .panel-body {
|
12
|
+
border-top-color: $border;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
& > .panel-footer {
|
16
|
+
+ .panel-collapse > .panel-body {
|
17
|
+
border-bottom-color: $border;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// Responsive utilities
|
2
|
+
|
3
|
+
//
|
4
|
+
// More easily include all the states for responsive-utilities.less.
|
5
|
+
// [converter] $parent hack
|
6
|
+
@mixin responsive-visibility($parent) {
|
7
|
+
#{$parent} {
|
8
|
+
display: block !important;
|
9
|
+
}
|
10
|
+
table#{$parent} { display: table; }
|
11
|
+
tr#{$parent} { display: table-row !important; }
|
12
|
+
th#{$parent},
|
13
|
+
td#{$parent} { display: table-cell !important; }
|
14
|
+
}
|
15
|
+
|
16
|
+
// [converter] $parent hack
|
17
|
+
@mixin responsive-invisibility($parent) {
|
18
|
+
#{$parent} {
|
19
|
+
display: none !important;
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// Tables
|
2
|
+
|
3
|
+
@mixin table-row-variant($state, $background) {
|
4
|
+
// Exact selectors below required to override `.table-striped` and prevent
|
5
|
+
// inheritance to nested tables.
|
6
|
+
.table > thead > tr,
|
7
|
+
.table > tbody > tr,
|
8
|
+
.table > tfoot > tr {
|
9
|
+
> td.#{$state},
|
10
|
+
> th.#{$state},
|
11
|
+
&.#{$state} > td,
|
12
|
+
&.#{$state} > th {
|
13
|
+
background-color: $background;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
// Hover states for `.table-hover`
|
18
|
+
// Note: this is not available for cells or rows within `thead` or `tfoot`.
|
19
|
+
.table-hover > tbody > tr {
|
20
|
+
> td.#{$state}:hover,
|
21
|
+
> th.#{$state}:hover,
|
22
|
+
&.#{$state}:hover > td,
|
23
|
+
&:hover > .#{$state},
|
24
|
+
&.#{$state}:hover > th {
|
25
|
+
background-color: darken($background, 5%);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,224 @@
|
|
1
|
+
// Vendor Prefixes
|
2
|
+
//
|
3
|
+
// All vendor mixins are deprecated as of v3.2 due to the introduction of
|
4
|
+
// Autoprefixer in our Gruntfile. They will be removed in v4.
|
5
|
+
|
6
|
+
// - Animations
|
7
|
+
// - Backface visibility
|
8
|
+
// - Box shadow
|
9
|
+
// - Box sizing
|
10
|
+
// - Content columns
|
11
|
+
// - Hyphens
|
12
|
+
// - Placeholder text
|
13
|
+
// - Transformations
|
14
|
+
// - Transitions
|
15
|
+
// - User Select
|
16
|
+
|
17
|
+
|
18
|
+
// Animations
|
19
|
+
@mixin animation($animation) {
|
20
|
+
-webkit-animation: $animation;
|
21
|
+
-o-animation: $animation;
|
22
|
+
animation: $animation;
|
23
|
+
}
|
24
|
+
@mixin animation-name($name) {
|
25
|
+
-webkit-animation-name: $name;
|
26
|
+
animation-name: $name;
|
27
|
+
}
|
28
|
+
@mixin animation-duration($duration) {
|
29
|
+
-webkit-animation-duration: $duration;
|
30
|
+
animation-duration: $duration;
|
31
|
+
}
|
32
|
+
@mixin animation-timing-function($timing-function) {
|
33
|
+
-webkit-animation-timing-function: $timing-function;
|
34
|
+
animation-timing-function: $timing-function;
|
35
|
+
}
|
36
|
+
@mixin animation-delay($delay) {
|
37
|
+
-webkit-animation-delay: $delay;
|
38
|
+
animation-delay: $delay;
|
39
|
+
}
|
40
|
+
@mixin animation-iteration-count($iteration-count) {
|
41
|
+
-webkit-animation-iteration-count: $iteration-count;
|
42
|
+
animation-iteration-count: $iteration-count;
|
43
|
+
}
|
44
|
+
@mixin animation-direction($direction) {
|
45
|
+
-webkit-animation-direction: $direction;
|
46
|
+
animation-direction: $direction;
|
47
|
+
}
|
48
|
+
@mixin animation-fill-mode($fill-mode) {
|
49
|
+
-webkit-animation-fill-mode: $fill-mode;
|
50
|
+
animation-fill-mode: $fill-mode;
|
51
|
+
}
|
52
|
+
|
53
|
+
// Backface visibility
|
54
|
+
// Prevent browsers from flickering when using CSS 3D transforms.
|
55
|
+
// Default value is `visible`, but can be changed to `hidden`
|
56
|
+
|
57
|
+
@mixin backface-visibility($visibility){
|
58
|
+
-webkit-backface-visibility: $visibility;
|
59
|
+
-moz-backface-visibility: $visibility;
|
60
|
+
backface-visibility: $visibility;
|
61
|
+
}
|
62
|
+
|
63
|
+
// Drop shadows
|
64
|
+
//
|
65
|
+
// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
|
66
|
+
// supported browsers that have box shadow capabilities now support it.
|
67
|
+
|
68
|
+
@mixin box-shadow($shadow...) {
|
69
|
+
-webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
|
70
|
+
box-shadow: $shadow;
|
71
|
+
}
|
72
|
+
|
73
|
+
// Box sizing
|
74
|
+
@mixin box-sizing($boxmodel) {
|
75
|
+
-webkit-box-sizing: $boxmodel;
|
76
|
+
-moz-box-sizing: $boxmodel;
|
77
|
+
box-sizing: $boxmodel;
|
78
|
+
}
|
79
|
+
|
80
|
+
// CSS3 Content Columns
|
81
|
+
@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
|
82
|
+
-webkit-column-count: $column-count;
|
83
|
+
-moz-column-count: $column-count;
|
84
|
+
column-count: $column-count;
|
85
|
+
-webkit-column-gap: $column-gap;
|
86
|
+
-moz-column-gap: $column-gap;
|
87
|
+
column-gap: $column-gap;
|
88
|
+
}
|
89
|
+
|
90
|
+
// Optional hyphenation
|
91
|
+
@mixin hyphens($mode: auto) {
|
92
|
+
word-wrap: break-word;
|
93
|
+
-webkit-hyphens: $mode;
|
94
|
+
-moz-hyphens: $mode;
|
95
|
+
-ms-hyphens: $mode; // IE10+
|
96
|
+
-o-hyphens: $mode;
|
97
|
+
hyphens: $mode;
|
98
|
+
}
|
99
|
+
|
100
|
+
// Placeholder text
|
101
|
+
@mixin placeholder($color: $input-color-placeholder) {
|
102
|
+
&::-moz-placeholder { color: $color; // Firefox
|
103
|
+
opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
|
104
|
+
&:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
|
105
|
+
&::-webkit-input-placeholder { color: $color; } // Safari and Chrome
|
106
|
+
}
|
107
|
+
|
108
|
+
// Transformations
|
109
|
+
@mixin scale($ratio...) {
|
110
|
+
-webkit-transform: scale($ratio);
|
111
|
+
-ms-transform: scale($ratio); // IE9 only
|
112
|
+
-o-transform: scale($ratio);
|
113
|
+
transform: scale($ratio);
|
114
|
+
}
|
115
|
+
@mixin scale($ratioX, $ratioY...) {
|
116
|
+
-webkit-transform: scale($ratioX, $ratioY);
|
117
|
+
-ms-transform: scale($ratioX, $ratioY); // IE9 only
|
118
|
+
-o-transform: scale($ratioX, $ratioY);
|
119
|
+
transform: scale($ratioX, $ratioY);
|
120
|
+
}
|
121
|
+
@mixin scaleX($ratio) {
|
122
|
+
-webkit-transform: scaleX($ratio);
|
123
|
+
-ms-transform: scaleX($ratio); // IE9 only
|
124
|
+
-o-transform: scaleX($ratio);
|
125
|
+
transform: scaleX($ratio);
|
126
|
+
}
|
127
|
+
@mixin scaleY($ratio) {
|
128
|
+
-webkit-transform: scaleY($ratio);
|
129
|
+
-ms-transform: scaleY($ratio); // IE9 only
|
130
|
+
-o-transform: scaleY($ratio);
|
131
|
+
transform: scaleY($ratio);
|
132
|
+
}
|
133
|
+
@mixin skew($x, $y) {
|
134
|
+
-webkit-transform: skew($x, $y);
|
135
|
+
-ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
|
136
|
+
-o-transform: skew($x, $y);
|
137
|
+
transform: skew($x, $y);
|
138
|
+
}
|
139
|
+
@mixin translate($x, $y) {
|
140
|
+
-webkit-transform: translate($x, $y);
|
141
|
+
-ms-transform: translate($x, $y); // IE9 only
|
142
|
+
-o-transform: translate($x, $y);
|
143
|
+
transform: translate($x, $y);
|
144
|
+
}
|
145
|
+
@mixin translate3d($x, $y, $z) {
|
146
|
+
-webkit-transform: translate3d($x, $y, $z);
|
147
|
+
transform: translate3d($x, $y, $z);
|
148
|
+
}
|
149
|
+
@mixin rotate($degrees) {
|
150
|
+
-webkit-transform: rotate($degrees);
|
151
|
+
-ms-transform: rotate($degrees); // IE9 only
|
152
|
+
-o-transform: rotate($degrees);
|
153
|
+
transform: rotate($degrees);
|
154
|
+
}
|
155
|
+
@mixin rotateX($degrees) {
|
156
|
+
-webkit-transform: rotateX($degrees);
|
157
|
+
-ms-transform: rotateX($degrees); // IE9 only
|
158
|
+
-o-transform: rotateX($degrees);
|
159
|
+
transform: rotateX($degrees);
|
160
|
+
}
|
161
|
+
@mixin rotateY($degrees) {
|
162
|
+
-webkit-transform: rotateY($degrees);
|
163
|
+
-ms-transform: rotateY($degrees); // IE9 only
|
164
|
+
-o-transform: rotateY($degrees);
|
165
|
+
transform: rotateY($degrees);
|
166
|
+
}
|
167
|
+
@mixin perspective($perspective) {
|
168
|
+
-webkit-perspective: $perspective;
|
169
|
+
-moz-perspective: $perspective;
|
170
|
+
perspective: $perspective;
|
171
|
+
}
|
172
|
+
@mixin perspective-origin($perspective) {
|
173
|
+
-webkit-perspective-origin: $perspective;
|
174
|
+
-moz-perspective-origin: $perspective;
|
175
|
+
perspective-origin: $perspective;
|
176
|
+
}
|
177
|
+
@mixin transform-origin($origin) {
|
178
|
+
-webkit-transform-origin: $origin;
|
179
|
+
-moz-transform-origin: $origin;
|
180
|
+
-ms-transform-origin: $origin; // IE9 only
|
181
|
+
transform-origin: $origin;
|
182
|
+
}
|
183
|
+
|
184
|
+
|
185
|
+
// Transitions
|
186
|
+
|
187
|
+
@mixin transition($transition...) {
|
188
|
+
-webkit-transition: $transition;
|
189
|
+
-o-transition: $transition;
|
190
|
+
transition: $transition;
|
191
|
+
}
|
192
|
+
@mixin transition-property($transition-property...) {
|
193
|
+
-webkit-transition-property: $transition-property;
|
194
|
+
transition-property: $transition-property;
|
195
|
+
}
|
196
|
+
@mixin transition-delay($transition-delay) {
|
197
|
+
-webkit-transition-delay: $transition-delay;
|
198
|
+
transition-delay: $transition-delay;
|
199
|
+
}
|
200
|
+
@mixin transition-duration($transition-duration...) {
|
201
|
+
-webkit-transition-duration: $transition-duration;
|
202
|
+
transition-duration: $transition-duration;
|
203
|
+
}
|
204
|
+
@mixin transition-timing-function($timing-function) {
|
205
|
+
-webkit-transition-timing-function: $timing-function;
|
206
|
+
transition-timing-function: $timing-function;
|
207
|
+
}
|
208
|
+
@mixin transition-transform($transition...) {
|
209
|
+
-webkit-transition: -webkit-transform $transition;
|
210
|
+
-moz-transition: -moz-transform $transition;
|
211
|
+
-o-transition: -o-transform $transition;
|
212
|
+
transition: transform $transition;
|
213
|
+
}
|
214
|
+
|
215
|
+
|
216
|
+
// User select
|
217
|
+
// For selecting text on the page
|
218
|
+
|
219
|
+
@mixin user-select($select) {
|
220
|
+
-webkit-user-select: $select;
|
221
|
+
-moz-user-select: $select;
|
222
|
+
-ms-user-select: $select; // IE10+
|
223
|
+
user-select: $select;
|
224
|
+
}
|
@@ -4,19 +4,19 @@
|
|
4
4
|
<table class="{ @widget[:css_class] }">
|
5
5
|
<thead>
|
6
6
|
<tr>
|
7
|
-
<th colspan="7">
|
7
|
+
<th colspan="7" scope="row" id="current_month">
|
8
8
|
<a href="{ @request[:path] }?_w{ @widget[:param_u] }%5Bd%5D={ @prev_link }"><span><<</span></a>
|
9
9
|
{ @current_month_name } { @year }
|
10
10
|
<a href="{ @request[:path] }?_w{ @widget[:param_u] }%5Bd%5D={ @next_link }"><span>>></span></a>
|
11
11
|
</th>
|
12
12
|
</tr>
|
13
13
|
<tr>
|
14
|
-
<th sp:each="@week_days |i|">{ @days_short_names[i] }</th>
|
14
|
+
<th scope="col" sp:each="@week_days |i|" id="{ @days_short_names[i] }_{ i }">{ @days_short_names[i] }</th>
|
15
15
|
</tr>
|
16
16
|
</thead>
|
17
17
|
<tbody>
|
18
18
|
<tr sp:each="@rows |row|">
|
19
|
-
<td sp:
|
19
|
+
<td sp:each_with_index="row |col, i|" headers="event_calendar-current_month event_calendar-{ @days_short_names[i+1] }_{ i }" class="{ col[:classes].join(' ') }">
|
20
20
|
{ col[:day] }
|
21
21
|
</td>
|
22
22
|
</tr>
|
@@ -116,6 +116,8 @@ module Spider; module Components
|
|
116
116
|
@scene.page = @page
|
117
117
|
@scene.paginate_first = [@page-5, 1].max
|
118
118
|
@scene.paginate = true
|
119
|
+
else
|
120
|
+
@rows.limit = @attributes[:row_limit]
|
119
121
|
end
|
120
122
|
if @sort_el
|
121
123
|
@sort_el.each do |el|
|
@@ -177,8 +179,10 @@ module Spider; module Components
|
|
177
179
|
list = "<ul>"
|
178
180
|
if row[el]
|
179
181
|
row[el][0..2].each{ |sub|
|
180
|
-
|
181
|
-
|
182
|
+
#corretto errore, il controllo guardava solo se il sub_model (il modello collegato via junction) era uguale al modello corrente
|
183
|
+
# <= controlla se è uguale o una sottoclasse
|
184
|
+
if sub && element.junction? && !(@model <= element.model.attributes[:sub_model])
|
185
|
+
sub = sub.get(element.attributes[:junction_their_element])
|
182
186
|
end
|
183
187
|
sub_desc = sub.nil? ? '' : sub.to_s
|
184
188
|
sub_desc ||= ''
|
@@ -16,20 +16,20 @@
|
|
16
16
|
<tr class="{ (row_i%2==0) ? 'odd' : 'even' }">
|
17
17
|
<td sp:each="@elements |element|">
|
18
18
|
<a sp:if="((!@link_el.blank? && element == @link_el) && @link.blank?)" href="{ Spider::HTTP.urlencode(@data[row_i][@link_id]) }?current_page={ @page }">
|
19
|
-
{ @rows[row_i][element] }
|
19
|
+
{ URI.decode(@rows[row_i][element]) }
|
20
20
|
</a>
|
21
21
|
<a sp:if="@link_el && element == @link_el && !@link.blank?" href="{ @link }{ Spider::HTTP.urlencode(@data[row_i][@link_id]) }¤t_page={ @page }">
|
22
|
-
{ @rows[row_i][element] }
|
22
|
+
{ URI.decode(@rows[row_i][element]) }
|
23
23
|
</a>
|
24
24
|
<span sp:if="element != @link_el" >
|
25
|
-
{ @rows[row_i][element] }
|
25
|
+
{ URI.decode(@rows[row_i][element]) }
|
26
26
|
</span>
|
27
27
|
</td>
|
28
28
|
</tr>
|
29
29
|
</tpl:pass>
|
30
30
|
</tbody>
|
31
31
|
</table>
|
32
|
-
<div sp:if="@pages > 1" class="pagination">
|
32
|
+
<div sp:if="!@pages.blank? && @pages > 1" class="pagination">
|
33
33
|
<ul>
|
34
34
|
<li sp:if="@page > 1">
|
35
35
|
<a class="prev" href="{ @request[:path] }?_w{ @widget[:param] }[page]={ @page-1 }">← _(Previous)</a>
|
@@ -363,7 +363,7 @@ module Spider; module Forms
|
|
363
363
|
next unless input.modified?
|
364
364
|
begin
|
365
365
|
if (input.done?)
|
366
|
-
obj.set(element_name, input.value)
|
366
|
+
obj.set(element_name, (input.value.respond_to?(:force_encoding) ? input.value.force_encoding('UTF-8') : input.value ) )
|
367
367
|
else
|
368
368
|
inputs_done = false
|
369
369
|
end
|
@@ -50,7 +50,7 @@ module Spider; module Forms
|
|
50
50
|
end
|
51
51
|
@scene.values = {}
|
52
52
|
@scene.selected = {}
|
53
|
-
if @model || (@scene.data.is_a?(QuerySet) && @scene.data.autoload?)
|
53
|
+
if @model || (@scene.data.is_a?(Spider::Model::QuerySet) && @scene.data.autoload?)
|
54
54
|
tree_el = nil
|
55
55
|
if attributes[:tree_element]
|
56
56
|
tree_el = @model.elements[attributes[:tree_element]]
|
@@ -65,12 +65,22 @@ module Spider; module Forms
|
|
65
65
|
@scene.tree_depth = tree_el.attributes[:tree_depth]
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
68
69
|
if @value
|
69
|
-
|
70
|
+
if @multiple && @value.model.junction? && @value.model != @model
|
71
|
+
our_element = @value.model.elements_array.find{ |el| el.type == @model }
|
72
|
+
val = @value.map{ |obj| obj.get(our_element) }.uniq
|
73
|
+
else
|
74
|
+
val = @multiple ? @value : [@value]
|
75
|
+
end
|
76
|
+
|
70
77
|
val.each do |v|
|
71
78
|
@scene.selected[obj_to_key_str(v)] = true
|
72
79
|
end
|
73
80
|
end
|
81
|
+
|
82
|
+
|
83
|
+
|
74
84
|
@scene.data.each_index do |i|
|
75
85
|
@scene.values[i] = obj_to_key_str(@scene.data[i])
|
76
86
|
end
|
@@ -79,6 +89,7 @@ module Spider; module Forms
|
|
79
89
|
|
80
90
|
|
81
91
|
def value=(val)
|
92
|
+
|
82
93
|
if val.blank?
|
83
94
|
@value = nil
|
84
95
|
return
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'digest/md5'
|
2
2
|
require 'net/http'
|
3
|
-
require 'iconv'
|
3
|
+
require 'iconv' if RUBY_VERSION =~ /1.8/
|
4
4
|
|
5
5
|
module Spider::Messenger
|
6
6
|
|
@@ -8,7 +8,11 @@ module Spider::Messenger
|
|
8
8
|
|
9
9
|
def self.parametri(username,password,to,from,testo,operation="TEXT",udh="")
|
10
10
|
#cambio la codifica per gli accenti e caratteri particolari
|
11
|
-
|
11
|
+
if RUBY_VERSION =~ /1.8/
|
12
|
+
testo_codificato = Iconv.conv('ISO-8859-15', 'UTF-8', testo)
|
13
|
+
else
|
14
|
+
testo_codificato = testo.encode('ISO-8859-15', 'UTF-8')
|
15
|
+
end
|
12
16
|
string_digest = [username, operation, to, from, testo_codificato, password].map{ |val|
|
13
17
|
val.to_s
|
14
18
|
}.join("")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rexml/document'
|
2
2
|
require 'webrick/httputils'
|
3
|
-
require 'iconv'
|
3
|
+
require 'iconv' if RUBY_VERSION =~ /1.8/
|
4
4
|
|
5
5
|
module Spider; module WebDAV
|
6
6
|
|
@@ -806,12 +806,21 @@ module Spider; module WebDAV
|
|
806
806
|
def codeconv_str_fscode2utf(str)
|
807
807
|
return str if @options[:FileSystemCoding] == "UTF-8"
|
808
808
|
debug "codeconv str fscode2utf: orig='#{str}'"
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
809
|
+
if RUBY_VERSION =~ /1.8/
|
810
|
+
begin
|
811
|
+
ret = Iconv.iconv("UTF-8", @options[:FileSystemCoding], str).first
|
812
|
+
rescue Iconv::IllegalSequence
|
813
|
+
warn "code conversion fail! #{@options[:FileSystemCoding]}->UTF-8 str=#{str.dump}"
|
814
|
+
ret = str
|
815
|
+
end
|
816
|
+
else
|
817
|
+
begin
|
818
|
+
ret = str.encode("UTF-8", @options[:FileSystemCoding]).first
|
819
|
+
rescue rescue EncodingError
|
820
|
+
warn "code conversion fail! #{@options[:FileSystemCoding]}->UTF-8 str=#{str.dump}"
|
821
|
+
ret = str
|
822
|
+
end
|
823
|
+
end
|
815
824
|
debug "codeconv str fscode2utf: ret='#{ret}'"
|
816
825
|
ret
|
817
826
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
1
3
|
require 'spiderfw/controller/spider_controller'
|
2
4
|
require 'spiderfw/controller/session/memory_session'
|
3
5
|
require 'spiderfw/controller/session/file_session'
|
@@ -11,7 +13,8 @@ module Spider
|
|
11
13
|
def initialize(request, response, scene=nil)
|
12
14
|
response.status = Spider::HTTP::OK
|
13
15
|
response.headers = {
|
14
|
-
'Content-Type' => 'text/plain'
|
16
|
+
'Content-Type' => 'text/plain',
|
17
|
+
'Accept-Charset' => 'utf-8'
|
15
18
|
}
|
16
19
|
@previous_stdout = $stdout
|
17
20
|
Thread.current[:stdout] = response.server_output
|
data/lib/spiderfw/env.rb
CHANGED
@@ -31,7 +31,9 @@ module Spider; module HTTP
|
|
31
31
|
|
32
32
|
def write(msg)
|
33
33
|
send_headers unless @headers_sent
|
34
|
-
|
34
|
+
#workaround per ruby 1.9.3, problemi su parte di admin, faccio force encoding a utf8
|
35
|
+
msg_dup = msg.to_s.dup
|
36
|
+
@w.write(msg_dup.respond_to?(:force_encoding) ? msg_dup.force_encoding('UTF-8') : msg_dup)
|
35
37
|
end
|
36
38
|
|
37
39
|
def send_headers
|