rsence-pre 3.0.0.8 → 3.0.0.9
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 +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
|
|