rsence-pre 3.0.0.8 → 3.0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/client/conf/client_pkg.yaml +6 -2
- data/client/js/comm/queue/queue.js +32 -44
- data/client/js/comm/transporter/transporter.js +24 -16
- data/client/js/comm/values/values.js +27 -15
- data/client/js/controls/button/button.coffee +14 -5
- data/client/js/controls/button/themes/default/button.css +4 -2
- data/client/js/controls/checkbox/checkbox.js +4 -4
- data/client/js/controls/dialogs/sheet/sheet.js +11 -11
- data/client/js/controls/dialogs/sheet/themes/default/sheet.html +1 -1
- data/client/js/controls/imageview/imageview.js +15 -15
- data/client/js/controls/numerictextcontrol/numerictextcontrol.coffee +32 -10
- data/client/js/controls/onoffbutton/onoffbutton.coffee +5 -5
- data/client/js/controls/progress/progressbar/progressbar.js +6 -7
- data/client/js/controls/progress/progressbar/themes/default/progressbar.css +4 -4
- data/client/js/controls/progress/progressbar/themes/default/progressbar.html +1 -2
- data/client/js/controls/sliders/slider/slider.js +74 -79
- data/client/js/controls/stepper/stepper.js +31 -31
- data/client/js/controls/stringview/stringview.js +20 -8
- data/client/js/controls/tab/tab.js +57 -63
- data/client/js/controls/tab/themes/default/tab.html +4 -1
- data/client/js/controls/textcontrol/textcontrol.coffee +13 -3
- data/client/js/controls/validatorview/validatorview.js +4 -4
- data/client/js/controls/window/window.js +43 -56
- data/client/js/core/class/class.js +25 -23
- data/client/js/core/elem/elem.coffee +8 -1
- data/client/js/core/rsence_ns/rsence_ns.coffee +6 -2
- data/client/js/core/util/util_methods/util_methods.coffee +57 -15
- data/client/js/datetime/calendar/calendar.coffee +196 -199
- data/client/js/datetime/calendar/themes/default/calendar.css +81 -159
- data/client/js/datetime/calendar/themes/default/calendar.html +9 -18
- data/client/js/datetime/datepicker/datepicker.coffee +18 -3
- data/client/js/datetime/datetimepicker/datetimepicker.coffee +6 -1
- data/client/js/datetime/datetimevalue/datetimevalue.coffee +194 -0
- data/client/js/datetime/momentjs/momentjs.js +310 -76
- data/client/js/datetime/timepicker/timepicker.coffee +6 -1
- data/client/js/datetime/timesheet/timesheet.js +59 -61
- data/client/js/foundation/control/control.js +45 -44
- data/client/js/foundation/control/controldefaults/controldefaults.js +13 -9
- data/client/js/foundation/control/dyncontrol/dyncontrol.js +45 -57
- data/client/js/foundation/control/eventresponder/eventresponder.js +97 -97
- data/client/js/foundation/control/valuematrix/valuematrix.js +13 -13
- data/client/js/foundation/eventmanager/eventmanager.coffee +50 -32
- data/client/js/foundation/geom/rect/rect.js +43 -32
- data/client/js/foundation/locale_settings/locale_settings.js +36 -25
- data/client/js/foundation/system/system.js +79 -67
- data/client/js/foundation/thememanager/thememanager.coffee +11 -1
- data/client/js/foundation/value/pullvalue/pullvalue.coffee +7 -0
- data/client/js/foundation/value/pushvalue/pushvalue.coffee +25 -0
- data/client/js/foundation/value/value.js +22 -15
- data/client/js/foundation/view/view.js +94 -55
- data/client/js/foundation/view/viewdefaults/viewdefaults.js +5 -1
- data/client/js/lists/listitems/listitems.js +26 -4
- data/client/js/menus/combobox/combobox.coffee +55 -0
- data/client/js/menus/minimenu/minimenu.js +61 -30
- data/client/js/menus/minimenu/themes/default/minimenu.css +1 -6
- data/client/js/menus/minimenu/themes/default/minimenu.html +5 -4
- data/client/js/menus/minimenuitem/minimenuitem.js +6 -6
- data/client/js/menus/popupmenu/themes/default/popupmenu.css +1 -6
- data/client/js/menus/popupmenu/themes/default/popupmenu.html +5 -4
- data/client/js/tables/table/table.coffee +109 -64
- data/client/js/tables/table/themes/default/table.css +4 -0
- data/lib/rsence/msg.rb +64 -64
- data/lib/rsence/plugins/plugin.rb +68 -52
- data/lib/rsence/session/sequel_sessionstorage.rb +5 -5
- data/lib/rsence/value.rb +79 -59
- data/plugins/client_pkg/lib/client_pkg_build.rb +5 -1
- data/plugins/client_pkg/lib/client_pkg_serve.rb +40 -32
- data/plugins/main/js/main.js +46 -28
- metadata +6 -8
- data/client/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/client/js/datetime/calendar/themes/default/calendar_bg.png +0 -0
- data/client/js/datetime/calendar/themes/default/calendar_parts1.png +0 -0
- data/client/js/datetime/calendar/themes/default/calendar_parts2.png +0 -0
- data/client/js/datetime/datetimepicker/datetimepicker.js +0 -210
- data/client/js/datetime/datetimevalue/datetimevalue.js +0 -265
@@ -5,7 +5,7 @@
|
|
5
5
|
## since or before epoch (1970-01-01 00:00:00 UTC).
|
6
6
|
####
|
7
7
|
HCalendar = HControl.extend
|
8
|
-
|
8
|
+
|
9
9
|
componentName: 'calendar'
|
10
10
|
markupElemNames: [ 'control', 'state', 'label', 'value', 'prevMonth', 'nextMonth' ]
|
11
11
|
|
@@ -17,7 +17,11 @@ HCalendar = HControl.extend
|
|
17
17
|
|
18
18
|
controlDefaults: HControlDefaults.extend
|
19
19
|
preserveTime: true
|
20
|
-
|
20
|
+
useUTC: null
|
21
|
+
legacyCompatible: false
|
22
|
+
customOptons: (_options)->
|
23
|
+
_options.useUTC = HLocale.dateTime.defaultOptions.useUTC if _options.useUTC == null
|
24
|
+
|
21
25
|
## Calls HCalendar#nextMonth or HCalendar#prevMonth based on delta change
|
22
26
|
## of the mouseWheel event
|
23
27
|
mouseWheel: (_delta)->
|
@@ -28,44 +32,32 @@ HCalendar = HControl.extend
|
|
28
32
|
|
29
33
|
## Draws the next month
|
30
34
|
nextMonth: (_set)->
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
else
|
36
|
-
@drawCalendar( new Date(_dateMs) )
|
37
|
-
|
35
|
+
_date = @moment(@viewMonth).endOf('month').add(1,'ms')
|
36
|
+
@setValue( _date.unix() ) if _set
|
37
|
+
@drawCalendar( _date )
|
38
|
+
|
38
39
|
## Draws the prev month
|
39
40
|
prevMonth: (_set)->
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
else
|
45
|
-
@drawCalendar( new Date(_dateMs) )
|
46
|
-
|
41
|
+
_date = @moment(@viewMonth).startOf('month').subtract(1,'ms')
|
42
|
+
@setValue( _date.unix() ) if _set
|
43
|
+
@drawCalendar( _date )
|
44
|
+
|
47
45
|
## Draws the next year
|
48
46
|
nextYear: (_set)->
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
else
|
54
|
-
@drawCalendar( new Date(_dateMs) )
|
55
|
-
|
47
|
+
_date = @moment(@viewMonth).endOf('year').add(1,'ms')
|
48
|
+
@setValue( _date.unix() ) if _set
|
49
|
+
@drawCalendar( _date )
|
50
|
+
|
56
51
|
## Draws the prev year
|
57
52
|
prevYear: (_set)->
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
prevDay: -> @setValue( @value - 24*60*60 )
|
67
|
-
nextWeek: -> @setValue( @value + 7*24*60*60 )
|
68
|
-
prevWeek: -> @setValue( @value - 7*24*60*60 )
|
53
|
+
_date = @moment(@viewMonth).startOf('year').subtract(1,'ms')
|
54
|
+
@setValue( _date.unix() ) if _set
|
55
|
+
@drawCalendar( _date )
|
56
|
+
|
57
|
+
nextDay: -> @setValue( @moment(@value*1000).add(1,'day').unix() )
|
58
|
+
prevDay: -> @setValue( @moment(@value*1000).subtract(1,'day').unix() )
|
59
|
+
nextWeek: -> @setValue( @moment(@value*1000).add(1,'week').unix() )
|
60
|
+
prevWeek: -> @setValue( @moment(@value*1000).subtract(1,'week').unix() )
|
69
61
|
|
70
62
|
## Keyboard control
|
71
63
|
keyDown: (_key)->
|
@@ -84,30 +76,24 @@ HCalendar = HControl.extend
|
|
84
76
|
@prevYear(true) if _key == Event.KEY_HOME
|
85
77
|
@nextYear(true) if _key == Event.KEY_END
|
86
78
|
true
|
87
|
-
|
79
|
+
|
88
80
|
drawSubviews: ->
|
89
|
-
|
90
|
-
Event.observe( @elemOfPart( '
|
91
|
-
_this.prevMonth()
|
92
|
-
)
|
93
|
-
Event.observe( @elemOfPart( 'nextMonth' ), 'click', ->
|
94
|
-
_this.nextMonth()
|
95
|
-
)
|
81
|
+
Event.observe( @elemOfPart( 'prevMonth' ), 'click', => @prevMonth() )
|
82
|
+
Event.observe( @elemOfPart( 'nextMonth' ), 'click', => @nextMonth() )
|
96
83
|
|
97
84
|
## Returns an array of week day names starting with the short name of the word "week".
|
98
85
|
## The default locale returns: ['Wk','Mon','Tue','Wed','Thu','Fri','Sat','Sun']
|
99
86
|
## See HLocale for more details
|
100
87
|
localizedDays: ->
|
101
|
-
_str =
|
88
|
+
_str = @localeStrings
|
102
89
|
_arr = @cloneObject( _str.weekDaysShort )
|
103
90
|
_arr.push( _arr.shift() )
|
104
91
|
_arr.unshift( _str.weekShort )
|
105
92
|
_arr
|
106
|
-
|
93
|
+
|
107
94
|
_destroyWeekDayElems: ->
|
108
95
|
if @_weekDayElems?
|
109
|
-
for _elemId in @_weekDayElems
|
110
|
-
ELEM.del( _elemId )
|
96
|
+
ELEM.del( _elemId ) for _elemId in @_weekDayElems
|
111
97
|
@_weekDayElems = null
|
112
98
|
|
113
99
|
## Refreshes the week days header
|
@@ -122,15 +108,16 @@ HCalendar = HControl.extend
|
|
122
108
|
for _dayName, i in _dayNames
|
123
109
|
_dayElem = ELEM.make( _parentElem )
|
124
110
|
ELEM.setHTML( _dayElem, _dayName )
|
125
|
-
ELEM.
|
126
|
-
|
127
|
-
|
111
|
+
ELEM.setStyles( _dayElem,
|
112
|
+
width: _dayWidth+'px'
|
113
|
+
left: (i * _dayWidth + _leftOffset)+'px'
|
114
|
+
)
|
128
115
|
@_weekDayElems = _dayElems
|
129
|
-
|
116
|
+
|
130
117
|
## Calls #refreshWeekDays when theme is applied
|
131
118
|
refreshLabel: ->
|
132
119
|
@refreshWeekDays() if @markupElemIds? and not @_weekDayElems?
|
133
|
-
|
120
|
+
|
134
121
|
## Calculates the first and last week of the month of the _date
|
135
122
|
##
|
136
123
|
## Params:
|
@@ -151,112 +138,101 @@ HCalendar = HControl.extend
|
|
151
138
|
## }
|
152
139
|
## }
|
153
140
|
calendarDateRange: (_date)->
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
return {
|
169
|
-
week: {
|
170
|
-
firstDate: _weekFirst
|
171
|
-
lastDate: _weekLast
|
172
|
-
firstNum: _firstWeekNum
|
173
|
-
lastNum: _lastWeekNum
|
174
|
-
count: _weeks
|
175
|
-
}
|
176
|
-
month: {
|
177
|
-
firstDate: _monthFirst
|
178
|
-
lastDate: _monthLast
|
179
|
-
}
|
180
|
-
}
|
141
|
+
_date = @moment( @_dateSel(_date) )
|
142
|
+
_ranges =
|
143
|
+
week:
|
144
|
+
firstDate: _date.clone().startOf('month').startOf('week')
|
145
|
+
lastDate: _date.clone().endOf('month').endOf('week')
|
146
|
+
month:
|
147
|
+
firstDate: _date.clone().startOf('month')
|
148
|
+
lastDate: _date.clone().endOf('month')
|
149
|
+
_ranges.week.firstNum = _ranges.week.firstDate.week()
|
150
|
+
_ranges.week.lastNum = _ranges.week.lastDate.week()
|
151
|
+
_ranges.week.count = _ranges.week.lastNum - _ranges.week.firstNum
|
152
|
+
if _ranges.month.firstDate.weekday() < 3
|
153
|
+
_ranges.week.firstDate.subtract(1,'week')
|
154
|
+
_ranges
|
181
155
|
|
182
156
|
lostActiveStatus: (_obj)->
|
183
|
-
if (_obj and @
|
184
|
-
@
|
157
|
+
if (_obj and _obj.isChildOf(@) and not _obj.isChildOf(@menu) and not ( @menu? and _obj.isChildOf(@menu.menuItemView)) )
|
158
|
+
@destroyMenus()
|
185
159
|
@base(_obj)
|
186
160
|
|
187
161
|
## Calls #drawCalendar when the value is changed
|
188
|
-
refreshValue: ->
|
189
|
-
|
190
|
-
|
162
|
+
refreshValue: -> @drawCalendar( @date() )
|
163
|
+
|
191
164
|
## Stores the currently viewed year and month
|
192
|
-
viewMonth: [ 1970, 0 ]
|
165
|
+
viewMonth: [ 1970, 0, 1 ]
|
166
|
+
|
167
|
+
destroyMenus: ->
|
168
|
+
if @yearMenu
|
169
|
+
@yearMenu.dieSoon() if ( @yearMenu? and @yearMenu.die? and not @yearMenu.isDead )
|
170
|
+
@yearMenu = null
|
171
|
+
delete @yearMenu
|
172
|
+
if @menu
|
173
|
+
@menu.dieSoon() if ( @menu? and @menu.die? and not @menu.isDead )
|
174
|
+
@menu = null
|
175
|
+
delete @menu
|
193
176
|
|
194
177
|
## Shows a pulldown menu for month selection
|
195
178
|
monthMenu: ->
|
196
|
-
return unless
|
179
|
+
return unless HPopupMenu?
|
197
180
|
_calendar = @
|
198
181
|
_monthValues = []
|
199
|
-
for _monthName, i in
|
200
|
-
_monthValues.push( [ i, _monthName ] )
|
182
|
+
_monthValues.push( [ i, _monthName ] ) for _monthName, i in @localeStrings.monthsLong
|
201
183
|
_rect = ELEM.getBoxCoords( @_monthMenu )
|
202
|
-
_rect[
|
203
|
-
_rect[2] =
|
204
|
-
@
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
184
|
+
_rect[1] -= @rect.top
|
185
|
+
_rect[2] = 100 if _rect[2] < 100
|
186
|
+
@destroyMenus()
|
187
|
+
@menu = HPopupMenu.extend(
|
188
|
+
menuShow: ->
|
189
|
+
if @base()
|
190
|
+
@_shouldSetValue = true
|
191
|
+
lostActiveStatus: (_obj)->
|
192
|
+
if (_obj and _obj.isChildOf(@parent) and not _obj.isChildOf(@) and _obj.isChildOf(@menuItemView) and not _obj == @)
|
193
|
+
@parent.destroyMenus()
|
194
|
+
EVENT.changeActiveControl(@parent)
|
195
|
+
else
|
196
|
+
@base(_obj)
|
197
|
+
refreshValue: ->
|
210
198
|
@base()
|
211
|
-
|
212
|
-
if
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
_calendar.setValue( _calendar.setMonth( @value ) )
|
218
|
-
if _calendar.month() != @value
|
219
|
-
_calendar.setValue( _calendar.setMday( 28 ) )
|
220
|
-
_calendar.setValue( _calendar.setMonth( @value ) )
|
221
|
-
_menu = @
|
222
|
-
COMM.Queue.push( ->
|
223
|
-
EVENT.changeActiveControl(_calendar)
|
224
|
-
_calendar.menu = null
|
225
|
-
_menu.die()
|
226
|
-
)
|
199
|
+
return unless @_shouldSetValue
|
200
|
+
if @_shouldSetValue and not @isDead
|
201
|
+
@parent.viewMonth[1] = @value
|
202
|
+
@parent.drawCalendar( @parent.moment( @parent.viewMonth ) )
|
203
|
+
@_shouldSetValue = false
|
204
|
+
@hide()
|
227
205
|
).new( _rect, @,
|
228
|
-
value: @
|
229
|
-
initialVisibility: true
|
206
|
+
value: @viewMonth[1]
|
230
207
|
listItems: _monthValues
|
231
208
|
)
|
232
|
-
|
209
|
+
@menu.menuShow()
|
210
|
+
|
233
211
|
## Shows a text field for year selection
|
234
212
|
yearMenu: ->
|
235
213
|
_calendar = @
|
236
214
|
_calendarEnable = @enabled
|
237
215
|
_rect = ELEM.getBoxCoords( @_yearMenu )
|
238
|
-
_rect[0] +=
|
216
|
+
_rect[0] += 12
|
239
217
|
_rect[2] = 40 if _rect[2] < 40
|
240
|
-
|
241
|
-
|
242
|
-
@setEnabled(false)
|
243
|
-
HNumericTextControl.extend(
|
218
|
+
@destroyMenus()
|
219
|
+
@yearMenu = HNumericTextControl.extend(
|
244
220
|
refreshValue: ->
|
245
221
|
@base()
|
246
|
-
|
222
|
+
@parent.viewMonth[0] = @value
|
223
|
+
@parent.drawCalendar( @parent.moment( @parent.viewMonth ) )
|
224
|
+
lostActiveStatus: (_obj)->
|
225
|
+
@base(_obj)
|
226
|
+
EVENT.changeActiveControl( @parent )
|
247
227
|
gainedActiveStatus: (_obj)->
|
248
228
|
@base(_obj)
|
249
|
-
|
250
|
-
|
229
|
+
die: ->
|
230
|
+
return if @isDead
|
231
|
+
EVENT.changeActiveControl( @parent )
|
251
232
|
@base()
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
_year.die()
|
256
|
-
)
|
257
|
-
keyDown: (_key)->
|
258
|
-
if _key == Event.KEY_RETURN
|
259
|
-
ELEM.get( @markupElemIds.value ).blur()
|
233
|
+
defaultKey: ->
|
234
|
+
@base()
|
235
|
+
true
|
260
236
|
).new( _rect, @,
|
261
237
|
value: @year()
|
262
238
|
minValue: -38399
|
@@ -264,99 +240,121 @@ HCalendar = HControl.extend
|
|
264
240
|
focusOnCreate: true
|
265
241
|
refreshOnInput: false
|
266
242
|
refreshOnIdle: false
|
267
|
-
events:
|
268
|
-
keyDown: true
|
269
243
|
style:
|
270
|
-
|
244
|
+
textAlign: 'left'
|
245
|
+
fontSize: '12px'
|
246
|
+
padding: 0
|
247
|
+
margin: 0
|
271
248
|
)
|
272
|
-
|
249
|
+
EVENT.changeActiveControl(@yearMenu)
|
250
|
+
|
273
251
|
_destroyCalendarElems: ->
|
274
252
|
if @_drawCalendarElems?
|
275
|
-
for _elemId in @_drawCalendarElems
|
276
|
-
ELEM.del( _elemId )
|
253
|
+
ELEM.del( _elemId ) for _elemId in @_drawCalendarElems
|
277
254
|
@_drawCalendarElems = null
|
278
|
-
|
255
|
+
|
279
256
|
die: ->
|
257
|
+
@destroyMenus()
|
280
258
|
@_destroyWeekDayElems()
|
281
259
|
@_destroyCalendarElems()
|
282
260
|
@base()
|
283
261
|
|
262
|
+
_createGridElem: (_elems,_parent,_tag,_classNames,_styles)->
|
263
|
+
_elemId = ELEM.make( _parent, _tag )
|
264
|
+
_elems.push( _elemId )
|
265
|
+
ELEM.addClassName( _elemId, _className ) for _className in _classNames
|
266
|
+
ELEM.setStyles( _elemId, _styles )
|
267
|
+
_elemId
|
268
|
+
|
284
269
|
## Draws the calendar with the date open given as input.
|
285
270
|
##
|
286
271
|
## Params:
|
287
272
|
## - _date: The date on which calendar UI is opened at.
|
288
273
|
drawCalendar: (_date)->
|
289
|
-
|
274
|
+
@destroyMenus()
|
275
|
+
_date = @moment(@_dateSel(_date).getTime())
|
276
|
+
_this = @
|
290
277
|
_calendarDateRange = @calendarDateRange( _date )
|
291
|
-
_monthFirst =
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
278
|
+
[ _monthFirst, _monthLast, _firstDate, _lastDate ] = [
|
279
|
+
_calendarDateRange.month.firstDate
|
280
|
+
_calendarDateRange.month.lastDate
|
281
|
+
_calendarDateRange.week.firstDate
|
282
|
+
_calendarDateRange.week.lastDate
|
283
|
+
]
|
284
|
+
_valueDate = @moment(@value*1000)
|
285
|
+
# console.log('monthFirst:',_monthFirst.toString())
|
286
|
+
# console.log('monthLast:',_monthLast.toString())
|
287
|
+
# console.log('firstDate:',_firstDate.toString())
|
288
|
+
# console.log('lastDate:',_lastDate.toString())
|
289
|
+
_colDate = _firstDate.clone()
|
290
|
+
if @options.todayStart?
|
291
|
+
_today = @moment(@options.todayStart*1000)
|
292
|
+
else if @options.todayStart == false
|
293
|
+
_today = false
|
294
|
+
else
|
295
|
+
_today = @moment()
|
296
|
+
_availWidth = @rect.width - 2
|
296
297
|
_availHeight = @rect.height - 36
|
297
|
-
_leftPlus
|
298
|
-
_topPlus
|
299
|
-
_colWidth
|
300
|
-
_rowHeight
|
301
|
-
_parentElem
|
302
|
-
# ELEM.setStyle( _parentElem, 'visibility', 'hidden', true )
|
298
|
+
_leftPlus = ( _availWidth % 8 ) - 2
|
299
|
+
_topPlus = ( _availHeight % 6 )
|
300
|
+
_colWidth = Math.floor( _availWidth / 8 )
|
301
|
+
_rowHeight = Math.floor( _availHeight / 6 )
|
302
|
+
_parentElem = @markupElemIds.value
|
303
303
|
_elems = []
|
304
|
-
_this = @
|
305
304
|
for _row in [0..5]
|
306
|
-
_weekElem = ELEM.make( _parentElem )
|
307
|
-
_elems.push( _weekElem )
|
308
|
-
ELEM.addClassName( _weekElem, 'calendar_weeks_week_row' )
|
309
|
-
ELEM.setStyle( _weekElem, 'width', _availWidth+'px' )
|
310
|
-
ELEM.setStyle( _weekElem, 'height', _availHeight+'px' )
|
311
305
|
_top = (_row*_rowHeight)+_topPlus
|
312
|
-
|
306
|
+
_weekElem = @_createGridElem( _elems, _parentElem, 'div', [ 'week_row' ],
|
307
|
+
width: _availWidth+'px'
|
308
|
+
height: _rowHeight+'px'
|
309
|
+
top: _top+'px'
|
310
|
+
)
|
313
311
|
for _col in [0..7]
|
314
|
-
if _col == 0
|
315
|
-
_colDate =
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
ELEM.
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
312
|
+
if _col == 0 # week number columns
|
313
|
+
# _colDate = @moment( _firstDate ).add(_row,'weeks').add(_col,'days')
|
314
|
+
_colElem = @_createGridElem( _elems, _weekElem, 'div', ['col_wk'],
|
315
|
+
width: _colWidth+'px'
|
316
|
+
height: _rowHeight+'px'
|
317
|
+
lineHeight: _rowHeight+'px'
|
318
|
+
)
|
319
|
+
ELEM.setHTML( _colElem, _colDate.week() )
|
320
|
+
# _colDate = _colDate.add(1,'days')
|
321
|
+
else # week day columns
|
322
|
+
# _colDate = @moment( _firstDate ).add(_row,'weeks').add(_col-1,'days')
|
323
|
+
_colDate = _colDate.add(1,'days')
|
324
|
+
_colSecs = _colDate.unix()
|
325
|
+
_colClasses = []
|
326
|
+
_prevDayLast = _colDate.clone().startOf('day').subtract(1,'ms')
|
327
|
+
_nextDayFirst = _colDate.clone().endOf('day').add(1,'ms')
|
328
|
+
# if _colDate.date() == 10
|
329
|
+
# console.log('prev:',_prevDayLast.toString(),
|
330
|
+
# ' date:',_date.toString(),
|
331
|
+
# ' next:',_nextDayFirst.toString(),
|
332
|
+
# ' value:',@moment(@value*1000).toString())
|
333
|
+
if _valueDate.isAfter(_prevDayLast) and _valueDate.isBefore(_nextDayFirst)
|
334
|
+
_colClasses.push( 'col_selected' )
|
335
|
+
else if _colDate.isBefore(_monthFirst) or _colDate.isAfter(_monthLast)
|
336
|
+
_colClasses.push( 'col_inactive' )
|
335
337
|
else
|
336
|
-
|
337
|
-
if
|
338
|
-
|
339
|
-
ELEM.setAttr( _colElem, '_colSecs', _colSecs )
|
340
|
-
if @enabled
|
341
|
-
Event.observe( ELEM.get( _colElem ), 'click', ->
|
342
|
-
_this.setValue( @_colSecs )
|
343
|
-
)
|
344
|
-
# ELEM.setAttr( _colElem, 'href', "javascript:HSystem.views[#{@viewId}].setValue(#{_colSecs})" )
|
338
|
+
_colClasses.push( 'col_active' )
|
339
|
+
if _today and _today.isAfter(_prevDayLast) and _today.isBefore(_nextDayFirst)
|
340
|
+
_colClasses.push( 'col_today' )
|
345
341
|
_left = (_col*_colWidth+_leftPlus)
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
342
|
+
_colElem = @_createGridElem( _elems, _weekElem, 'a', _colClasses,
|
343
|
+
left: _left+'px'
|
344
|
+
width: (_colWidth-1)+'px'
|
345
|
+
height: (_rowHeight-1)+'px'
|
346
|
+
lineHeight: _rowHeight+'px'
|
347
|
+
)
|
348
|
+
ELEM.setAttr( _colElem, '_colSecs', _colSecs )
|
349
|
+
Event.observe( ELEM.get( _colElem ), 'click', -> _this.setValue( @_colSecs ) ) if @enabled
|
350
|
+
ELEM.setHTML( _colElem, _colDate.date() )
|
351
|
+
|
353
352
|
_stateElem = @markupElemIds.state
|
354
353
|
|
355
|
-
@_monthMenu = ELEM.make( _stateElem, 'span' )
|
354
|
+
@_monthMenu = ELEM.make( _stateElem, 'span' )
|
356
355
|
_elems.push( @_monthMenu )
|
357
|
-
|
358
|
-
if @enabled
|
359
|
-
Event.observe( ELEM.get( @_monthMenu ), 'click', ( -> _this.monthMenu() ), false )
|
356
|
+
|
357
|
+
Event.observe( ELEM.get( @_monthMenu ), 'click', ( -> _this.monthMenu() ), false ) if @enabled
|
360
358
|
ELEM.setHTML( @_monthMenu, @monthName( _date ) )
|
361
359
|
|
362
360
|
_spacer = ELEM.make( _stateElem, 'span' )
|
@@ -367,10 +365,9 @@ HCalendar = HControl.extend
|
|
367
365
|
_elems.push( @_yearMenu )
|
368
366
|
if @enabled
|
369
367
|
Event.observe( ELEM.get( @_yearMenu ), 'click', ( -> _this.yearMenu() ), false )
|
370
|
-
# ELEM.setAttr( @_yearMenu, 'href', "javascript:HSystem.views[#{@viewId}].yearMenu()" )
|
371
368
|
ELEM.setHTML( @_yearMenu, @year( _date ) )
|
372
369
|
|
373
|
-
@viewMonth = [ _monthFirst.
|
370
|
+
@viewMonth = [ _monthFirst.year(), _monthFirst.month(), _monthFirst.date() ]
|
374
371
|
@_destroyCalendarElems()
|
375
372
|
@_drawCalendarElems = _elems
|
376
373
|
|