rsence 2.2.2 → 2.2.3
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/js/controls/sliders/slider/slider.js +5 -6
- data/js/controls/sliders/slider/themes/default/slider.css +34 -62
- data/js/controls/sliders/slider/themes/default/slider.html +4 -4
- data/js/controls/sliders/vslider/themes/default/vslider.css +43 -10
- data/js/controls/sliders/vslider/vslider.js +3 -1
- data/js/controls/stepper/stepper.js +1 -1
- data/js/controls/stringview/stringview.js +6 -8
- data/js/controls/stringview/themes/default/stringview.html +1 -1
- data/js/controls/textcontrol/textcontrol.js +8 -15
- data/js/datetime/calendar/calendar.coffee +114 -58
- data/js/datetime/calendar/themes/default/calendar.css +4 -2
- data/js/foundation/control/dyncontrol/dyncontrol.js +15 -0
- data/js/foundation/eventmanager/eventmanager.js +30 -5
- data/js/foundation/view/view.js +1 -1
- data/js/lists/listitems/listitems.js +7 -0
- data/js/menus/minimenu/minimenu.js +2 -7
- data/lib/rsence/plugins/gui_plugin.rb +2 -0
- data/plugins/client_pkg/client_pkg.rb +5 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +27 -4
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.3
|
@@ -289,7 +289,7 @@ HSlider = HControl.extend({
|
|
289
289
|
|
290
290
|
prevOrientation: 'c',
|
291
291
|
|
292
|
-
|
292
|
+
orientations: ['n','s','c'],
|
293
293
|
|
294
294
|
/** = Description
|
295
295
|
* Changes the thumb graphic. Possible orientations by default are
|
@@ -316,17 +316,16 @@ HSlider = HControl.extend({
|
|
316
316
|
}
|
317
317
|
var _toggleCSS = this.toggleCSSClass,
|
318
318
|
_ctrlId = this.markupElemIds.control,
|
319
|
-
_orientations =
|
319
|
+
_orientations = this.orientations,
|
320
320
|
_iOrientation = '',
|
321
321
|
_cssClassName = '',
|
322
|
-
|
323
|
-
_cssClassVert = this._isVertical?'v':'',
|
322
|
+
_componentName = this.componentName,
|
324
323
|
_activeOrientation = false,
|
325
324
|
i = 0;
|
326
|
-
for(;i<
|
325
|
+
for(;i<3;i++){
|
327
326
|
_iOrientation = _orientations[i];
|
328
327
|
_activeOrientation = (_orientation===_iOrientation);
|
329
|
-
_cssClassName = (_orientation==='c')?
|
328
|
+
_cssClassName = (_orientation==='c')?_componentName+'_thumb':_componentName+'_thumb_'+_iOrientation;
|
330
329
|
_toggleCSS( _ctrlId, _cssClassName, _activeOrientation );
|
331
330
|
}
|
332
331
|
|
@@ -1,108 +1,80 @@
|
|
1
|
-
.
|
2
|
-
.
|
3
|
-
.
|
1
|
+
.slider_track_left,
|
2
|
+
.slider_track_right,
|
3
|
+
.slider_track {
|
4
4
|
position: absolute;
|
5
5
|
height: 7px; top: 7px;
|
6
|
-
font-size:
|
6
|
+
font-size: 0;
|
7
7
|
background-image: #{this.getCssFilePath('hslider_tracks.png')};
|
8
8
|
}
|
9
9
|
|
10
|
-
.
|
10
|
+
.slider_track_left {
|
11
11
|
left: 10px; width: 4px;
|
12
|
-
background-position:
|
12
|
+
background-position: 0 0;
|
13
13
|
}
|
14
14
|
|
15
|
-
.
|
15
|
+
.slider_track_right {
|
16
16
|
right: 10px; width: 4px;
|
17
|
-
background-position: -4px
|
17
|
+
background-position: -4px 0;
|
18
18
|
}
|
19
19
|
|
20
|
-
.
|
20
|
+
.slider_track {
|
21
21
|
left: 14px; right: 14px;
|
22
|
-
background-position:
|
22
|
+
background-position: 0 -14px;
|
23
23
|
}
|
24
24
|
|
25
|
-
.disabled .
|
26
|
-
background-position:
|
25
|
+
.disabled .slider_track_left {
|
26
|
+
background-position: 0 -7px;
|
27
27
|
}
|
28
28
|
|
29
|
-
.disabled .
|
29
|
+
.disabled .slider_track_right {
|
30
30
|
background-position: -4px -7px;
|
31
31
|
}
|
32
32
|
|
33
|
-
.disabled .
|
34
|
-
background-position:
|
33
|
+
.disabled .slider_track {
|
34
|
+
background-position: 0 -21px;
|
35
35
|
}
|
36
36
|
|
37
|
-
.
|
37
|
+
.slider_thumb {
|
38
38
|
position: absolute;
|
39
|
-
top:
|
40
|
-
font-size:
|
41
|
-
background-position:
|
39
|
+
top: 0; height: 21px; width: 21px;
|
40
|
+
font-size: 0;
|
41
|
+
background-position: 0 0;
|
42
42
|
background-image: #{this.getCssFilePath('slider_thumbs.png')};
|
43
43
|
}
|
44
44
|
|
45
|
-
.
|
46
|
-
background-position:
|
45
|
+
.slider_thumb:active {
|
46
|
+
background-position: 0 -22px;
|
47
47
|
}
|
48
48
|
|
49
|
-
.disabled .
|
50
|
-
background-position:
|
49
|
+
.disabled .slider_thumb {
|
50
|
+
background-position: 0 -44px;
|
51
51
|
}
|
52
52
|
|
53
|
-
.
|
54
|
-
.
|
55
|
-
.hslider_thumb_e,
|
56
|
-
.hslider_thumb_w {
|
53
|
+
.slider_thumb_n,
|
54
|
+
.slider_thumb_s {
|
57
55
|
position: absolute;
|
58
|
-
top:
|
56
|
+
top: 0; height: 21px; width: 21px;
|
59
57
|
background-image: #{this.getCssFilePath('slider_thumbs.png')};
|
60
58
|
}
|
61
59
|
|
62
|
-
.
|
63
|
-
|
64
|
-
left: 0px;
|
60
|
+
.slider_thumb_n {
|
61
|
+
background-position: -22px 0;
|
65
62
|
}
|
66
|
-
|
67
|
-
.hslider_thumb_n {
|
68
|
-
background-position: -22px 0px;
|
69
|
-
}
|
70
|
-
.hslider_thumb_n:active {
|
63
|
+
.slider_thumb_n:active {
|
71
64
|
background-position: -22px -22px;
|
72
65
|
}
|
73
|
-
.disabled .
|
66
|
+
.disabled .slider_thumb_n {
|
74
67
|
background-position: -22px -44px;
|
75
68
|
}
|
76
69
|
|
77
|
-
.
|
78
|
-
background-position: -44px
|
70
|
+
.slider_thumb_s {
|
71
|
+
background-position: -44px 0;
|
79
72
|
}
|
80
|
-
.
|
73
|
+
.slider_thumb_s:active {
|
81
74
|
background-position: -44px -22px;
|
82
75
|
}
|
83
|
-
.disabled .
|
76
|
+
.disabled .slider_thumb_s {
|
84
77
|
background-position: -44px -44px;
|
85
78
|
}
|
86
79
|
|
87
|
-
.hslider_thumb_w {
|
88
|
-
background-position: -66px 0px;
|
89
|
-
}
|
90
|
-
.hslider_thumb_w:active {
|
91
|
-
background-position: -66px -22px;
|
92
|
-
}
|
93
|
-
.disabled .hslider_thumb_w {
|
94
|
-
background-position: -66px -44px;
|
95
|
-
}
|
96
|
-
|
97
|
-
.hslider_thumb_e {
|
98
|
-
background-position: -88px 0px;
|
99
|
-
}
|
100
|
-
.hslider_thumb_e:active {
|
101
|
-
background-position: -88px -22px;
|
102
|
-
}
|
103
|
-
.disabled .hslider_thumb_e {
|
104
|
-
background-position: -88px -44px;
|
105
|
-
}
|
106
|
-
|
107
|
-
|
108
80
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<div class="
|
2
|
-
<div class="
|
3
|
-
<div class="
|
4
|
-
<div class="
|
1
|
+
<div class="slider_track_left"></div>
|
2
|
+
<div class="slider_track_right"></div>
|
3
|
+
<div class="slider_track"></div>
|
4
|
+
<div class="slider_thumb" id="control#{_ID}"></div>
|
5
5
|
${this.thumbSize=21;}
|
@@ -3,27 +3,27 @@
|
|
3
3
|
.vslider_track {
|
4
4
|
position: absolute;
|
5
5
|
width: 7px; left: 7px;
|
6
|
-
font-size:
|
6
|
+
font-size: 0;
|
7
7
|
background-image: #{this.getCssFilePath('vslider_tracks.png')};
|
8
8
|
}
|
9
9
|
|
10
10
|
.vslider_track_top {
|
11
11
|
top: 10px; height: 4px;
|
12
|
-
background-position:
|
12
|
+
background-position: 0 0;
|
13
13
|
}
|
14
14
|
|
15
15
|
.vslider_track_bottom {
|
16
16
|
bottom: 10px; height: 4px;
|
17
|
-
background-position:
|
17
|
+
background-position: 0 -4px;
|
18
18
|
}
|
19
19
|
|
20
20
|
.vslider_track {
|
21
21
|
top: 14px; bottom: 14px;
|
22
|
-
background-position: -14px
|
22
|
+
background-position: -14px 0;
|
23
23
|
}
|
24
24
|
|
25
25
|
.disabled .vslider_track_top {
|
26
|
-
background-position: -7px
|
26
|
+
background-position: -7px 0;
|
27
27
|
}
|
28
28
|
|
29
29
|
.disabled .vslider_track_bottom {
|
@@ -31,22 +31,55 @@
|
|
31
31
|
}
|
32
32
|
|
33
33
|
.disabled .vslider_track {
|
34
|
-
background-position: -21px
|
34
|
+
background-position: -21px 0;
|
35
35
|
}
|
36
36
|
|
37
37
|
.vslider_thumb {
|
38
38
|
position: absolute;
|
39
39
|
font-size: 0px;
|
40
|
-
left:
|
41
|
-
background-position:
|
40
|
+
left: 0; width: 21px; height: 21px;
|
41
|
+
background-position: 0 0;
|
42
42
|
background-image: #{this.getCssFilePath('slider_thumbs.png')};
|
43
43
|
}
|
44
44
|
|
45
45
|
.vslider_thumb:active {
|
46
|
-
background-position:
|
46
|
+
background-position: 0 -22px;
|
47
47
|
}
|
48
48
|
|
49
49
|
.disabled .vslider_thumb {
|
50
|
-
background-position:
|
50
|
+
background-position: 0 -44px;
|
51
|
+
}
|
52
|
+
|
53
|
+
.vslider_thumb_e,
|
54
|
+
.vslider_thumb_w {
|
55
|
+
position: absolute;
|
56
|
+
top: 0; height: 21px; width: 21px;
|
57
|
+
background-image: #{this.getCssFilePath('slider_thumbs.png')};
|
58
|
+
}
|
59
|
+
|
60
|
+
.vslider_thumb_e,
|
61
|
+
.vslider_thumb_w {
|
62
|
+
left: 0;
|
63
|
+
}
|
64
|
+
|
65
|
+
.vslider_thumb_w {
|
66
|
+
background-position: -66px 0;
|
67
|
+
}
|
68
|
+
.vslider_thumb_w:active {
|
69
|
+
background-position: -66px -22px;
|
70
|
+
}
|
71
|
+
.disabled .vslider_thumb_w {
|
72
|
+
background-position: -66px -44px;
|
73
|
+
}
|
74
|
+
|
75
|
+
.vslider_thumb_e {
|
76
|
+
background-position: -88px 0;
|
77
|
+
}
|
78
|
+
.vslider_thumb_e:active {
|
79
|
+
background-position: -88px -22px;
|
51
80
|
}
|
81
|
+
.disabled .vslider_thumb_e {
|
82
|
+
background-position: -88px -44px;
|
83
|
+
}
|
84
|
+
|
52
85
|
|
@@ -140,7 +140,7 @@ HStepper = HControl.extend({
|
|
140
140
|
**/
|
141
141
|
mouseDown: function( x, y ){
|
142
142
|
this.setMouseUp(true);
|
143
|
-
this._setRepeatInterval( ( y -
|
143
|
+
this._setRepeatInterval( ( y - this.pageY() ) <= 11 );
|
144
144
|
return true;
|
145
145
|
},
|
146
146
|
|
@@ -43,14 +43,12 @@ var HStringView, HLabel;
|
|
43
43
|
*
|
44
44
|
**/
|
45
45
|
refreshLabel: function() {
|
46
|
-
if(this.markupElemIds) {
|
47
|
-
if(this.
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
this.setMarkupOfPart( 'value', this.label );
|
53
|
-
}
|
46
|
+
if(this.markupElemIds && this.markupElemIds.value) {
|
47
|
+
if( this.value !== undefined ){
|
48
|
+
this.setAttrOfPart( 'value', 'title', this.label );
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
this.setMarkupOfPart( 'value', this.label );
|
54
52
|
}
|
55
53
|
}
|
56
54
|
}
|
@@ -1 +1 @@
|
|
1
|
-
<div class="stringview" id="value#{_ID}"
|
1
|
+
<div class="stringview" id="value#{_ID}"></div>
|
@@ -152,23 +152,16 @@ HTextControl = HControl.extend({
|
|
152
152
|
textBlur: function(){
|
153
153
|
this.hasTextFocus = false;
|
154
154
|
this._clearChangeEventFn();
|
155
|
-
this._updateValueFromField();
|
156
155
|
if(this.options.refreshOnBlur){
|
156
|
+
this._updateValueFromField();
|
157
157
|
this.refreshValue();
|
158
158
|
}
|
159
159
|
return true;
|
160
160
|
},
|
161
161
|
|
162
162
|
idle: function(){
|
163
|
-
if(
|
164
|
-
|
165
|
-
try{
|
166
|
-
this.base();
|
167
|
-
}
|
168
|
-
catch(e){
|
169
|
-
console.error('HTextControl::onIdle error -> ',e);
|
170
|
-
debugger;
|
171
|
-
this.base();
|
163
|
+
if( this.hasTextFocus && this.options.refreshOnIdle && this.options.refreshOnInput ){
|
164
|
+
this._updateValueFromField();
|
172
165
|
}
|
173
166
|
},
|
174
167
|
|
@@ -354,12 +347,12 @@ HTextControl = HControl.extend({
|
|
354
347
|
*
|
355
348
|
**/
|
356
349
|
textEnter: function(){
|
357
|
-
this.setValue(
|
358
|
-
this.validateText(
|
359
|
-
this.getTextFieldValue()
|
360
|
-
)
|
361
|
-
);
|
362
350
|
if(this.options.refreshOnInput){
|
351
|
+
this.setValue(
|
352
|
+
this.validateText(
|
353
|
+
this.getTextFieldValue()
|
354
|
+
)
|
355
|
+
);
|
363
356
|
this.refreshValue();
|
364
357
|
}
|
365
358
|
return false;
|
@@ -20,7 +20,7 @@ HCalendar = HControl.extend
|
|
20
20
|
## the mouse wheel or equivalent content-scrolling user interface gesture
|
21
21
|
defaultEvents:
|
22
22
|
mouseWheel: true
|
23
|
-
|
23
|
+
keyDown: true
|
24
24
|
|
25
25
|
## Calls HCalendar#nextMonth or HCalendar#prevMonth based on delta change
|
26
26
|
## of the mouseWheel event
|
@@ -29,10 +29,65 @@ HCalendar = HControl.extend
|
|
29
29
|
@nextMonth()
|
30
30
|
else
|
31
31
|
@prevMonth()
|
32
|
+
|
33
|
+
## Draws the next month
|
34
|
+
nextMonth: (_set)->
|
35
|
+
_dateNext = new Date( @viewMonth[0], @viewMonth[1]+1, 1 )
|
36
|
+
_dateMs = _dateNext.getTime() - @tzMs(_dateNext)
|
37
|
+
if _set
|
38
|
+
@setValue( _dateMs/1000 )
|
39
|
+
else
|
40
|
+
@drawCalendar( new Date(_dateMs) )
|
41
|
+
|
42
|
+
## Draws the prev month
|
43
|
+
prevMonth: (_set)->
|
44
|
+
_datePrev = new Date( @viewMonth[0], @viewMonth[1]-1, 1 )
|
45
|
+
_dateMs = _datePrev.getTime() - @tzMs(_datePrev)
|
46
|
+
if _set
|
47
|
+
@setValue( _dateMs/1000 )
|
48
|
+
else
|
49
|
+
@drawCalendar( new Date(_dateMs) )
|
32
50
|
|
33
|
-
##
|
34
|
-
|
35
|
-
|
51
|
+
## Draws the next year
|
52
|
+
nextYear: (_set)->
|
53
|
+
_dateNext = new Date( @viewMonth[0]+1, @viewMonth[1], 1 )
|
54
|
+
_dateMs = _dateNext.getTime() - @tzMs(_dateNext)
|
55
|
+
if _set
|
56
|
+
@setValue( _dateMs/1000 )
|
57
|
+
else
|
58
|
+
@drawCalendar( new Date(_dateMs) )
|
59
|
+
|
60
|
+
## Draws the prev year
|
61
|
+
prevYear: (_set)->
|
62
|
+
_datePrev = new Date( @viewMonth[0]-1, @viewMonth[1], 1 )
|
63
|
+
_dateMs = _datePrev.getTime() - @tzMs(_datePrev)
|
64
|
+
if _set
|
65
|
+
@setValue( _dateMs/1000 )
|
66
|
+
else
|
67
|
+
@drawCalendar( new Date(_dateMs) )
|
68
|
+
|
69
|
+
nextDay: -> @setValue( @value + 24*60*60 )
|
70
|
+
prevDay: -> @setValue( @value - 24*60*60 )
|
71
|
+
nextWeek: -> @setValue( @value + 7*24*60*60 )
|
72
|
+
prevWeek: -> @setValue( @value - 7*24*60*60 )
|
73
|
+
|
74
|
+
## Keyboard control
|
75
|
+
keyDown: (_key)->
|
76
|
+
if EVENT.isShiftKeyDown()
|
77
|
+
@prevMonth(true) if _key == Event.KEY_LEFT
|
78
|
+
@nextMonth(true) if _key == Event.KEY_RIGHT
|
79
|
+
@prevYear(true) if _key == Event.KEY_UP
|
80
|
+
@nextYear(true) if _key == Event.KEY_DOWN
|
81
|
+
else
|
82
|
+
@nextDay() if _key == Event.KEY_RIGHT
|
83
|
+
@prevDay() if _key == Event.KEY_LEFT
|
84
|
+
@nextWeek() if _key == Event.KEY_DOWN
|
85
|
+
@prevWeek() if _key == Event.KEY_UP
|
86
|
+
@prevMonth(true) if _key == Event.KEY_PAGEUP
|
87
|
+
@nextMonth(true) if _key == Event.KEY_PAGEDOWN
|
88
|
+
@prevYear(true) if _key == Event.KEY_HOME
|
89
|
+
@nextYear(true) if _key == Event.KEY_END
|
90
|
+
true
|
36
91
|
|
37
92
|
drawSubviews: ->
|
38
93
|
_this = @
|
@@ -128,91 +183,83 @@ HCalendar = HControl.extend
|
|
128
183
|
}
|
129
184
|
}
|
130
185
|
|
186
|
+
lostActiveStatus: (_obj)->
|
187
|
+
if (_obj and @menu and !@menu._killed and !_obj.isChildOf(@menu) and !_obj.isChildOf(@menu.menuItemView))
|
188
|
+
@menu.die()
|
189
|
+
@base(_obj)
|
190
|
+
|
131
191
|
## Calls #drawCalendar when the value is changed
|
132
192
|
refreshValue: ->
|
133
193
|
@drawCalendar( @date() )
|
134
194
|
|
135
|
-
## Draws the next month
|
136
|
-
nextMonth: ->
|
137
|
-
_dateNext = new Date( @viewMonth[0], @viewMonth[1]+1, 1 )
|
138
|
-
_dateMs = _dateNext.getTime() - @tzMs(_dateNext)
|
139
|
-
@drawCalendar( new Date(_dateMs) )
|
140
|
-
|
141
|
-
## Drows the prev month
|
142
|
-
prevMonth: ->
|
143
|
-
_datePrev = new Date( @viewMonth[0], @viewMonth[1]-1, 1 )
|
144
|
-
_dateMs = _datePrev.getTime() - @tzMs(_datePrev)
|
145
|
-
@drawCalendar( new Date(_dateMs) )
|
146
|
-
|
147
195
|
## Stores the currently viewed year and month
|
148
196
|
viewMonth: [ 1970, 0 ]
|
149
197
|
|
150
198
|
## Shows a pulldown menu for month selection
|
151
199
|
monthMenu: ->
|
152
200
|
return unless HMiniMenu?
|
153
|
-
_calendar =
|
201
|
+
_calendar = @
|
154
202
|
_monthValues = []
|
155
203
|
for _monthName, i in HLocale.dateTime.strings.monthsLong
|
156
204
|
_monthValues.push( [ i, _monthName ] )
|
157
205
|
_rect = ELEM.getBoxCoords( @_monthMenu )
|
158
206
|
_rect[0] += 20
|
159
207
|
_rect[2] = 80 if _rect[2] < 80
|
160
|
-
HMiniMenu.extend(
|
161
|
-
|
208
|
+
@menu = HMiniMenu.extend(
|
209
|
+
click: ->
|
210
|
+
console.log('click')
|
162
211
|
menuHide: ->
|
212
|
+
return if @_killed?
|
213
|
+
@_killed = true
|
163
214
|
@base()
|
215
|
+
_calendar.setValue( _calendar.setMonth( @value ) )
|
216
|
+
if _calendar.month() != @value
|
217
|
+
_calendar.setValue( _calendar.setMday( 30 ) )
|
218
|
+
_calendar.setValue( _calendar.setMonth( @value ) )
|
219
|
+
if _calendar.month() != @value
|
220
|
+
_calendar.setValue( _calendar.setMday( 29 ) )
|
221
|
+
_calendar.setValue( _calendar.setMonth( @value ) )
|
222
|
+
if _calendar.month() != @value
|
223
|
+
_calendar.setValue( _calendar.setMday( 28 ) )
|
224
|
+
_calendar.setValue( _calendar.setMonth( @value ) )
|
164
225
|
_menu = @
|
165
|
-
_menu._killAfterRefresh = true
|
166
226
|
COMM.Queue.push( ->
|
167
|
-
|
168
|
-
|
227
|
+
EVENT.changeActiveControl(_calendar)
|
228
|
+
_calendar.menu = null
|
229
|
+
_menu.die()
|
169
230
|
)
|
170
|
-
return true;
|
171
|
-
refreshValue: ->
|
172
|
-
@base()
|
173
|
-
if @_killAfterRefresh
|
174
|
-
@_killAfterRefresh = false
|
175
|
-
_calendar.setValue( _calendar.setMonth( @value ) )
|
176
|
-
if _calendar.month() != @value
|
177
|
-
_calendar.setValue( _calendar.setMday( 30 ) )
|
178
|
-
_calendar.setValue( _calendar.setMonth( this.value ) )
|
179
|
-
if _calendar.month() != @value
|
180
|
-
_calendar.setValue( _calendar.setMday( 29 ) )
|
181
|
-
_calendar.setValue( _calendar.setMonth( @value ) )
|
182
|
-
if _calendar.month() != this.value
|
183
|
-
_calendar.setValue( _calendar.setMday( 28 ) )
|
184
|
-
_calendar.setValue( _calendar.setMonth( @value ) )
|
185
|
-
_menu = this
|
186
|
-
COMM.Queue.push( ->
|
187
|
-
_menu.die()
|
188
|
-
)
|
189
231
|
).new( _rect, @,
|
190
232
|
value: @month()
|
191
233
|
initialVisibility: true
|
192
|
-
|
234
|
+
listItems: _monthValues
|
235
|
+
)
|
193
236
|
|
194
237
|
## Shows a text field for year selection
|
195
238
|
yearMenu: ->
|
196
239
|
_calendar = @
|
240
|
+
_calendarEnable = @enabled
|
197
241
|
_rect = ELEM.getBoxCoords( @_yearMenu )
|
198
242
|
_rect[0] += 20
|
199
243
|
_rect[2] = 40 if _rect[2] < 40
|
200
|
-
_rect[3] =
|
244
|
+
_rect[3] = 16
|
245
|
+
EVENT.changeActiveControl(null)
|
246
|
+
@setEnabled(false)
|
201
247
|
HNumericTextControl.extend(
|
202
248
|
refreshValue: ->
|
203
249
|
@base()
|
204
250
|
_calendar.setValue( _calendar.setYear( @value ) )
|
251
|
+
gainedActiveStatus: (_obj)->
|
252
|
+
@base(_obj)
|
253
|
+
_calendar.setEnabled(_calendarEnable)
|
205
254
|
textBlur: ->
|
206
255
|
@base()
|
207
|
-
_year =
|
256
|
+
_year = @
|
208
257
|
COMM.Queue.push( ->
|
209
|
-
|
258
|
+
if _year.markupElemIds?
|
259
|
+
_year.die()
|
210
260
|
)
|
211
|
-
|
212
|
-
|
213
|
-
_returnKeyPressed = EVENT.status[ EVENT.keysDown ].indexOf( 13 ) != -1
|
214
|
-
_noKeysPressed = EVENT.status[ EVENT.keysDown ].length == 0
|
215
|
-
if _returnKeyPressed or _noKeysPressed
|
261
|
+
keyDown: (_key)->
|
262
|
+
if _key == Event.KEY_RETURN
|
216
263
|
ELEM.get( @markupElemIds.value ).blur()
|
217
264
|
).new( _rect, @,
|
218
265
|
value: @year()
|
@@ -220,6 +267,11 @@ HCalendar = HControl.extend
|
|
220
267
|
maxValue: 38400
|
221
268
|
focusOnCreate: true
|
222
269
|
refreshOnInput: false
|
270
|
+
refreshOnIdle: false
|
271
|
+
events:
|
272
|
+
keyDown: true
|
273
|
+
style:
|
274
|
+
fontSize: '11px'
|
223
275
|
)
|
224
276
|
|
225
277
|
_destroyCalendarElems: ->
|
@@ -238,7 +290,6 @@ HCalendar = HControl.extend
|
|
238
290
|
## Params:
|
239
291
|
## - _date: The date on which calendar UI is opened at.
|
240
292
|
drawCalendar: (_date)->
|
241
|
-
@_destroyCalendarElems()
|
242
293
|
_date = @date() unless ( _date instanceof Date )
|
243
294
|
_calendarDateRange = @calendarDateRange( _date )
|
244
295
|
_monthFirst = _calendarDateRange.month.firstDate
|
@@ -252,7 +303,7 @@ HCalendar = HControl.extend
|
|
252
303
|
_colWidth = Math.floor( _availWidth / 8 )
|
253
304
|
_rowHeight = Math.floor( _availHeight / 6 )
|
254
305
|
_parentElem = @markupElemIds.value
|
255
|
-
ELEM.setStyle( _parentElem, 'visibility', 'hidden', true )
|
306
|
+
# ELEM.setStyle( _parentElem, 'visibility', 'hidden', true )
|
256
307
|
_elems = []
|
257
308
|
_this = @
|
258
309
|
for _row in [0..5]
|
@@ -288,9 +339,10 @@ HCalendar = HControl.extend
|
|
288
339
|
else
|
289
340
|
ELEM.addClassName( _colElem, 'calendar_weeks_week_col_yes' )
|
290
341
|
ELEM.setAttr( _colElem, '_colSecs', _colSecs )
|
291
|
-
|
292
|
-
|
293
|
-
|
342
|
+
if @enabled
|
343
|
+
Event.observe( ELEM.get( _colElem ), 'click', ->
|
344
|
+
_this.setValue( @_colSecs )
|
345
|
+
)
|
294
346
|
# ELEM.setAttr( _colElem, 'href', "javascript:HSystem.views[#{@viewId}].setValue(#{_colSecs})" )
|
295
347
|
_left = (_col*_colWidth+_leftPlus)
|
296
348
|
ELEM.setStyle( _colElem, 'left', _left+'px' )
|
@@ -298,13 +350,15 @@ HCalendar = HControl.extend
|
|
298
350
|
ELEM.setStyle( _colElem, 'height', (_rowHeight-1)+'px' )
|
299
351
|
ELEM.setStyle( _colElem, 'line-height', _rowHeight+'px' )
|
300
352
|
ELEM.setHTML( _colElem, @mday( _colDate ) )
|
301
|
-
ELEM.setStyle( _parentElem, 'visibility', 'inherit' )
|
353
|
+
# ELEM.setStyle( _parentElem, 'visibility', 'inherit' )
|
354
|
+
ELEM.flush()
|
302
355
|
_stateElem = @markupElemIds.state
|
303
356
|
|
304
357
|
@_monthMenu = ELEM.make( _stateElem, 'span' )#, 'a' )
|
305
358
|
_elems.push( @_monthMenu )
|
306
359
|
# ELEM.setAttr( @_monthMenu, 'href', "javascript:HSystem.views[#{@viewId}].monthMenu()" )
|
307
|
-
|
360
|
+
if @enabled
|
361
|
+
Event.observe( ELEM.get( @_monthMenu ), 'click', ( -> _this.monthMenu() ), false )
|
308
362
|
ELEM.setHTML( @_monthMenu, @monthName( _date ) )
|
309
363
|
|
310
364
|
_spacer = ELEM.make( _stateElem, 'span' )
|
@@ -313,11 +367,13 @@ HCalendar = HControl.extend
|
|
313
367
|
|
314
368
|
@_yearMenu = ELEM.make( _stateElem, 'span' )#, 'a' )
|
315
369
|
_elems.push( @_yearMenu )
|
316
|
-
|
370
|
+
if @enabled
|
371
|
+
Event.observe( ELEM.get( @_yearMenu ), 'click', ( -> _this.yearMenu() ), false )
|
317
372
|
# ELEM.setAttr( @_yearMenu, 'href', "javascript:HSystem.views[#{@viewId}].yearMenu()" )
|
318
373
|
ELEM.setHTML( @_yearMenu, @year( _date ) )
|
319
374
|
|
320
375
|
@viewMonth = [ _monthFirst.getUTCFullYear(), _monthFirst.getUTCMonth() ]
|
376
|
+
@_destroyCalendarElems()
|
321
377
|
@_drawCalendarElems = _elems
|
322
378
|
|
323
379
|
HCalendar.implement( HDateTime )
|
@@ -95,10 +95,12 @@
|
|
95
95
|
font-weight: bold;
|
96
96
|
border: 1px solid #666;
|
97
97
|
}
|
98
|
-
.calendar_weeks_week_col_sel
|
99
|
-
.calendar_weeks_week_col_yes:hover {
|
98
|
+
.calendar_weeks_week_col_sel {
|
100
99
|
background-color: #fff;
|
101
100
|
}
|
101
|
+
.calendar_weeks_week_col_yes:hover {
|
102
|
+
border: 2px solid black; margin: -1px; z-index: 100; border-radius: 3px;
|
103
|
+
}
|
102
104
|
.calendar_bg {
|
103
105
|
position: absolute;
|
104
106
|
left: -1px; right: -1px;
|
@@ -441,6 +441,11 @@ HDynControl = HControl.extend({
|
|
441
441
|
x-=_parent.pageX();
|
442
442
|
y-=_parent.pageY();
|
443
443
|
}
|
444
|
+
else {
|
445
|
+
var _scrollPos = ELEM.getScrollPosition(0);
|
446
|
+
x+=_scrollPos[0];
|
447
|
+
y+=_scrollPos[1];
|
448
|
+
}
|
444
449
|
this._startPoint = new HPoint(x,y);
|
445
450
|
this._startRect = new HRect( this.rect );
|
446
451
|
this._detectActionFlag();
|
@@ -473,6 +478,11 @@ HDynControl = HControl.extend({
|
|
473
478
|
x-=_parent.pageX();
|
474
479
|
y-=_parent.pageY();
|
475
480
|
}
|
481
|
+
else {
|
482
|
+
var _scrollPos = ELEM.getScrollPosition(0);
|
483
|
+
x+=_scrollPos[0];
|
484
|
+
y+=_scrollPos[1];
|
485
|
+
}
|
476
486
|
if(this._actionFlag!==-1){
|
477
487
|
this._actionFns[this._actionFlag](this,x,y);
|
478
488
|
}
|
@@ -503,6 +513,11 @@ HDynControl = HControl.extend({
|
|
503
513
|
x-=_parent.pageX();
|
504
514
|
y-=_parent.pageY();
|
505
515
|
}
|
516
|
+
else {
|
517
|
+
var _scrollPos = ELEM.getScrollPosition(0);
|
518
|
+
x+=_scrollPos[0];
|
519
|
+
y+=_scrollPos[1];
|
520
|
+
}
|
506
521
|
if(this._actionFlag!==-1){
|
507
522
|
this._actionFns[this._actionFlag](this,x,y);
|
508
523
|
}
|
@@ -431,8 +431,9 @@ EVENT = {
|
|
431
431
|
**/
|
432
432
|
mouseMove: function(e) {
|
433
433
|
var _this = EVENT,
|
434
|
-
|
435
|
-
|
434
|
+
_scrollPos = ELEM.getScrollPosition(0),
|
435
|
+
x = Event.pointerX(e) - _scrollPos[0],
|
436
|
+
y = Event.pointerY(e) - _scrollPos[1],
|
436
437
|
_currentlyDragging = _this.flushMouseMove(x, y);
|
437
438
|
_this.status[_this.crsrX] = x;
|
438
439
|
_this.status[_this.crsrY] = y;
|
@@ -988,7 +989,7 @@ EVENT = {
|
|
988
989
|
}
|
989
990
|
}
|
990
991
|
// Insert key to the realtime array, remove in keyUp
|
991
|
-
if (_this.
|
992
|
+
if (_this.isKeyDown(_keyCode)) {
|
992
993
|
_this.status[_this.keysDown].push(_keyCode);
|
993
994
|
}
|
994
995
|
if (!_this.status[_this.cmdKeyDown] && _stopEvent){
|
@@ -1037,12 +1038,36 @@ EVENT = {
|
|
1037
1038
|
_this.status[_this.cmdKeyDown] = false;
|
1038
1039
|
}
|
1039
1040
|
// Remove the key from the realtime array, inserted in keyDown
|
1040
|
-
|
1041
|
-
|
1041
|
+
if(!_this.isKeyDown(_keyCode)){
|
1042
|
+
_keyCodeIndex = _this.status[_this.keysDown].indexOf(_keyCode);
|
1042
1043
|
_this.status[_this.keysDown].splice(_keyCodeIndex, 1);
|
1043
1044
|
}
|
1044
1045
|
},
|
1045
1046
|
|
1047
|
+
isKeyDown: function(_keyCode){
|
1048
|
+
return ( this.status[this.keysDown].indexOf(_keyCode) !== -1 );
|
1049
|
+
},
|
1050
|
+
|
1051
|
+
isKeyUp: function(_keyCode){
|
1052
|
+
return !this.isKeyDown(_keyCode);
|
1053
|
+
},
|
1054
|
+
|
1055
|
+
isAltKeyDown: function(){
|
1056
|
+
return this.status[this.altKeyDown];
|
1057
|
+
},
|
1058
|
+
|
1059
|
+
isCtrlKeyDown: function(){
|
1060
|
+
return this.status[this.ctrlKeyDown];
|
1061
|
+
},
|
1062
|
+
|
1063
|
+
isShiftKeyDown: function(){
|
1064
|
+
return this.status[this.shiftKeyDown];
|
1065
|
+
},
|
1066
|
+
|
1067
|
+
isMetaKeyDown: function(){
|
1068
|
+
return this.status[this.metaKeyDown];
|
1069
|
+
},
|
1070
|
+
|
1046
1071
|
/* The keyPress itself is ignored per se and used only as a repetition event for the last keyDown. */
|
1047
1072
|
keyPress: function(e) {
|
1048
1073
|
var
|
data/js/foundation/view/view.js
CHANGED
@@ -1464,7 +1464,7 @@ HView = HClass.extend({
|
|
1464
1464
|
if(!this.views && !this.isProduction){
|
1465
1465
|
console.log('HView#die: no subviews for component name: ',this.componentName,', self:',this);
|
1466
1466
|
}
|
1467
|
-
while (this.views.length !== 0) {
|
1467
|
+
while (this.views && this.views.length !== 0) {
|
1468
1468
|
_childViewId = this.views[0];
|
1469
1469
|
this.destroyView(_childViewId);
|
1470
1470
|
}
|
@@ -76,6 +76,13 @@ HListItems = HValueResponder.extend({
|
|
76
76
|
var
|
77
77
|
HListItemControl = HControl.extend({
|
78
78
|
|
79
|
+
constructor: function( _rect, _parent, _options ){
|
80
|
+
this.base( _rect, _parent, _options );
|
81
|
+
if( this.options.listItems && this.options.listItems instanceof Array ){
|
82
|
+
this.setListItems( this.options.listItems );
|
83
|
+
}
|
84
|
+
},
|
85
|
+
|
79
86
|
_cleanListItems: function(_listItemsIn){
|
80
87
|
var _listItems = [],
|
81
88
|
_row, _rowType,
|
@@ -29,6 +29,7 @@ HMiniMenu = HRadioButtonList.extend({
|
|
29
29
|
},
|
30
30
|
|
31
31
|
repositionMenuItems: function(){
|
32
|
+
if(!this.listItems || (this.listItems && !this.listItems.length)){ return; }
|
32
33
|
var
|
33
34
|
x = this.pageX(),
|
34
35
|
y = this.pageY(),
|
@@ -95,18 +96,12 @@ HMiniMenu = HRadioButtonList.extend({
|
|
95
96
|
},
|
96
97
|
|
97
98
|
lostActiveStatus: function(_newActive){
|
98
|
-
// console.log('menu lost active status',_newActive);
|
99
99
|
if( !_newActive.isChildOf( this.menuItemView ) ){
|
100
100
|
this.menuHide();
|
101
101
|
}
|
102
102
|
this.base(_newActive);
|
103
103
|
},
|
104
104
|
|
105
|
-
gainedActiveStatus: function(_prevActive){
|
106
|
-
// console.log('menu gained active status',_prevActive);
|
107
|
-
this.base(_prevActive);
|
108
|
-
},
|
109
|
-
|
110
105
|
endDrag: function(x,y){
|
111
106
|
if( (Math.round(this.dragStart[0]*0.2)===Math.round(x*0.2)) &&
|
112
107
|
(Math.round(this.dragStart[1]*0.2)===Math.round(y*0.2))
|
@@ -154,7 +149,7 @@ HMiniMenu = HRadioButtonList.extend({
|
|
154
149
|
this.valueMatrix = this.menuItemView.valueMatrix;
|
155
150
|
this.refreshValue();
|
156
151
|
if( this.options.initialVisibility ){
|
157
|
-
EVENT.changeActiveControl(
|
152
|
+
EVENT.changeActiveControl(null);
|
158
153
|
this.menuShow();
|
159
154
|
}
|
160
155
|
},
|
@@ -95,6 +95,7 @@ module RSence
|
|
95
95
|
end
|
96
96
|
sleep 0.1 until client_pkg.ready?
|
97
97
|
client_pkg.add_packages( @client_pkgs[:packages ] ) if @client_pkgs.has_key?(:packages )
|
98
|
+
client_pkg.add_compounds( @client_pkgs[:compound_packages] ) if @client_pkgs.has_key?(:compound_packages)
|
98
99
|
client_pkg.add_themes( @client_pkgs[:theme_names ] ) if @client_pkgs.has_key?(:theme_names )
|
99
100
|
client_pkg.add_gfx_formats( @client_pkgs[:gfx_formats ] ) if @client_pkgs.has_key?(:gfx_formats )
|
100
101
|
client_pkg.add_reserved_names( @client_pkgs[:reserved_names] ) if @client_pkgs.has_key?(:reserved_names)
|
@@ -117,6 +118,7 @@ module RSence
|
|
117
118
|
client_pkg.del_reserved_names( @client_pkgs[:reserved_names] ) if @client_pkgs.has_key?(:reserved_names)
|
118
119
|
client_pkg.del_gfx_formats( @client_pkgs[:gfx_formats ] ) if @client_pkgs.has_key?(:gfx_formats )
|
119
120
|
client_pkg.del_themes( @client_pkgs[:theme_names ] ) if @client_pkgs.has_key?(:theme_names )
|
121
|
+
client_pkg.del_compounds( @client_pkgs[:compound_packages] ) if @client_pkgs.has_key?(:compound_packages)
|
120
122
|
client_pkg.del_packages( @client_pkgs[:packages].keys ) if @client_pkgs.has_key?(:packages )
|
121
123
|
client_pkg.rebuild_client
|
122
124
|
end
|
@@ -112,6 +112,11 @@ class ClientPkgPlugin < Servlet
|
|
112
112
|
def del_package( pkg_name ); @client_build.del_package( pkg_name ); end
|
113
113
|
def del_packages( packages ); @client_build.del_packages( packages ); end
|
114
114
|
|
115
|
+
def add_compound( compound_name, pkg_names ); @client_build.add_compound( compound_name, pkg_names ); end
|
116
|
+
def add_compounds( compounds ); @client_build.add_compounds( compounds ); end
|
117
|
+
def del_compound( compound_name ); @client_build.del_compound( compound_name ); end
|
118
|
+
def del_compounds( compounds ); @client_build.del_compounds( compounds ); end
|
119
|
+
|
115
120
|
def add_reserved_name( reserved_name ); @client_build.add_reserved_name( reserved_name ); end
|
116
121
|
def add_reserved_names( reserved_names ); @client_build.add_reserved_names( reserved_names ); end
|
117
122
|
def del_reserved_name( reserved_name ); @client_build.del_reserved_name( reserved_name ); end
|
@@ -213,7 +213,7 @@ class ClientPkgBuild
|
|
213
213
|
begin
|
214
214
|
coffee_src = read_file( src_path )
|
215
215
|
js_data = CoffeeScript.compile( coffee_src, :bare => true )
|
216
|
-
rescue CoffeeScript::CompilationError
|
216
|
+
rescue CoffeeScript::CompilationError, ExecJS::RuntimeError
|
217
217
|
if has_js
|
218
218
|
js_data = %{console.log( "WARNING: CoffeeScript complilation failed for source file #{src_path.to_json}, using the js variant instead." );}
|
219
219
|
js_data += read_file( File.join( bundle_path, bundle_name+'.js' ) )
|
@@ -436,13 +436,15 @@ class ClientPkgBuild
|
|
436
436
|
@logger.log( "Compound package..............: Source | Minimized | GNUZipped" )
|
437
437
|
@logger.log( " : | |" )
|
438
438
|
end
|
439
|
-
@
|
439
|
+
@compounds.each do |pkg_name, js_order|
|
440
440
|
js_size = 0
|
441
441
|
pkg_parts = []
|
442
442
|
js_order.each do |js_pkg|
|
443
443
|
pkg_part = @js[ js_pkg ]
|
444
444
|
pkg_parts.push( pkg_part )
|
445
|
-
|
445
|
+
pkg_size = ( @package_origsizes[ js_pkg ] or @destination_origsize[ js_pkg ] or 0 )
|
446
|
+
warn "nil pkg size of: #{js_pkg}" if pkg_size.nil?
|
447
|
+
js_size += pkg_size.nil? ? 0 : pkg_size
|
446
448
|
end
|
447
449
|
js_src = pkg_parts.join("\n")
|
448
450
|
@js[ pkg_name ] = js_src
|
@@ -623,6 +625,27 @@ class ClientPkgBuild
|
|
623
625
|
packages.each { |pkg_name| del_package( pkg_name ) }
|
624
626
|
end
|
625
627
|
|
628
|
+
def add_compound( compound_name, pkg_names )
|
629
|
+
if @compounds.has_key?( compound_name )
|
630
|
+
warn "Compound #{compound_name} already exists, ignoring."
|
631
|
+
else
|
632
|
+
@compounds[ compound_name ] = pkg_names
|
633
|
+
end
|
634
|
+
end
|
635
|
+
def add_compounds( compounds )
|
636
|
+
compounds.each do | compound_name, pkg_names |
|
637
|
+
add_compound( compound_name, pkg_names )
|
638
|
+
end
|
639
|
+
end
|
640
|
+
def del_compound( compound_name )
|
641
|
+
if @compounds.has_key?( compound_name )
|
642
|
+
@compounds.delete( compound_name )
|
643
|
+
end
|
644
|
+
end
|
645
|
+
def del_compounds( compounds )
|
646
|
+
compounds.each { |compound_name| del_compound( compound_name ) }
|
647
|
+
end
|
648
|
+
|
626
649
|
def add_reserved_name( reserved_name )
|
627
650
|
@reserved_names.push( reserved_name ) unless @reserved_names.include? reserved_name
|
628
651
|
end
|
@@ -719,7 +742,7 @@ class ClientPkgBuild
|
|
719
742
|
@no_whitespace_removal = config[:no_whitespace_removal]
|
720
743
|
@debug = RSence.args[:debug]
|
721
744
|
@quiet = (not RSence.args[:verbose] and RSence.args[:suppress_build_messages])
|
722
|
-
@
|
745
|
+
@compounds = config[:compound_packages]
|
723
746
|
end
|
724
747
|
|
725
748
|
def find_newer( src_dir, newer_than, quiet=false )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsence
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-05-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rsence-deps
|