rsence-pre 2.1.0.1.pre
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/.yardopts +10 -0
- data/INSTALL.rdoc +330 -0
- data/LICENSE.txt +622 -0
- data/README.rdoc +98 -0
- data/VERSION +1 -0
- data/bin/rsence +25 -0
- data/bin/rsence-pre +25 -0
- data/conf/default_conf.yaml +346 -0
- data/conf/default_strings.yaml +76 -0
- data/conf/rsence_command_strings.yaml +444 -0
- data/docs/ExampleGuiPlugin.rdoc +193 -0
- data/docs/JavascriptBundles.rdoc +0 -0
- data/docs/PluginBundleInfo.rdoc +173 -0
- data/docs/PluginBundles.rdoc +96 -0
- data/docs/Values.rdoc +163 -0
- data/js/comm/autosync/autosync.js +17 -0
- data/js/comm/autosync/js.inc +0 -0
- data/js/comm/comm.js +203 -0
- data/js/comm/js.inc +0 -0
- data/js/comm/jsloader/js.inc +0 -0
- data/js/comm/jsloader/jsloader.js +112 -0
- data/js/comm/queue/js.inc +0 -0
- data/js/comm/queue/queue.js +184 -0
- data/js/comm/session/js.inc +0 -0
- data/js/comm/session/session.js +52 -0
- data/js/comm/sessionwatcher/js.inc +0 -0
- data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
- data/js/comm/transporter/js.inc +0 -0
- data/js/comm/transporter/transporter.js +261 -0
- data/js/comm/urlresponder/js.inc +0 -0
- data/js/comm/urlresponder/urlresponder.js +149 -0
- data/js/comm/values/js.inc +0 -0
- data/js/comm/values/values.js +433 -0
- data/js/controls/button/button.js +72 -0
- data/js/controls/button/js.inc +0 -0
- data/js/controls/button/themes/bright/button.css +89 -0
- data/js/controls/button/themes/bright/button.html +7 -0
- data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/bright/button_parts1.png +0 -0
- data/js/controls/button/themes/default/button.css +89 -0
- data/js/controls/button/themes/default/button.html +7 -0
- data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/default/button_parts1.png +0 -0
- data/js/controls/checkbox/checkbox.js +49 -0
- data/js/controls/checkbox/js.inc +0 -0
- data/js/controls/checkbox/themes/default/checkbox.css +69 -0
- data/js/controls/checkbox/themes/default/checkbox.html +5 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +63 -0
- data/js/controls/dialogs/alert_sheet/js.inc +0 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -0
- data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/sheet.js +84 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
- data/js/controls/imageview/imageview.js +109 -0
- data/js/controls/imageview/js.inc +0 -0
- data/js/controls/imageview/themes/default/blank.gif +0 -0
- data/js/controls/passwordcontrol/js.inc +0 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +23 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
- data/js/controls/progress/progressbar/js.inc +0 -0
- data/js/controls/progress/progressbar/progressbar.js +40 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
- data/js/controls/progress/progressindicator/js.inc +0 -0
- data/js/controls/progress/progressindicator/progressindicator.js +44 -0
- data/js/controls/radiobutton/js.inc +0 -0
- data/js/controls/radiobutton/radiobutton.js +43 -0
- data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
- data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
- data/js/controls/sliders/slider/js.inc +0 -0
- data/js/controls/sliders/slider/slider.js +357 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
- data/js/controls/sliders/slider/themes/default/slider.css +108 -0
- data/js/controls/sliders/slider/themes/default/slider.html +5 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
- data/js/controls/sliders/vslider/js.inc +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
- data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
- data/js/controls/sliders/vslider/vslider.js +41 -0
- data/js/controls/stepper/js.inc +0 -0
- data/js/controls/stepper/stepper.js +213 -0
- data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
- data/js/controls/stepper/themes/default/stepper.css +14 -0
- data/js/controls/stepper/themes/default/stepper.html +2 -0
- data/js/controls/stepper/themes/default/stepper.png +0 -0
- data/js/controls/stringview/js.inc +0 -0
- data/js/controls/stringview/stringview.js +49 -0
- data/js/controls/stringview/themes/default/stringview.css +8 -0
- data/js/controls/stringview/themes/default/stringview.html +1 -0
- data/js/controls/tab/js.inc +0 -0
- data/js/controls/tab/tab.js +280 -0
- data/js/controls/tab/themes/bright/tab.css +76 -0
- data/js/controls/tab/themes/bright/tab.html +6 -0
- data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
- data/js/controls/tab/themes/default/tab.css +77 -0
- data/js/controls/tab/themes/default/tab.html +6 -0
- data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_parts1.png +0 -0
- data/js/controls/textarea/js.inc +0 -0
- data/js/controls/textarea/textarea.js +24 -0
- data/js/controls/textarea/themes/default/textarea.css +21 -0
- data/js/controls/textarea/themes/default/textarea.html +18 -0
- data/js/controls/textcontrol/js.inc +0 -0
- data/js/controls/textcontrol/textcontrol.js +374 -0
- data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
- data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
- data/js/controls/uploader/js.inc +0 -0
- data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
- data/js/controls/uploader/themes/default/uploader.css +108 -0
- data/js/controls/uploader/themes/default/uploader.html +27 -0
- data/js/controls/uploader/uploader.js +154 -0
- data/js/controls/validatorview/js.inc +0 -0
- data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
- data/js/controls/validatorview/themes/default/validator.png +0 -0
- data/js/controls/validatorview/themes/default/validatorview.css +0 -0
- data/js/controls/validatorview/themes/default/validatorview.html +0 -0
- data/js/controls/validatorview/validatorview.js +62 -0
- data/js/controls/window/js.inc +0 -0
- data/js/controls/window/themes/default/window.css +219 -0
- data/js/controls/window/themes/default/window.html +17 -0
- data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_active.png +0 -0
- data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
- data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_buttons.png +0 -0
- data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts1.png +0 -0
- data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts2.png +0 -0
- data/js/controls/window/window.js +286 -0
- data/js/core/class/class.js +318 -0
- data/js/core/class/js.inc +0 -0
- data/js/core/elem/elem.js +1383 -0
- data/js/core/elem/js.inc +0 -0
- data/js/core/event/event.js +153 -0
- data/js/core/event/js.inc +0 -0
- data/js/core/iefix/ie_css_element.htc +5 -0
- data/js/core/iefix/ie_css_style.htc +5 -0
- data/js/core/iefix/iefix.js +359 -0
- data/js/core/iefix/js.inc +0 -0
- data/js/core/rsence_ns/js.inc +0 -0
- data/js/core/rsence_ns/rsence_ns.js +21 -0
- data/js/datetime/calendar/calendar.js +198 -0
- data/js/datetime/calendar/js.inc +0 -0
- data/js/datetime/calendar/themes/default/calendar.css +108 -0
- data/js/datetime/calendar/themes/default/calendar.html +9 -0
- data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/datetime/datetimevalue/datetimevalue.js +247 -0
- data/js/datetime/datetimevalue/js.inc +0 -0
- data/js/datetime/timesheet/js.inc +0 -0
- data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
- data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
- data/js/datetime/timesheet/timesheet.js +183 -0
- data/js/datetime/timesheet_item/js.inc +0 -0
- data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
- data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
- data/js/datetime/timesheet_item/timesheet_item.js +248 -0
- data/js/datetime/timesheet_item_edit/js.inc +0 -0
- data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
- data/js/foundation/application/application.js +208 -0
- data/js/foundation/application/js.inc +0 -0
- data/js/foundation/control/control.js +339 -0
- data/js/foundation/control/controldefaults/controldefaults.js +56 -0
- data/js/foundation/control/controldefaults/js.inc +0 -0
- data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
- data/js/foundation/control/dummyvalue/js.inc +0 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +500 -0
- data/js/foundation/control/dyncontrol/js.inc +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
- data/js/foundation/control/eventresponder/eventresponder.js +750 -0
- data/js/foundation/control/eventresponder/js.inc +0 -0
- data/js/foundation/control/js.inc +0 -0
- data/js/foundation/control/valuematrix/js.inc +0 -0
- data/js/foundation/control/valuematrix/valuematrix.js +135 -0
- data/js/foundation/control/valueresponder/js.inc +0 -0
- data/js/foundation/control/valueresponder/valueresponder.js +79 -0
- data/js/foundation/eventmanager/eventmanager.js +991 -0
- data/js/foundation/eventmanager/js.inc +0 -0
- data/js/foundation/geom/point/js.inc +0 -0
- data/js/foundation/geom/point/point.js +202 -0
- data/js/foundation/geom/rect/js.inc +0 -0
- data/js/foundation/geom/rect/rect.js +651 -0
- data/js/foundation/json_renderer/js.inc +0 -0
- data/js/foundation/json_renderer/json_renderer.js +246 -0
- data/js/foundation/system/js.inc +0 -0
- data/js/foundation/system/system.js +381 -0
- data/js/foundation/thememanager/js.inc +0 -0
- data/js/foundation/thememanager/thememanager.js +393 -0
- data/js/foundation/value/js.inc +0 -0
- data/js/foundation/value/value.js +183 -0
- data/js/foundation/view/js.inc +0 -0
- data/js/foundation/view/markupview/js.inc +0 -0
- data/js/foundation/view/markupview/markupview.js +114 -0
- data/js/foundation/view/morphanimation/js.inc +0 -0
- data/js/foundation/view/morphanimation/morphanimation.js +237 -0
- data/js/foundation/view/view.js +1812 -0
- data/js/foundation/view/viewdefaults/js.inc +0 -0
- data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
- data/js/lists/checkboxlist/checkboxlist.js +171 -0
- data/js/lists/checkboxlist/js.inc +0 -0
- data/js/lists/listitems/js.inc +0 -0
- data/js/lists/listitems/listitems.js +88 -0
- data/js/lists/propertylist/js.inc +0 -0
- data/js/lists/propertylist/propertylist.js +326 -0
- data/js/lists/radiobuttonlist/js.inc +0 -0
- data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
- data/js/util/reloadapp/js.inc +0 -0
- data/js/util/reloadapp/reloadapp.js +152 -0
- data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/util/sha/js.inc +0 -0
- data/js/util/sha/sha.js +426 -0
- data/js/views/centerview/centerview.js +75 -0
- data/js/views/centerview/js.inc +0 -0
- data/js/views/inlineview/inlineview.js +15 -0
- data/js/views/inlineview/js.inc +0 -0
- data/js/views/scrollview/js.inc +0 -0
- data/js/views/scrollview/scrollview.js +40 -0
- data/lib/conf/argv.rb +850 -0
- data/lib/conf/default.rb +219 -0
- data/lib/daemon/daemon.rb +387 -0
- data/lib/daemon/sigcomm.rb +64 -0
- data/lib/http/broker.rb +150 -0
- data/lib/http/rackup.rb +91 -0
- data/lib/http/request.rb +66 -0
- data/lib/http/response.rb +65 -0
- data/lib/plugins/dependencies.rb +285 -0
- data/lib/plugins/gui_plugin.rb +160 -0
- data/lib/plugins/guiparser.rb +123 -0
- data/lib/plugins/plugin.rb +438 -0
- data/lib/plugins/plugin_base.rb +162 -0
- data/lib/plugins/plugin_plugins.rb +81 -0
- data/lib/plugins/plugin_sqlite_db.rb +98 -0
- data/lib/plugins/pluginmanager.rb +635 -0
- data/lib/plugins/plugins.rb +169 -0
- data/lib/plugins/servlet.rb +108 -0
- data/lib/rsence.rb +32 -0
- data/lib/session/msg.rb +327 -0
- data/lib/session/sessionmanager.rb +522 -0
- data/lib/session/sessionstorage.rb +340 -0
- data/lib/transporter/transporter.rb +263 -0
- data/lib/util/gzstring.rb +9 -0
- data/lib/util/ruby19_fixes.rb +18 -0
- data/lib/values/hvalue.rb +378 -0
- data/lib/values/valuemanager.rb +172 -0
- data/plugins/client_pkg/client_pkg.rb +157 -0
- data/plugins/client_pkg/info.yaml +25 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
- data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
- data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -0
- data/plugins/index_html/img/loading.gif +0 -0
- data/plugins/index_html/img/riassence.gif +0 -0
- data/plugins/index_html/index_html.rb +120 -0
- data/plugins/index_html/info.yaml +18 -0
- data/plugins/index_html/tmpl/index.html +15 -0
- data/plugins/main/info.yaml +18 -0
- data/plugins/main/js/main.js +84 -0
- data/plugins/main/main.rb +255 -0
- data/plugins/main/values.yaml +8 -0
- data/plugins/ticket/info.yaml +21 -0
- data/plugins/ticket/lib/common.rb +392 -0
- data/plugins/ticket/lib/favicon.rb +39 -0
- data/plugins/ticket/lib/file.rb +58 -0
- data/plugins/ticket/lib/img.rb +50 -0
- data/plugins/ticket/lib/objblob.rb +66 -0
- data/plugins/ticket/lib/rsrc.rb +34 -0
- data/plugins/ticket/lib/upload.rb +236 -0
- data/plugins/ticket/ticket.rb +333 -0
- data/setup/welcome/gui/welcome.yaml +92 -0
- data/setup/welcome/info.yaml +13 -0
- data/setup/welcome/text/welcome.html +9 -0
- data/setup/welcome/values.yaml +9 -0
- data/setup/welcome/welcome.rb +54 -0
- metadata +407 -0
@@ -0,0 +1,198 @@
|
|
1
|
+
/* RSence
|
2
|
+
* Copyright 2009 Riassence Inc.
|
3
|
+
* http://riassence.com/
|
4
|
+
*
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*** = Description
|
10
|
+
** Use HCalendar to display a month calendar that displays days as columns
|
11
|
+
** and weeks as rows. Its value is a date/time number specified in seconds
|
12
|
+
** since or before epoch (1970-01-01 00:00:00 UTC).
|
13
|
+
***/
|
14
|
+
var//RSence.DateTime
|
15
|
+
HCalendar = HControl.extend({
|
16
|
+
componentName: 'calendar',
|
17
|
+
weekdays_localized: ['Wk','Mon','Tue','Wed','Thu','Fri','Sat','Sun'],
|
18
|
+
defaultEvents: {
|
19
|
+
mouseWheel: true
|
20
|
+
},
|
21
|
+
/** = Description
|
22
|
+
* Calls HCalendar#nextMonth or HCalendar#prevMonth based on delta
|
23
|
+
* of mouseWheel.
|
24
|
+
*
|
25
|
+
**/
|
26
|
+
mouseWheel: function(_delta){
|
27
|
+
if ( _delta < 0 ) {
|
28
|
+
this.nextMonth();
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
this.prevMonth();
|
32
|
+
}
|
33
|
+
},
|
34
|
+
|
35
|
+
/** = Description
|
36
|
+
* Refreshes weekdays.
|
37
|
+
*
|
38
|
+
**/
|
39
|
+
refreshLabel: function(){
|
40
|
+
if(!this['markupElemIds']){
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
var _weekdays_localized = this.weekdays_localized,
|
44
|
+
_weekdays_width = Math.floor(this.rect.width/_weekdays_localized.length),
|
45
|
+
_weekdays_html = [],
|
46
|
+
i = 0,
|
47
|
+
_weekdays_html_pre = ['<div style="width:'+_weekdays_width+'px;left:','px">'],
|
48
|
+
_weekdays_html_suf = '</div>';
|
49
|
+
for(;i<_weekdays_localized.length;i++){
|
50
|
+
_weekdays_html.push([
|
51
|
+
_weekdays_html_pre.join(i*_weekdays_width),
|
52
|
+
_weekdays_localized[i],
|
53
|
+
_weekdays_html_suf
|
54
|
+
].join('') );
|
55
|
+
}
|
56
|
+
ELEM.setHTML(this.markupElemIds.label, _weekdays_html.join(''));
|
57
|
+
},
|
58
|
+
|
59
|
+
/** = Description
|
60
|
+
* Checks the date range for the month which the date given as input belongs.
|
61
|
+
*
|
62
|
+
* = Parameters
|
63
|
+
* +_date+:: A Date instance to check date range from
|
64
|
+
*
|
65
|
+
* = Returns
|
66
|
+
* Array of [0] first week's date and [1] last week's date.
|
67
|
+
*
|
68
|
+
**/
|
69
|
+
calendarDateRange: function(_date){
|
70
|
+
var _date_begin = this.firstDateOfMonth(_date),
|
71
|
+
_date_end = this.lastDateOfMonth(_date),
|
72
|
+
_firstWeeksDate = this.firstDateOfWeek(_date_begin),
|
73
|
+
_lastWeeksDate = this.lastDateOfWeek(_date_end),
|
74
|
+
_week_begin = this.week(_firstWeeksDate),
|
75
|
+
_week_end = this.week(_lastWeeksDate),
|
76
|
+
_weeks = _week_end-_week_begin;
|
77
|
+
if((_weeks===5) && (_firstWeeksDate.getDate() !== 1)){
|
78
|
+
_lastWeeksDate = new Date( _lastWeeksDate.getTime() + this.msWeek );
|
79
|
+
}
|
80
|
+
else if((_weeks===5) && (_firstWeeksDate.getDate() === 1)){
|
81
|
+
_firstWeeksDate = new Date( _firstWeeksDate.getTime() - this.msWeek );
|
82
|
+
}
|
83
|
+
else if(_weeks===4){
|
84
|
+
_firstWeeksDate = new Date( _firstWeeksDate.getTime() - this.msWeek );
|
85
|
+
_lastWeeksDate = new Date( _lastWeeksDate.getTime() + this.msWeek );
|
86
|
+
}
|
87
|
+
return [
|
88
|
+
_firstWeeksDate,
|
89
|
+
_lastWeeksDate
|
90
|
+
];
|
91
|
+
},
|
92
|
+
|
93
|
+
/** = Description
|
94
|
+
* Refreshes the calendar.
|
95
|
+
*
|
96
|
+
**/
|
97
|
+
refreshValue: function(){
|
98
|
+
var _date = this.date();
|
99
|
+
this.drawCalendar(_date);
|
100
|
+
},
|
101
|
+
|
102
|
+
/** = Description
|
103
|
+
* Draws the next month on calendar.
|
104
|
+
*
|
105
|
+
**/
|
106
|
+
nextMonth: function(){
|
107
|
+
var _date = new Date( this.viewMonth[0], this.viewMonth[1]+1, 1 );
|
108
|
+
this.drawCalendar( new Date(_date.getTime() - this.tzMs(_date)) );
|
109
|
+
},
|
110
|
+
|
111
|
+
/** = Description
|
112
|
+
* Draws the previous month on calendar.
|
113
|
+
*
|
114
|
+
**/
|
115
|
+
prevMonth: function(){
|
116
|
+
var _date = new Date( this.viewMonth[0], this.viewMonth[1]-1, 1 );
|
117
|
+
this.drawCalendar( new Date(_date.getTime() - this.tzMs(_date)) );
|
118
|
+
},
|
119
|
+
viewMonth: [1970,0],
|
120
|
+
|
121
|
+
/** = Description
|
122
|
+
* Draws the calendar with the date open given as input.
|
123
|
+
*
|
124
|
+
* = Parameters
|
125
|
+
* +_date+:: The date on which calendar UI is opened at.
|
126
|
+
*
|
127
|
+
**/
|
128
|
+
drawCalendar: function(_date){
|
129
|
+
_date = (_date instanceof Date)?_date:this.date();
|
130
|
+
var _calendarDateRange = this.calendarDateRange(_date),
|
131
|
+
_monthFirst = this.firstDateOfMonth(_date),
|
132
|
+
_monthLast = this.lastDateOfMonth(_date),
|
133
|
+
_firstDate = _calendarDateRange[0],
|
134
|
+
_lastDate = _calendarDateRange[1],
|
135
|
+
_column_count = this.weekdays_localized.length,
|
136
|
+
_column_width = Math.floor((this.rect.width-1)/_column_count),
|
137
|
+
_row_height = Math.floor((this.rect.height-1-35)/6),
|
138
|
+
_week_html_pre = ['<div class="calendar_weeks_week_row" style="width:'+(this.rect.width-3)+'px;height:'+_row_height+'px;top:','px">'],
|
139
|
+
_week_html_suf = '</div>',
|
140
|
+
_col_html_pre = ['<a href="javascript:void(HSystem.views['+this.viewId+'].setValue(','));" class="calendar_weeks_week_col','" style="width:'+_column_width+'px;height:'+_row_height+'px;line-height:'+_row_height+'px;left:','px">'],
|
141
|
+
_col_html_suf = '</a>',
|
142
|
+
_col_week_pre = '<div class="calendar_weeks_week_col_wk" style="width:'+_column_width+'px;height:'+_row_height+'px;line-height:'+_row_height+'px;left:0px">',
|
143
|
+
_col_week_suf = '</div>',
|
144
|
+
_month_html = [],
|
145
|
+
_week_html,
|
146
|
+
_col_html,
|
147
|
+
_row = 0,
|
148
|
+
_col,
|
149
|
+
_colMs,
|
150
|
+
_colSecs,
|
151
|
+
_colDate,
|
152
|
+
_extraCssClass;
|
153
|
+
for(; _row<6; _row++){
|
154
|
+
_week_html = [];
|
155
|
+
for(_col = 0; _col<8; _col++){
|
156
|
+
_colDate = new Date(_firstDate.getTime()+((_row*this.msWeek)+((_col-1)*this.msDay)));
|
157
|
+
_colMs = _colDate.getTime();
|
158
|
+
if(_col===0){
|
159
|
+
_col_html = [
|
160
|
+
_col_week_pre,
|
161
|
+
this.week(_colDate),
|
162
|
+
_col_week_suf
|
163
|
+
].join('');
|
164
|
+
}
|
165
|
+
else {
|
166
|
+
_colSecs = Math.round(_colMs/1000);
|
167
|
+
if((this.value >= _colSecs) && (this.value < (_colSecs+86400))){
|
168
|
+
_extraCssClass = '_'+'sel';
|
169
|
+
}
|
170
|
+
else{
|
171
|
+
_extraCssClass = (_colDate<_monthFirst || _colDate > _monthLast)?'_'+'no':'_'+'yes';
|
172
|
+
}
|
173
|
+
_col_html = [
|
174
|
+
_col_html_pre[0],
|
175
|
+
_colSecs,
|
176
|
+
_col_html_pre[1],
|
177
|
+
_extraCssClass,
|
178
|
+
_col_html_pre[2],
|
179
|
+
(_col*_column_width),
|
180
|
+
_col_html_pre[3],
|
181
|
+
this.mday(_colDate),
|
182
|
+
_col_html_suf
|
183
|
+
].join('');
|
184
|
+
}
|
185
|
+
_week_html.push(_col_html);
|
186
|
+
}
|
187
|
+
_month_html.push([
|
188
|
+
_week_html_pre.join(_row*_row_height),
|
189
|
+
_week_html.join(''),
|
190
|
+
_week_html_suf
|
191
|
+
].join('') );
|
192
|
+
}
|
193
|
+
ELEM.setHTML(this.markupElemIds.value, _month_html.join(''));
|
194
|
+
ELEM.setHTML(this.markupElemIds.state, this.monthName(_date)+' '+this.year(_date));
|
195
|
+
this.viewMonth = [_monthFirst.getUTCFullYear(),_monthFirst.getUTCMonth()];
|
196
|
+
}
|
197
|
+
});
|
198
|
+
HCalendar.implement(HDateTime);
|
File without changes
|
@@ -0,0 +1,108 @@
|
|
1
|
+
.calendar_control {
|
2
|
+
position: absolute;
|
3
|
+
left: 0px; top: 0px; right: 1px; bottom: 1px;
|
4
|
+
border: 1px solid #999;
|
5
|
+
}
|
6
|
+
.calendar_head {
|
7
|
+
position: absolute;
|
8
|
+
left: 0px; top: 0px; right: 0px; height: 20px;
|
9
|
+
}
|
10
|
+
.calendar_head_prev_month,
|
11
|
+
.calendar_head_next_month {
|
12
|
+
position: absolute;
|
13
|
+
top: 2px; width: 16px; height: 16px;
|
14
|
+
font-size: 0; line-height: 0;
|
15
|
+
line-height: 20px;
|
16
|
+
cursor: pointer;
|
17
|
+
background-image: #{this.getCssFilePath('calendar_arrows.png')};
|
18
|
+
}
|
19
|
+
.calendar_head_prev_month {
|
20
|
+
background-position: 0px 0px;
|
21
|
+
left: 2px;
|
22
|
+
}
|
23
|
+
.calendar_head_next_month {
|
24
|
+
background-position: -16px 0px;
|
25
|
+
right: 2px;
|
26
|
+
}
|
27
|
+
.calendar_head_prev_month:hover {
|
28
|
+
background-position: 0px -16px;
|
29
|
+
}
|
30
|
+
.calendar_head_next_month:hover {
|
31
|
+
background-position: -16px -16px;
|
32
|
+
}
|
33
|
+
.calendar_head_prev_month:active,
|
34
|
+
.calendar_head_next_month:active {
|
35
|
+
background-color: #fff;
|
36
|
+
}
|
37
|
+
.calender_head_month_year {
|
38
|
+
position: absolute;
|
39
|
+
top: 0px; left: 20px; right: 20px; height: 20px;
|
40
|
+
color: #000;
|
41
|
+
font-family: Arial, sans-serif;
|
42
|
+
font-weight: bold;
|
43
|
+
font-size: 13px;
|
44
|
+
line-height: 20px;
|
45
|
+
vertical-align: middle;
|
46
|
+
text-align: center;
|
47
|
+
}
|
48
|
+
.calendar_weekdays {
|
49
|
+
position: absolute;
|
50
|
+
top: 20px; left: 0px; right: 0px; height: 15px;
|
51
|
+
}
|
52
|
+
.calendar_weekdays div {
|
53
|
+
position: absolute;
|
54
|
+
top: 0px; height: 15px; width: 25px;
|
55
|
+
color: #000;
|
56
|
+
font-family: Arial, sans-serif;
|
57
|
+
font-size: 11px;
|
58
|
+
line-height: 15px;
|
59
|
+
vertical-align: middle;
|
60
|
+
text-align: center;
|
61
|
+
}
|
62
|
+
.calendar_weeks {
|
63
|
+
position: absolute;
|
64
|
+
top: 34px; left: 0px; right: 2px; bottom: 2px;
|
65
|
+
}
|
66
|
+
.calendar_weeks_week_row {
|
67
|
+
position: absolute;
|
68
|
+
left: 0px; right: 0px;
|
69
|
+
}
|
70
|
+
.calendar_weeks_week_col_no,
|
71
|
+
.calendar_weeks_week_col_sel,
|
72
|
+
.calendar_weeks_week_col_wk,
|
73
|
+
.calendar_weeks_week_col_yes {
|
74
|
+
position: absolute;
|
75
|
+
text-decoration: none;
|
76
|
+
top: 0px;
|
77
|
+
font-family: Arial, sans-serif;
|
78
|
+
font-size: 15px;
|
79
|
+
vertical-align: middle;
|
80
|
+
text-align: center;
|
81
|
+
cursor: pointer;
|
82
|
+
}
|
83
|
+
.calendar_weeks_week_col_wk {
|
84
|
+
color: #000;
|
85
|
+
cursor: default;
|
86
|
+
}
|
87
|
+
.calendar_weeks_week_col_no {
|
88
|
+
color: #666;
|
89
|
+
border-left: 1px solid #999;
|
90
|
+
border-top: 1px solid #999;
|
91
|
+
}
|
92
|
+
.calendar_weeks_week_col_no:hover {
|
93
|
+
background-color: #fff;
|
94
|
+
color: #000;
|
95
|
+
}
|
96
|
+
.calendar_weeks_week_col_yes,
|
97
|
+
.calendar_weeks_week_col_sel {
|
98
|
+
color: #000;
|
99
|
+
background-color: #ddd;
|
100
|
+
font-weight: bold;
|
101
|
+
border-left: 1px solid #666;
|
102
|
+
border-top: 1px solid #666;
|
103
|
+
}
|
104
|
+
.calendar_weeks_week_col_sel,
|
105
|
+
.calendar_weeks_week_col_yes:hover {
|
106
|
+
background-color: #fff;
|
107
|
+
}
|
108
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class="calendar_control" id="control#{_ID}">
|
2
|
+
<div class="calendar_head">
|
3
|
+
<div class="calendar_head_prev_month" onclick="HSystem.views[#{this.viewId}].prevMonth();"></div>
|
4
|
+
<div class="calender_head_month_year" id="state#{_ID}"></div>
|
5
|
+
<div class="calendar_head_next_month" onclick="HSystem.views[#{this.viewId}].nextMonth();"></div>
|
6
|
+
</div>
|
7
|
+
<div class="calendar_weekdays" id="label#{_ID}"></div>
|
8
|
+
<div class="calendar_weeks" id="value#{_ID}"></div>
|
9
|
+
</div>
|
Binary file
|
Binary file
|
@@ -0,0 +1,247 @@
|
|
1
|
+
/* RSence
|
2
|
+
* Copyright 2009 Riassence Inc.
|
3
|
+
* http://riassence.com/
|
4
|
+
*
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
7
|
+
*/
|
8
|
+
|
9
|
+
|
10
|
+
/*** = Description
|
11
|
+
** Auxiliary class for time handling.
|
12
|
+
***/
|
13
|
+
var//RSence.DateTime
|
14
|
+
HDateTime = HClass.extend({
|
15
|
+
msWeek: 604800000,
|
16
|
+
msDay: 86400000,
|
17
|
+
msHour: 3600000,
|
18
|
+
msMinute: 60000,
|
19
|
+
months_localized: [
|
20
|
+
'January', 'February', 'March', 'April', 'May', 'June', 'July',
|
21
|
+
'August', 'September', 'October', 'November', 'December'
|
22
|
+
],
|
23
|
+
|
24
|
+
/** = Description
|
25
|
+
* Returns month name of the given date.
|
26
|
+
*
|
27
|
+
* = Parameters
|
28
|
+
* +_date+:: Date to return month name from.
|
29
|
+
*
|
30
|
+
* = Returns
|
31
|
+
* Month name
|
32
|
+
*
|
33
|
+
**/
|
34
|
+
monthName: function(_date){
|
35
|
+
_date = (_date instanceof Date)?_date:this.date();
|
36
|
+
return this.months_localized[_date.getUTCMonth()];
|
37
|
+
},
|
38
|
+
|
39
|
+
/** = Description
|
40
|
+
* Returns week number for date given as input.
|
41
|
+
*
|
42
|
+
* = Parameters
|
43
|
+
* +_date+:: Date to return week number from.
|
44
|
+
*
|
45
|
+
* = Returns
|
46
|
+
* Number of the week.
|
47
|
+
*
|
48
|
+
**/
|
49
|
+
week: function(_date){
|
50
|
+
_date = (_date instanceof Date)?_date:this.date();
|
51
|
+
var _firstDateOfYear = this.firstDateOfYear(_date),
|
52
|
+
_firstWeekOfYear = this.firstDateOfWeek(_firstDateOfYear);
|
53
|
+
if(_firstWeekOfYear.getUTCDate()<=28){
|
54
|
+
_firstWeekOfYear = new Date(_firstWeekOfYear.getTime()+this.msWeek-this.tzMs(_firstWeekOfYear));
|
55
|
+
}
|
56
|
+
var _week = Math.ceil(
|
57
|
+
( ( ( _date.getTime() - _firstWeekOfYear - this.tzMs(_date) ) / this.msDay ) + _firstDateOfYear.getUTCDay() + 1 ) / 7
|
58
|
+
);
|
59
|
+
if((_week === 53) && (this.firstDateOfWeek(this.lastDateOfYear(_date)).getUTCDate() > 28 )){
|
60
|
+
_week = 1;
|
61
|
+
}
|
62
|
+
return _week;
|
63
|
+
},
|
64
|
+
|
65
|
+
/** = Description
|
66
|
+
* Returns day of the month for the date given as input.
|
67
|
+
*
|
68
|
+
* = Parameters
|
69
|
+
* +_date+:: Date to return day of the month.
|
70
|
+
*
|
71
|
+
* = Returns
|
72
|
+
* Day of the month
|
73
|
+
*
|
74
|
+
**/
|
75
|
+
mday: function(_date){
|
76
|
+
_date = (_date instanceof Date)?_date:this.date();
|
77
|
+
return _date.getUTCDate();
|
78
|
+
},
|
79
|
+
|
80
|
+
/** = Description
|
81
|
+
* Returns month number for the date given as input.
|
82
|
+
* Note that months are numbered from 0 to 11.
|
83
|
+
*
|
84
|
+
* = Parameters
|
85
|
+
* +_date+:: Date to return month number from.
|
86
|
+
*
|
87
|
+
* = Returns
|
88
|
+
* Number of the month 0 (January) to 11 (December).
|
89
|
+
*
|
90
|
+
**/
|
91
|
+
month: function(_date){
|
92
|
+
_date = (_date instanceof Date)?_date:this.date();
|
93
|
+
return _date.getUTCMonth();
|
94
|
+
},
|
95
|
+
|
96
|
+
/** = Description
|
97
|
+
* Returns year for given date.
|
98
|
+
*
|
99
|
+
* = Parameters
|
100
|
+
* +_date+:: Date to return year from.
|
101
|
+
*
|
102
|
+
* = Returns
|
103
|
+
* Year
|
104
|
+
*
|
105
|
+
**/
|
106
|
+
year: function(_date){
|
107
|
+
_date = (_date instanceof Date)?_date:this.date();
|
108
|
+
return _date.getUTCFullYear();
|
109
|
+
},
|
110
|
+
|
111
|
+
/** = Description
|
112
|
+
* Returns the timezone offset in milliseconds.
|
113
|
+
*
|
114
|
+
* = Parameters
|
115
|
+
* +_date+:: The date to get timezone offset from.
|
116
|
+
*
|
117
|
+
* = Returns
|
118
|
+
* Timezone offset in milliseconds.
|
119
|
+
*
|
120
|
+
**/
|
121
|
+
tzMs: function(_date){
|
122
|
+
return _date.getTimezoneOffset()*this.msMinute;
|
123
|
+
},
|
124
|
+
|
125
|
+
/** = Description
|
126
|
+
* Returns a Date instance for epoch given in seconds.
|
127
|
+
*
|
128
|
+
* = Parameters
|
129
|
+
* +epoch_seconds+:: Point of time given in seconds
|
130
|
+
* since 1 January 1970 00:00:00 UTC.
|
131
|
+
*
|
132
|
+
* = Returns
|
133
|
+
* Date object
|
134
|
+
*
|
135
|
+
**/
|
136
|
+
date: function(epoch_seconds){
|
137
|
+
epoch_seconds = (typeof epoch_seconds === 'number')?epoch_seconds:this.value;
|
138
|
+
var _date = new Date(epoch_seconds*1000);
|
139
|
+
return _date;
|
140
|
+
},
|
141
|
+
|
142
|
+
/** = Description
|
143
|
+
* Returns a Date object with first millisecond of the year.
|
144
|
+
*
|
145
|
+
* = Parameters
|
146
|
+
* +_date+:: The date to get the first millisecond of the same year.
|
147
|
+
*
|
148
|
+
* = Returns
|
149
|
+
* The Date object for the first millisecond of the year
|
150
|
+
*
|
151
|
+
**/
|
152
|
+
firstDateOfYear: function(_date){
|
153
|
+
_date = (_date instanceof Date)?_date:this.date();
|
154
|
+
var _date1 = new Date( _date.getUTCFullYear(), 0, 1 ),
|
155
|
+
_date2 = new Date( _date1.getTime() - this.tzMs(_date1) );
|
156
|
+
return _date2;
|
157
|
+
},
|
158
|
+
|
159
|
+
/** = Description
|
160
|
+
* Get last millisecond of the input given date's year as a Date object.
|
161
|
+
*
|
162
|
+
* = Parameters
|
163
|
+
* +_date+:: The last millisecond of the year on the date given.
|
164
|
+
*
|
165
|
+
* = Returns
|
166
|
+
* Last millisecond of the year as a Date object.
|
167
|
+
*
|
168
|
+
**/
|
169
|
+
lastDateOfYear: function(_date){
|
170
|
+
_date = (_date instanceof Date)?_date:this.date();
|
171
|
+
var _date1 = new Date( new Date( _date.getUTCFullYear()+1, 0, 1 ) - 1 ),
|
172
|
+
_date2 = new Date( _date1.getTime() - this.tzMs(_date1) );
|
173
|
+
return _date2;
|
174
|
+
},
|
175
|
+
|
176
|
+
/** = Description
|
177
|
+
* Returns the first millisecond of the input given date's month.
|
178
|
+
*
|
179
|
+
* = Parameters
|
180
|
+
* +_date+:: The date to get the first millisecond of the month
|
181
|
+
*
|
182
|
+
* = Returns
|
183
|
+
* The first millisecond on the given date's month as a Date object.
|
184
|
+
*
|
185
|
+
**/
|
186
|
+
firstDateOfMonth: function(_date){
|
187
|
+
_date = (_date instanceof Date)?_date:this.date();
|
188
|
+
var _date1 = new Date( _date.getUTCFullYear(), _date.getUTCMonth(), 1 ),
|
189
|
+
_date2 = new Date( _date1.getTime() - this.tzMs(_date1) );
|
190
|
+
return _date2;
|
191
|
+
},
|
192
|
+
|
193
|
+
/** = Description
|
194
|
+
* Returns the last millisecond of the input given date's month.
|
195
|
+
*
|
196
|
+
* = Parameters
|
197
|
+
* +_date+:: The date to get the last millisecond of the month.
|
198
|
+
*
|
199
|
+
* = Returns
|
200
|
+
* The last millisecond of the given date's month as a Date object.
|
201
|
+
*
|
202
|
+
**/
|
203
|
+
lastDateOfMonth: function(_date){
|
204
|
+
_date = (_date instanceof Date)?_date:this.date();
|
205
|
+
var _date1 = new Date( new Date( _date.getUTCFullYear(), _date.getUTCMonth()+1, 1 ) - 1 ),
|
206
|
+
_date2 = new Date( _date1.getTime() - this.tzMs(_date1) );
|
207
|
+
return _date2;
|
208
|
+
},
|
209
|
+
|
210
|
+
/** = Description
|
211
|
+
* Returns the first millisecond when the week starts for date given as input.
|
212
|
+
*
|
213
|
+
* = Parameters
|
214
|
+
* +_date+:: The date to get the first millisecond.
|
215
|
+
*
|
216
|
+
* = Returns
|
217
|
+
* Date for the first millisecond of the week.
|
218
|
+
*
|
219
|
+
**/
|
220
|
+
firstDateOfWeek: function(_date){
|
221
|
+
_date = (_date instanceof Date)?_date:this.date();
|
222
|
+
var _wday = _date.getUTCDay();
|
223
|
+
if(_wday===0){
|
224
|
+
_wday = 7;
|
225
|
+
}
|
226
|
+
var _dateMs = ((_wday-1)*this.msDay),
|
227
|
+
_date1 = new Date( _date.getTime() - _dateMs ),
|
228
|
+
_date2 = new Date( _date1.getTime() );
|
229
|
+
return _date2;
|
230
|
+
},
|
231
|
+
|
232
|
+
/** = Description
|
233
|
+
* Returns the last millisecond of the week for the given date.
|
234
|
+
*
|
235
|
+
* = Parameters
|
236
|
+
* +_date+:: The date to get the last millisecond
|
237
|
+
*
|
238
|
+
* = Returns
|
239
|
+
* The last millisecond of the week as a Date object.
|
240
|
+
*
|
241
|
+
**/
|
242
|
+
lastDateOfWeek: function(_date){
|
243
|
+
var _firstDateOfWeek = this.firstDateOfWeek(_date),
|
244
|
+
_lastDateOfWeek = new Date( _firstDateOfWeek.getTime() + this.msWeek - this.msDay - 1 );
|
245
|
+
return _lastDateOfWeek;
|
246
|
+
}
|
247
|
+
});
|
File without changes
|
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
.timesheet_hours_col {
|
2
|
+
position: absolute;
|
3
|
+
top: 0px; left: 0px; width: 32px;
|
4
|
+
font-family: Arial, sans-serif;
|
5
|
+
font-size: 11px;
|
6
|
+
color: #666;
|
7
|
+
vertical-align: middle;
|
8
|
+
text-align: right;
|
9
|
+
}
|
10
|
+
.timesheet_hours_row {
|
11
|
+
position: absolute;
|
12
|
+
left: 0px; width: 32px;
|
13
|
+
}
|
14
|
+
.timesheet_lines_col {
|
15
|
+
position: absolute;
|
16
|
+
top: 0px; left: 36px; right: 0px;
|
17
|
+
border-left: 1px solid #aaa;
|
18
|
+
border-bottom: 1px solid #aaa;
|
19
|
+
border-right: 1px solid #aaa;
|
20
|
+
}
|
21
|
+
.timesheet_lines_row0,
|
22
|
+
.timesheet_lines_row1 {
|
23
|
+
position: absolute;
|
24
|
+
left: 0px; right: 0px; height: 1px;
|
25
|
+
line-height: 1px; font-size: 0px;
|
26
|
+
background-color: #ccc;
|
27
|
+
}
|
28
|
+
.timesheet_lines_row0 {
|
29
|
+
background-color: #aaa;
|
30
|
+
}
|