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,274 @@
|
|
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
|
+
** Editor control for HTimeSheet. Editor can access the HTimeSheetItems
|
11
|
+
** on HTimeSheet.
|
12
|
+
***/
|
13
|
+
var//RSence.DateTime
|
14
|
+
HTimeSheetEditor = HControl.extend({
|
15
|
+
timeSheetItem: false,
|
16
|
+
createId: 0,
|
17
|
+
|
18
|
+
/** = Description
|
19
|
+
* Selects a HTimeSheetItem to edit.
|
20
|
+
*
|
21
|
+
* = Parameters
|
22
|
+
* +_timeSheetItem+:: A HTimeSheetItem to edit.
|
23
|
+
*
|
24
|
+
**/
|
25
|
+
setTimeSheetItem: function(_timeSheetItem){
|
26
|
+
this.timeSheetItem = _timeSheetItem;
|
27
|
+
this.textField.setValue( _timeSheetItem.label );
|
28
|
+
},
|
29
|
+
|
30
|
+
/** = Description
|
31
|
+
* Opens HTimeSheetEditor for the selected HTimeSheetItem.
|
32
|
+
*
|
33
|
+
**/
|
34
|
+
show: function(){
|
35
|
+
if(this.timeSheetItem!==false){
|
36
|
+
var _newRect = HRect.nu(this.timeSheetItem.rect);
|
37
|
+
if(_newRect.height < 40){
|
38
|
+
_newRect.setHeight( 40 );
|
39
|
+
}
|
40
|
+
if(_newRect.width < 200){
|
41
|
+
_newRect.setWidth( 200 );
|
42
|
+
}
|
43
|
+
var _timeSheetItemParentRect = this.timeSheetItem.parent.rect;
|
44
|
+
_newRect.offsetBy( _timeSheetItemParentRect.left, _timeSheetItemParentRect.top );
|
45
|
+
this.setRect( _newRect );
|
46
|
+
this.drawRect();
|
47
|
+
}
|
48
|
+
this.base();
|
49
|
+
},
|
50
|
+
|
51
|
+
/** = Description
|
52
|
+
* Hides the HTimeSheetEditor.
|
53
|
+
*
|
54
|
+
**/
|
55
|
+
hide: function(){
|
56
|
+
this.base();
|
57
|
+
},
|
58
|
+
origParent: null,
|
59
|
+
|
60
|
+
/** = Description
|
61
|
+
* Creates a new item.
|
62
|
+
*
|
63
|
+
* = Parameters
|
64
|
+
* +_properties+:: Properties for the new item.
|
65
|
+
*
|
66
|
+
**/
|
67
|
+
createItem: function( _properties ){
|
68
|
+
if(_properties['id'] === undefined){
|
69
|
+
this.createId--;
|
70
|
+
_properties['id'] = this.createId;
|
71
|
+
}
|
72
|
+
var _value = COMM.Values.clone( this.value ),
|
73
|
+
_create = _value['create'],
|
74
|
+
i = 0,
|
75
|
+
_item = false;
|
76
|
+
for(;i<_create.length;i++){
|
77
|
+
if(_create[i]['id'] === _properties['id']){
|
78
|
+
_item = _create[i];
|
79
|
+
break;
|
80
|
+
}
|
81
|
+
}
|
82
|
+
if(!_item){
|
83
|
+
_create.push( _properties );
|
84
|
+
}
|
85
|
+
else {
|
86
|
+
for( var _key in _properties ){
|
87
|
+
_item[_key] = _properties[_key];
|
88
|
+
}
|
89
|
+
}
|
90
|
+
this.setValue( _value );
|
91
|
+
},
|
92
|
+
|
93
|
+
/** = Description
|
94
|
+
* Modifies an item.
|
95
|
+
*
|
96
|
+
* = Parameters
|
97
|
+
* +_properties+:: Properties to change.
|
98
|
+
*
|
99
|
+
**/
|
100
|
+
modifyItem: function( _properties ){
|
101
|
+
if(_properties['id'] < 0){
|
102
|
+
this.createItem( _properties );
|
103
|
+
}
|
104
|
+
else {
|
105
|
+
var _value = COMM.Values.clone( this.value ),
|
106
|
+
_modify = _value['modify'],
|
107
|
+
i = 0,
|
108
|
+
_item = false;
|
109
|
+
for(;i<_modify.length;i++){
|
110
|
+
if(_modify[i]['id'] === _properties['id']){
|
111
|
+
_item = _modify[i];
|
112
|
+
break;
|
113
|
+
}
|
114
|
+
}
|
115
|
+
if(!_item){
|
116
|
+
_modify.push( _properties );
|
117
|
+
}
|
118
|
+
else {
|
119
|
+
for( var _key in _properties ){
|
120
|
+
_item[_key] = _properties[_key];
|
121
|
+
}
|
122
|
+
}
|
123
|
+
this.setValue( _value );
|
124
|
+
}
|
125
|
+
},
|
126
|
+
|
127
|
+
/** = Description
|
128
|
+
* Deletes an item with id given as parameter.
|
129
|
+
*
|
130
|
+
* = Parameters
|
131
|
+
* +_itemId+:: Id of an item to be deleted.
|
132
|
+
*
|
133
|
+
**/
|
134
|
+
deleteItem: function( _itemId ){
|
135
|
+
var _value = COMM.Values.clone( this.value );
|
136
|
+
if(_value['delete'].indexOf( _itemId ) === -1){
|
137
|
+
_value['delete'].push( _itemId );
|
138
|
+
this.setValue( _value );
|
139
|
+
}
|
140
|
+
},
|
141
|
+
|
142
|
+
/** = Description
|
143
|
+
* Refreshes the values by iterating through value['response'] and checking
|
144
|
+
* the new values from the response array.
|
145
|
+
*
|
146
|
+
**/
|
147
|
+
refreshValue: function(){
|
148
|
+
var _value = COMM.Values.clone( this.value ),
|
149
|
+
i = 0,
|
150
|
+
_parent = this.origParent?this.origParent:this.parent,
|
151
|
+
_listItemViews = _parent.listItemViews,
|
152
|
+
_response = _value['response'],
|
153
|
+
_item,
|
154
|
+
_itemValue,
|
155
|
+
_responseItem,
|
156
|
+
j, k;
|
157
|
+
for( ; i < _response.length; i++ ){
|
158
|
+
for( j = 0; j < _listItemViews.length; j++ ){
|
159
|
+
_responseItem = _response[i];
|
160
|
+
_item = _listItemViews[j];
|
161
|
+
if( _item.value['id'] === _responseItem['id'] ){
|
162
|
+
_itemValue = COMM.Values.clone( _item.value );
|
163
|
+
if(_responseItem['modify'] !== undefined){
|
164
|
+
for( k in _responseItem['modify'] ){
|
165
|
+
_itemValue[k] = _responseItem['modify'][k];
|
166
|
+
}
|
167
|
+
_item.setValue( _itemValue );
|
168
|
+
}
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
_value['response'] = [];
|
173
|
+
this.setValue( _value );
|
174
|
+
},
|
175
|
+
|
176
|
+
/** = Description
|
177
|
+
* Draws ok, delete and cancel buttons.
|
178
|
+
*
|
179
|
+
**/
|
180
|
+
drawSubviews: function(){
|
181
|
+
this.origParent = this.parent;
|
182
|
+
this.remove();
|
183
|
+
this.origParent.parent.addView( this );
|
184
|
+
ELEM.append( this.elemId, this.parent.elemId );
|
185
|
+
this.textField = HTextArea.nu(
|
186
|
+
[0,0,null,20,0,26],
|
187
|
+
this, {
|
188
|
+
value: ''
|
189
|
+
}
|
190
|
+
);
|
191
|
+
this.delButton = HButton.extend({
|
192
|
+
|
193
|
+
/** = Description
|
194
|
+
* Click function for delete button. Will call delete function on click
|
195
|
+
* for the current item.
|
196
|
+
*
|
197
|
+
**/
|
198
|
+
click: function(){
|
199
|
+
this.parent.hide();
|
200
|
+
var _sheetItem = this.parent.timeSheetItem;
|
201
|
+
if(_sheetItem!==false){
|
202
|
+
this.parent.deleteItem( _sheetItem.value['id'] );
|
203
|
+
_sheetItem.die();
|
204
|
+
var _parent = this.parent.origParent?this.parent.origParent:this.parent.parent;
|
205
|
+
var _sheetIdx = _parent.listItemViews.indexOf( _sheetItem );
|
206
|
+
_parent.listItemViews.splice( _sheetIdx, 1 );
|
207
|
+
this.parent.timeSheetItem = false;
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}).nu(
|
211
|
+
[2,null,60,24,null,0],
|
212
|
+
this, {
|
213
|
+
label: 'Delete',
|
214
|
+
events: {
|
215
|
+
click: true
|
216
|
+
}
|
217
|
+
}
|
218
|
+
);
|
219
|
+
this.okButton = HButton.extend({
|
220
|
+
|
221
|
+
/** = Description
|
222
|
+
* Click function for okButton will ok the modifications for the current item.
|
223
|
+
*
|
224
|
+
**/
|
225
|
+
click: function(){
|
226
|
+
this.parent.hide();
|
227
|
+
if(this.parent.timeSheetItem!==false){
|
228
|
+
var _label = this.parent.textField.getTextFieldValue(),
|
229
|
+
_id = this.parent.timeSheetItem.value['id'],
|
230
|
+
_data = this.parent.timeSheetItem.value;
|
231
|
+
_data['label'] = _label;
|
232
|
+
this.parent.modifyItem( _data );
|
233
|
+
this.parent.timeSheetItem.setTimeSheetItemLabel( _label );
|
234
|
+
this.parent.timeSheetItem = false;
|
235
|
+
}
|
236
|
+
}
|
237
|
+
}).nu(
|
238
|
+
[null,null,60,24,2,0],
|
239
|
+
this, {
|
240
|
+
label: 'Save',
|
241
|
+
events: {
|
242
|
+
click: true
|
243
|
+
}
|
244
|
+
}
|
245
|
+
);
|
246
|
+
this.cancelButton = HButton.extend({
|
247
|
+
/** = Description
|
248
|
+
* Click function for cancel button will cancel
|
249
|
+
* the modifications for the current item.
|
250
|
+
*
|
251
|
+
**/
|
252
|
+
click: function(){
|
253
|
+
this.parent.hide();
|
254
|
+
if(this.timeSheetItem!==false){
|
255
|
+
this.parent.timeSheetItem = false;
|
256
|
+
}
|
257
|
+
}
|
258
|
+
}).nu(
|
259
|
+
[null,null,60,24,66,0],
|
260
|
+
this, {
|
261
|
+
label: 'Cancel',
|
262
|
+
events: {
|
263
|
+
click: true
|
264
|
+
}
|
265
|
+
}
|
266
|
+
);
|
267
|
+
this.textField.setStyle('text-align','center');
|
268
|
+
this.textField.setStyle('line-height','12px');
|
269
|
+
this.textField.setStyle('font-size','12px');
|
270
|
+
this.textField.setStyle('font-family','Arial, sans-serif');
|
271
|
+
this.origParent.setEditor( this );
|
272
|
+
}
|
273
|
+
});
|
274
|
+
|
@@ -0,0 +1,208 @@
|
|
1
|
+
/* RSence
|
2
|
+
* Copyright 2006 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
|
+
**
|
12
|
+
** Simple application template.
|
13
|
+
**
|
14
|
+
** Depends on <HSystem>
|
15
|
+
**
|
16
|
+
** HApplication instances are good namespaces to bind your client-side logic to.
|
17
|
+
** Feel free to extend HApplication to suit your needs. The primary default
|
18
|
+
** purpose is root-level component (<HView>) management and being the
|
19
|
+
** root controller for <onIdle> events.
|
20
|
+
**
|
21
|
+
** = Instance members
|
22
|
+
** +views+:: A list of child component ids bound to it via +HView+ and +HSystem+
|
23
|
+
** +parent+:: Usually +HSystem+.
|
24
|
+
** +parents+:: An array containing parent instances. In this case, just +HSystem+.
|
25
|
+
** +isBusy+:: A flag that is true when the app is doing onIdle events or stopped.
|
26
|
+
**
|
27
|
+
** = Usage
|
28
|
+
** Creates the +HApplication+ instance +myApp+, makes a +HWindow+ instance
|
29
|
+
** as its first view.
|
30
|
+
** var myApp = HApplication.nu(10,'Sample Application');
|
31
|
+
** HWindow.nu( [10,10,320,200], myApp, {label:'myWin'} );
|
32
|
+
**
|
33
|
+
***/
|
34
|
+
var//RSence.Foundation
|
35
|
+
HApplication = HClass.extend({
|
36
|
+
|
37
|
+
elemId: 0,
|
38
|
+
|
39
|
+
/** = Description
|
40
|
+
*
|
41
|
+
* = Parameters
|
42
|
+
* All parameters are optional.
|
43
|
+
*
|
44
|
+
* +_priority+:: The priority, a number between 1 and Infinity. Smaller
|
45
|
+
* number means higher priority, affects onIdle polling.
|
46
|
+
*
|
47
|
+
* +_label+:: A label for the application; for process managers.
|
48
|
+
*
|
49
|
+
**/
|
50
|
+
constructor: function(_priority, _label){
|
51
|
+
|
52
|
+
// Special null viewId for HApplication instances,
|
53
|
+
// they share a system-level root view; the document object
|
54
|
+
this.viewId = null;
|
55
|
+
|
56
|
+
// storage for views
|
57
|
+
this.views = [];
|
58
|
+
|
59
|
+
// storage for dom element id's in view, not utilized in HApplication by default
|
60
|
+
this.markupElemIds = [];
|
61
|
+
|
62
|
+
// Views in Z order. The actual Z data is stored in HSystem, this is just a
|
63
|
+
// reference to that array.
|
64
|
+
this.viewsZOrder = HSystem.viewsZOrder;
|
65
|
+
|
66
|
+
// Finalize initialization via HSystem
|
67
|
+
HSystem.addApp(this,_priority);
|
68
|
+
|
69
|
+
if(_label){
|
70
|
+
this.label = _label;
|
71
|
+
}
|
72
|
+
else{
|
73
|
+
this.label = 'ProcessID='+this.appId;
|
74
|
+
}
|
75
|
+
},
|
76
|
+
|
77
|
+
/** = Description
|
78
|
+
* Used by addView to build a +self.parents+ array of parent classes.
|
79
|
+
*
|
80
|
+
* = Parameters
|
81
|
+
* +_viewId+:: The target view's ID.
|
82
|
+
**/
|
83
|
+
buildParents: function(_viewId){
|
84
|
+
var _view = HSystem.views[_viewId],
|
85
|
+
i = 0;
|
86
|
+
_view.parent = this;
|
87
|
+
_view.parents = [];
|
88
|
+
for(; i < this.parents.length; i++) {
|
89
|
+
_view.parents.push(this.parents[i]);
|
90
|
+
}
|
91
|
+
_view.parents.push(this);
|
92
|
+
},
|
93
|
+
|
94
|
+
/** = Description
|
95
|
+
* Adds a view to the app, +HView+ defines an indentical structure for subviews.
|
96
|
+
*
|
97
|
+
* Called from inside the +HView+ constructor and should be automatic for all
|
98
|
+
* components that accept the +_parent+ parameter, usually the second argument,
|
99
|
+
* after the +HRect+ instance.
|
100
|
+
*
|
101
|
+
* = Parameters
|
102
|
+
* +_view+:: Usually +this+ inside +HView+ -derived components.
|
103
|
+
*
|
104
|
+
* = Returns
|
105
|
+
* The view ID.
|
106
|
+
*
|
107
|
+
**/
|
108
|
+
addView: function(_view) {
|
109
|
+
|
110
|
+
var _viewId = HSystem.addView(_view);
|
111
|
+
this.views.push(_viewId);
|
112
|
+
|
113
|
+
this.buildParents(_viewId);
|
114
|
+
this.viewsZOrder.push(_viewId);
|
115
|
+
|
116
|
+
return _viewId;
|
117
|
+
},
|
118
|
+
|
119
|
+
/** = Description
|
120
|
+
* Removes the view of the given +_viewId+.
|
121
|
+
*
|
122
|
+
* Call this if you need to remove a child view from its parent without
|
123
|
+
* destroying its view, making it in effect a view without parent.
|
124
|
+
* Useful, for example, for moving a view from one parent component to
|
125
|
+
* another when dragging a component to a droppable container.
|
126
|
+
*
|
127
|
+
* = Parameters
|
128
|
+
* +_viewId+:: The view ID.
|
129
|
+
*
|
130
|
+
**/
|
131
|
+
removeView: function(_viewId){
|
132
|
+
HSystem.views[_viewId].remove();
|
133
|
+
},
|
134
|
+
|
135
|
+
/** = Description
|
136
|
+
* Removes and destructs the view of the given +_viewId+.
|
137
|
+
*
|
138
|
+
* Call this if you need to remove a child view from its parent, destroying
|
139
|
+
* its child views recursively and removing all of the DOM elements too.
|
140
|
+
*
|
141
|
+
* = Parameters
|
142
|
+
* +_viewId+:: The view ID.
|
143
|
+
*
|
144
|
+
**/
|
145
|
+
destroyView: function(_viewId){
|
146
|
+
HSystem.views[_viewId].die();
|
147
|
+
},
|
148
|
+
|
149
|
+
/** = Description
|
150
|
+
* The destructor of the +HApplication+ instance.
|
151
|
+
*
|
152
|
+
* Stops this application and destroys all its views recursively.
|
153
|
+
*
|
154
|
+
**/
|
155
|
+
die: function(){
|
156
|
+
HSystem.killApp(this.appId, false);
|
157
|
+
},
|
158
|
+
|
159
|
+
|
160
|
+
/** = Description
|
161
|
+
* Destructs all views but doesn't destroy the +HApplication+ instance.
|
162
|
+
*
|
163
|
+
* Destroys all the views added to this application but doesn't destroy the
|
164
|
+
* application itself.
|
165
|
+
*
|
166
|
+
**/
|
167
|
+
destroyAllViews: function(){
|
168
|
+
for(var i = 0; i < this.views.length; i++) {
|
169
|
+
HSystem.views[this.views[i]].die();
|
170
|
+
}
|
171
|
+
},
|
172
|
+
|
173
|
+
|
174
|
+
/* Calls the idle method of each view. Don't extend this method. */
|
175
|
+
_pollViews: function(){
|
176
|
+
var i, _viewId, _view;
|
177
|
+
for(i=0;i<this.views.length;i++){
|
178
|
+
_viewId = this.views[i];
|
179
|
+
_view = HSystem.views[_viewId];
|
180
|
+
if((_view!==null)&&(_view['onIdle']!==undefined)){
|
181
|
+
_view.onIdle();
|
182
|
+
}
|
183
|
+
}
|
184
|
+
},
|
185
|
+
|
186
|
+
/** Gets called by +HSystem+. It makes +onIdle+ extensions more failure
|
187
|
+
* resistant. Do not extend.
|
188
|
+
**/
|
189
|
+
_startIdle: function(){
|
190
|
+
HSystem.busyApps[ this.appId ] = true;
|
191
|
+
this.onIdle();
|
192
|
+
this._pollViews();
|
193
|
+
HSystem.busyApps[ this.appId ] = false;
|
194
|
+
},
|
195
|
+
|
196
|
+
/** = Description
|
197
|
+
* The receiver of the +onIdle+ "poll event". The app priority defines the interval.
|
198
|
+
*
|
199
|
+
* Extend this method, if you are going to perform regular actions in a app.
|
200
|
+
*
|
201
|
+
* Intended for "slow infinite loops".
|
202
|
+
*
|
203
|
+
**/
|
204
|
+
onIdle: function(){
|
205
|
+
/* Your code here */
|
206
|
+
}
|
207
|
+
});
|
208
|
+
HApplication.implement(HValueResponder.nu());
|
File without changes
|