rsence 2.0.0.0.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/INSTALL.rdoc +295 -0
- data/LICENSE +622 -0
- data/README.rdoc +24 -0
- data/VERSION +1 -0
- data/bin/build_client.rb +254 -0
- data/bin/help +6 -0
- data/bin/launch.rb +120 -0
- data/bin/rdoc.sh +2 -0
- data/bin/restart +6 -0
- data/bin/rsence +120 -0
- data/bin/run +6 -0
- data/bin/run.rb +6 -0
- data/bin/save +6 -0
- data/bin/start +6 -0
- data/bin/status +6 -0
- data/bin/stop +6 -0
- data/conf/config.ru +5 -0
- data/conf/default_conf.yaml +337 -0
- data/conf/default_strings.yaml +77 -0
- data/conf/local_conf.yaml +14 -0
- data/conf/unicorn.conf +78 -0
- data/js/comm/comm/autosync/autosync.js +18 -0
- data/js/comm/comm/autosync/js.inc +0 -0
- data/js/comm/comm/comm.js +195 -0
- data/js/comm/comm/js.inc +0 -0
- data/js/comm/comm/queue/js.inc +0 -0
- data/js/comm/comm/queue/queue.js +183 -0
- data/js/comm/comm/session/js.inc +0 -0
- data/js/comm/comm/session/session.js +51 -0
- data/js/comm/comm/sessionwatcher/js.inc +0 -0
- data/js/comm/comm/sessionwatcher/sessionwatcher.js +43 -0
- data/js/comm/comm/transporter/js.inc +0 -0
- data/js/comm/comm/transporter/transporter.js +257 -0
- data/js/comm/comm/urlresponder/js.inc +0 -0
- data/js/comm/comm/urlresponder/urlresponder.js +148 -0
- data/js/comm/comm/values/js.inc +0 -0
- data/js/comm/comm/values/values.js +432 -0
- data/js/comm/jsloader/js.inc +0 -0
- data/js/comm/jsloader/jsloader.js +114 -0
- data/js/comm/reloadapp/js.inc +0 -0
- data/js/comm/reloadapp/reloadapp.js +150 -0
- data/js/comm/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/comm/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/comm/sha/js.inc +0 -0
- data/js/comm/sha/sha.js +432 -0
- data/js/comm/values/value/js.inc +0 -0
- data/js/comm/values/value/value.js +182 -0
- data/js/comm/values/valuematrix/js.inc +0 -0
- data/js/comm/values/valuematrix/valuematrix.js +138 -0
- data/js/controls/button/button.js +57 -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 +47 -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/datetime/calendar/calendar.js +197 -0
- data/js/controls/datetime/calendar/js.inc +0 -0
- data/js/controls/datetime/calendar/themes/default/calendar.css +108 -0
- data/js/controls/datetime/calendar/themes/default/calendar.html +9 -0
- data/js/controls/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/controls/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/controls/datetime/datetimevalue/datetimevalue.js +246 -0
- data/js/controls/datetime/datetimevalue/js.inc +0 -0
- data/js/controls/datetime/timesheet/js.inc +0 -0
- data/js/controls/datetime/timesheet/themes/default/timesheet.css +30 -0
- data/js/controls/datetime/timesheet/themes/default/timesheet.html +2 -0
- data/js/controls/datetime/timesheet/timesheet.js +182 -0
- data/js/controls/datetime/timesheet_item/js.inc +0 -0
- data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
- data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
- data/js/controls/datetime/timesheet_item/timesheet_item.js +247 -0
- data/js/controls/datetime/timesheet_item_edit/js.inc +0 -0
- data/js/controls/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +62 -0
- data/js/controls/dialogs/alert_sheet/js.inc +0 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +36 -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 +83 -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 +108 -0
- data/js/controls/imageview/js.inc +0 -0
- data/js/controls/imageview/themes/default/blank.gif +0 -0
- data/js/controls/lists/checkboxlist/checkboxlist.js +170 -0
- data/js/controls/lists/checkboxlist/js.inc +0 -0
- data/js/controls/lists/listitems/js.inc +0 -0
- data/js/controls/lists/listitems/listitems.js +65 -0
- data/js/controls/lists/radiobuttonlist/js.inc +0 -0
- data/js/controls/lists/radiobuttonlist/radiobuttonlist.js +126 -0
- data/js/controls/passwordcontrol/js.inc +0 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +22 -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 +36 -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 +43 -0
- data/js/controls/radiobutton/js.inc +0 -0
- data/js/controls/radiobutton/radiobutton.js +41 -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 +356 -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 +40 -0
- data/js/controls/stepper/js.inc +0 -0
- data/js/controls/stepper/stepper.js +212 -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 +276 -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 +23 -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 +372 -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 +153 -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 +55 -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 +284 -0
- data/js/core/class/class.js +317 -0
- data/js/core/class/js.inc +0 -0
- data/js/core/elem/elem.js +1376 -0
- data/js/core/elem/js.inc +0 -0
- data/js/core/event/event.js +1021 -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/debugg/debugg.js +43 -0
- data/js/debugg/js.inc +0 -0
- data/js/foundation/application/application.js +209 -0
- data/js/foundation/application/js.inc +0 -0
- data/js/foundation/control/control.js +342 -0
- data/js/foundation/control/controldefaults/controldefaults.js +59 -0
- data/js/foundation/control/controldefaults/js.inc +0 -0
- data/js/foundation/control/dummyvalue/dummyvalue.js +50 -0
- data/js/foundation/control/dummyvalue/js.inc +0 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +494 -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 +713 -0
- data/js/foundation/control/eventresponder/js.inc +0 -0
- data/js/foundation/control/js.inc +0 -0
- data/js/foundation/control/valueresponder/js.inc +0 -0
- data/js/foundation/control/valueresponder/valueresponder.js +77 -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 +610 -0
- data/js/foundation/json_renderer/js.inc +0 -0
- data/js/foundation/json_renderer/json_renderer.js +231 -0
- data/js/foundation/system/js.inc +0 -0
- data/js/foundation/system/system.js +369 -0
- data/js/foundation/thememanager/js.inc +0 -0
- data/js/foundation/thememanager/thememanager.js +387 -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 +113 -0
- data/js/foundation/view/morphanimation/js.inc +0 -0
- data/js/foundation/view/morphanimation/morphanimation.js +236 -0
- data/js/foundation/view/view.js +1804 -0
- data/js/foundation/view/viewdefaults/js.inc +0 -0
- data/js/foundation/view/viewdefaults/viewdefaults.js +25 -0
- data/js/views/centerview/centerview.js +45 -0
- data/js/views/centerview/js.inc +0 -0
- data/js/views/inlineview/inlineview.js +14 -0
- data/js/views/inlineview/js.inc +0 -0
- data/js/views/scrollview/js.inc +0 -0
- data/js/views/scrollview/scrollview.js +39 -0
- data/lib/conf/default.rb +220 -0
- data/lib/conf/wizard.rb +303 -0
- data/lib/daemon/daemon.rb +293 -0
- data/lib/http/broker.rb +102 -0
- data/lib/http/rackup.rb +88 -0
- data/lib/http/request.rb +69 -0
- data/lib/http/response.rb +63 -0
- data/lib/plugins/gui_plugin.rb +129 -0
- data/lib/plugins/guiparser.rb +114 -0
- data/lib/plugins/plugin.rb +652 -0
- data/lib/plugins/plugin_plugins.rb +47 -0
- data/lib/plugins/plugin_sqlite_db.rb +72 -0
- data/lib/plugins/plugin_util.rb +96 -0
- data/lib/plugins/pluginmanager.rb +517 -0
- data/lib/plugins/servlet.rb +69 -0
- data/lib/session/msg.rb +291 -0
- data/lib/session/sessionmanager.rb +491 -0
- data/lib/session/sessionstorage.rb +314 -0
- data/lib/transporter/transporter.rb +254 -0
- data/lib/util/gzstring.rb +5 -0
- data/lib/values/hvalue.rb +323 -0
- data/lib/values/valuemanager.rb +152 -0
- data/plugins/client_pkg/client_pkg.rb +186 -0
- data/plugins/client_pkg/info.yaml +25 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +569 -0
- data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
- data/plugins/client_pkg/lib/client_pkg_serve.rb +210 -0
- data/plugins/client_pkg/log/build_log +0 -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 +150 -0
- data/plugins/index_html/tmpl/index.html +22 -0
- data/plugins/index_html/tmpl/startup_index.html +29 -0
- data/plugins/legacy/disabled +0 -0
- data/plugins/legacy/disabled- +0 -0
- data/plugins/legacy/info.yaml +22 -0
- data/plugins/legacy/legacy.rb +15 -0
- data/plugins/main/js/riassence_ns.js +87 -0
- data/plugins/main/main.rb +234 -0
- data/plugins/main/values.yaml +8 -0
- data/plugins/ticketservices/lib/common.rb +300 -0
- data/plugins/ticketservices/lib/favicon.rb +38 -0
- data/plugins/ticketservices/lib/file.rb +58 -0
- data/plugins/ticketservices/lib/img.rb +50 -0
- data/plugins/ticketservices/lib/objblob.rb +66 -0
- data/plugins/ticketservices/lib/rsrc.rb +34 -0
- data/plugins/ticketservices/lib/upload.rb +206 -0
- data/plugins/ticketservices/ticketservices.rb +268 -0
- data/var/db/.git_include +0 -0
- data/var/log/.git_include +0 -0
- data/var/run/.git_include +0 -0
- metadata +390 -0
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2010 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
|
+
** Define default HView setting here. Will be used, when no or invalid constructor
|
|
11
|
+
** options are supplied.
|
|
12
|
+
***/
|
|
13
|
+
HViewDefaults = HClass.extend({
|
|
14
|
+
|
|
15
|
+
/** The default label. A label is the "visual value" of a component that
|
|
16
|
+
* operates on a "hidden" value.
|
|
17
|
+
**/
|
|
18
|
+
label: "",
|
|
19
|
+
|
|
20
|
+
/** The default initial visibility of the component.
|
|
21
|
+
**/
|
|
22
|
+
visible: true
|
|
23
|
+
|
|
24
|
+
});
|
|
25
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2010 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
|
+
// Simple view for centering a view.
|
|
10
|
+
// The rect's left position is used as the minimum left position, the rects
|
|
11
|
+
// top and width are used as-is and the HCenterView itself is geometrically
|
|
12
|
+
// centered inside its parent by adjusting its "left" style property.
|
|
13
|
+
// Designed to be used as a root-level view, listens to the resize event and
|
|
14
|
+
// re-calculates the center position accordingly. Likely to evolve a lot still.
|
|
15
|
+
HCenterView = HControl.extend({
|
|
16
|
+
defaultEvents: {
|
|
17
|
+
resize: true
|
|
18
|
+
},
|
|
19
|
+
drawRect: function(_selfCalled){
|
|
20
|
+
this.base();
|
|
21
|
+
if(!_selfCalled){
|
|
22
|
+
this.resize();
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
minLeft: false,
|
|
26
|
+
resize: function(){
|
|
27
|
+
if(this.minLeft === false){
|
|
28
|
+
this.minLeft = this.rect.left;
|
|
29
|
+
}
|
|
30
|
+
var
|
|
31
|
+
_rect = this.rect,
|
|
32
|
+
_winSize = ELEM.windowSize(),
|
|
33
|
+
_winWidth = _winSize[0],
|
|
34
|
+
_winHeight = _winSize[1],
|
|
35
|
+
_rectWidth = _rect.width,
|
|
36
|
+
_rectWidthHalf = Math.floor(_rectWidth/2),
|
|
37
|
+
_winWidthHalf = Math.floor(_winWidth/2),
|
|
38
|
+
_left = _winWidthHalf - _rectWidthHalf;
|
|
39
|
+
if( _left < this.minLeft ){
|
|
40
|
+
_left = this.minLeft;
|
|
41
|
+
}
|
|
42
|
+
_rect.offsetTo( _left, _rect.top );
|
|
43
|
+
this.drawRect(true);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2010 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
|
+
// Simple view for inline content (relative positioning and inline view instead of block)
|
|
10
|
+
HInlineView = HView.extend({
|
|
11
|
+
isAbsolute: false,
|
|
12
|
+
isRelative: true,
|
|
13
|
+
displayMode: 'inline'
|
|
14
|
+
});
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2010 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
|
+
// Simple view for scrolling purposes.
|
|
10
|
+
// Uses two special options for setting scroll bar behavior:
|
|
11
|
+
// - scrollX: true | false | 'auto'
|
|
12
|
+
// - scrollY: true | false | 'auto'
|
|
13
|
+
HScrollView = HControl.extend({
|
|
14
|
+
controlDefaults: HControlDefaults.extend({
|
|
15
|
+
scrollX: true,
|
|
16
|
+
scrollY: true
|
|
17
|
+
}),
|
|
18
|
+
drawSubviews: function(){
|
|
19
|
+
if(!this.options.scrollX){
|
|
20
|
+
this.setStyle('overflow-x','hidden');
|
|
21
|
+
}
|
|
22
|
+
else if(this.options.scrollX === 'auto'){
|
|
23
|
+
this.setStyle('overflow-x','auto');
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.setStyle('overflow-x','scroll');
|
|
27
|
+
}
|
|
28
|
+
if(!this.options.scrollY){
|
|
29
|
+
this.setStyle('overflow-y','hidden');
|
|
30
|
+
}
|
|
31
|
+
else if(this.options.scrollY === 'auto'){
|
|
32
|
+
this.setStyle('overflow-y','auto');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.setStyle('overflow-y','scroll');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
|
data/lib/conf/default.rb
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
#--
|
|
2
|
+
## Riassence Framework
|
|
3
|
+
# Copyright 2008 Riassence Inc.
|
|
4
|
+
# http://riassence.com/
|
|
5
|
+
#
|
|
6
|
+
# You should have received a copy of the GNU General Public License along
|
|
7
|
+
# with this software package. If not, contact licensing@riassence.com
|
|
8
|
+
##
|
|
9
|
+
#++
|
|
10
|
+
|
|
11
|
+
require 'rubygems'
|
|
12
|
+
require 'rack'
|
|
13
|
+
require 'yaml'
|
|
14
|
+
|
|
15
|
+
# Legacy:
|
|
16
|
+
LIB_PATHS = []
|
|
17
|
+
PIDPATH = File.join(SERVER_PATH,'var','run')
|
|
18
|
+
LOGPATH = File.join(SERVER_PATH,'var','log')
|
|
19
|
+
def load_legacy( local_config_file_path )
|
|
20
|
+
require local_config_file_path[0..-4]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
module RSence
|
|
24
|
+
|
|
25
|
+
class Configuration
|
|
26
|
+
def array_merge( target, source )
|
|
27
|
+
source.each do |item|
|
|
28
|
+
unless target.include?(item)
|
|
29
|
+
if item.class == Array
|
|
30
|
+
sub_arr = []
|
|
31
|
+
array_merge( sub_arr, item )
|
|
32
|
+
target.push( sub_arr )
|
|
33
|
+
elsif item.class == Hash
|
|
34
|
+
sub_hash = {}
|
|
35
|
+
hash_merge( sub_hash, item )
|
|
36
|
+
target.push( sub_hash )
|
|
37
|
+
else
|
|
38
|
+
target.push( item )
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
def hash_merge( target, source )
|
|
44
|
+
source.each do |key,item|
|
|
45
|
+
if not target.has_key?key or target[key] != item
|
|
46
|
+
if item.class == Array
|
|
47
|
+
target[key] = [] unless target.has_key?(key)
|
|
48
|
+
array_merge( target[key], item )
|
|
49
|
+
elsif item.class == Hash
|
|
50
|
+
target[key] = {} unless target.has_key?key
|
|
51
|
+
hash_merge( target[key], item )
|
|
52
|
+
else
|
|
53
|
+
target[key] = item
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
def initialize
|
|
59
|
+
## Paths for log and pid files
|
|
60
|
+
pidpath = File.join(SERVER_PATH,'var','run')
|
|
61
|
+
logpath = File.join(SERVER_PATH,'var','log')
|
|
62
|
+
|
|
63
|
+
yaml_conf_path = File.join( SERVER_PATH, 'conf', 'default_conf.yaml' )
|
|
64
|
+
|
|
65
|
+
yaml_strings_path = File.join( SERVER_PATH, 'conf', 'default_strings.yaml' )
|
|
66
|
+
strings = YAML.load( File.read( yaml_strings_path ) )
|
|
67
|
+
|
|
68
|
+
## Global configuration hash
|
|
69
|
+
config = YAML.load( File.read( yaml_conf_path ) )
|
|
70
|
+
config[:transporter_conf][:messages] = strings[:messages][:transporter]
|
|
71
|
+
|
|
72
|
+
default_plugins_path = File.join( SERVER_PATH, 'plugins' )
|
|
73
|
+
|
|
74
|
+
unless config[:plugin_paths].include? default_plugins_path
|
|
75
|
+
config[:plugin_paths].push( default_plugins_path )
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
## Paths of server libraries
|
|
79
|
+
lib_paths = [
|
|
80
|
+
## already included in launch.rb; override this one in local config, if needed
|
|
81
|
+
#File.join( SERVER_PATH, 'lib' )
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
## Create default local configuratation override file, if it does not exist:
|
|
85
|
+
local_config_file_paths = [
|
|
86
|
+
File.join(SERVER_PATH,'conf','local_conf.yaml'),
|
|
87
|
+
File.join( File.split( SERVER_PATH )[0], 'conf', 'local_conf.yaml' ),
|
|
88
|
+
File.join( Dir.pwd, 'conf', 'local_conf.yaml' ),
|
|
89
|
+
File.join(SERVER_PATH,'conf','local_conf.rb'),
|
|
90
|
+
File.join( File.split( SERVER_PATH )[0], 'conf', 'local_conf.rb' ),
|
|
91
|
+
File.join( Dir.pwd, 'conf', 'local_conf.rb' )
|
|
92
|
+
]
|
|
93
|
+
if ARGV.include?('--config')
|
|
94
|
+
argv_conf_file = ARGV[ARGV.index('--config')+1]
|
|
95
|
+
if not argv_conf_file.begin_with? '/'
|
|
96
|
+
argv_conf_file = File.join( Dir.pwd, conf_file )
|
|
97
|
+
end
|
|
98
|
+
local_config_file_paths.push( argv_conf_file )
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
local_config_file_path_found = false
|
|
102
|
+
local_config_file_paths.each do |local_config_file_path|
|
|
103
|
+
if File.exists? local_config_file_path and File.file? local_config_file_path
|
|
104
|
+
if local_config_file_path.end_with? '.yaml'
|
|
105
|
+
local_conf = YAML.load( File.read( local_config_file_path ) )
|
|
106
|
+
hash_merge( config, local_conf )
|
|
107
|
+
local_config_file_path_found = true
|
|
108
|
+
elsif local_config_file_path.end_with? '.rb'
|
|
109
|
+
# Legacy work-arounds
|
|
110
|
+
prev_pidpath = PIDPATH
|
|
111
|
+
prev_logpath = LOGPATH
|
|
112
|
+
# /Legacy work-arounds
|
|
113
|
+
load_legacy( local_config_file_path )
|
|
114
|
+
# Legacy work-arounds
|
|
115
|
+
pidpath = PIDPATH if PIDPATH != prev_pidpath
|
|
116
|
+
logpath = LOGPATH if LOGPATH != prev_logpath
|
|
117
|
+
# /Legacy work-arounds
|
|
118
|
+
local_config_file_path_found = true
|
|
119
|
+
else
|
|
120
|
+
warn "Only Yaml and Ruby configuration files are allowed at this time."
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
if not local_config_file_path_found or ARGV.include? '--run-wizard'
|
|
126
|
+
puts "NOTE: No local configuration file found, running the, configuration wizard." unless ARGV.include? '--run-wizard'
|
|
127
|
+
puts "Please answer the following questions, blank lines equal to the default in brackets:"
|
|
128
|
+
require 'conf/wizard'
|
|
129
|
+
if File.directory?( File.join( Dir.pwd, 'conf' ) )
|
|
130
|
+
wizard_conf_file = File.join( Dir.pwd, 'conf', 'local_conf.yaml' )
|
|
131
|
+
else
|
|
132
|
+
wizard_conf_file = File.join( SERVER_PATH, 'conf', 'local_conf.yaml' )
|
|
133
|
+
end
|
|
134
|
+
wizard_config_data = ConfigWizard.new(config).run( wizard_conf_file )
|
|
135
|
+
config.merge!( wizard_config_data )
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
if not config[:database].has_key?( :ses_db ) and config[:database].has_key?( :auth_setup )
|
|
139
|
+
warn "WARNING: The database is not configured with a :ses_db url."
|
|
140
|
+
warn " You are advised to convert the :root_setup and :auth_setup keys of"
|
|
141
|
+
warn " config[:database] to the new url format."
|
|
142
|
+
db_auth = config[:database][:auth_setup]
|
|
143
|
+
config[:database][:ses_db] = "mysql://#{db_auth[:user]}:#{db_auth[:pass]}@#{db_auth[:host]}:#{db_auth[:port]}/#{db_auth[:db]}"
|
|
144
|
+
warn " -> Performed automatic conversion of :auth_setup as"
|
|
145
|
+
warn " config[:database][:ses_db] = #{config[:database][:ses_db].inspect}"
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
config[:trace] = true if ARGV.include?('--trace-js')
|
|
150
|
+
config[:debug_mode] = true if ARGV.include?('-d') or ARGV.include?('--debug')
|
|
151
|
+
config[:http_server][:latency] = ARGV[ARGV.index('--latency')+1].to_i if ARGV.include?('--latency')
|
|
152
|
+
config[:http_server][:port] = ARGV[ARGV.index('--port')+1].to_i if ARGV.include?('--port')
|
|
153
|
+
config[:http_server][:bind_address] = ARGV[ARGV.index('--addr')+1] if ARGV.include?('--addr')
|
|
154
|
+
config[:http_server][:rack_require] = ARGV[ARGV.index('--server')+1] if ARGV.include?('--server')
|
|
155
|
+
config[:session_conf][:reset_sessions] = true if ARGV.include?('--reset-sessions=true') or ARGV.include?('--reset-sessions')
|
|
156
|
+
config[:daemon][:pid_fn] = File.join(pidpath, "rsence.pid") unless config[:daemon].has_key?(:pid_fn)
|
|
157
|
+
config[:daemon][:log_fn] = File.join(logpath, "rsence") unless config[:daemon].has_key?(:log_fn)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
## Broker configuration
|
|
161
|
+
[ ## POST-requests
|
|
162
|
+
# broker_key # default_uri
|
|
163
|
+
# The default responder for transporter requests.
|
|
164
|
+
[ :x, File.join(config[:base_url],'x') ],
|
|
165
|
+
# The default responder for cookie-enabled "handshake" transporter requests
|
|
166
|
+
[ :hello, File.join(config[:base_url],'hello') ],
|
|
167
|
+
# The default responder for SOAP -requests
|
|
168
|
+
[ :soap, File.join(config[:base_url],'SOAP') ],
|
|
169
|
+
# The default responder for file uploads
|
|
170
|
+
[ :u, File.join(config[:base_url],'U') ],
|
|
171
|
+
|
|
172
|
+
## GET-requests
|
|
173
|
+
# broker_key # default_uri
|
|
174
|
+
# The default address of built javascript and theme packages
|
|
175
|
+
[ :h, File.join(config[:base_url],'H/') ],
|
|
176
|
+
# The default address of the ticketserve :img -category
|
|
177
|
+
[ :i, File.join(config[:base_url],'i/') ],
|
|
178
|
+
# The default address of the ticketserve :rsrc -category
|
|
179
|
+
[ :d, File.join(config[:base_url],'d/') ],
|
|
180
|
+
# The default address of the ticketserve :file -category
|
|
181
|
+
[ :f, File.join(config[:base_url],'f/') ],
|
|
182
|
+
# The default address of the ticketserve :blobobj -category
|
|
183
|
+
[ :b, File.join(config[:base_url],'b/') ],
|
|
184
|
+
# The default address of the favicon
|
|
185
|
+
[ :favicon, '/favicon.ico' ],
|
|
186
|
+
# The default address of the "empty" iframe of uploader
|
|
187
|
+
[ :uploader_iframe, File.join(config[:base_url],'U/iframe_html') ],
|
|
188
|
+
].each do |broker_key, default_uri|
|
|
189
|
+
unless config[:broker_urls].has_key?( broker_key )
|
|
190
|
+
config[:broker_urls][broker_key] = default_uri
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# The default address of the index_html plugin
|
|
195
|
+
unless config[:index_html].has_key?(:respond_address)
|
|
196
|
+
config[:index_html][:respond_address] = File.join(config[:base_url])
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
## Uses the lib paths as search paths
|
|
200
|
+
lib_paths.each do |lib_path|
|
|
201
|
+
$LOAD_PATH << lib_path
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
## Legacy:
|
|
205
|
+
LIB_PATHS.each do |lib_path|
|
|
206
|
+
$LOAD_PATH << lib_path
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
@config = config
|
|
210
|
+
end
|
|
211
|
+
attr_reader :config
|
|
212
|
+
end
|
|
213
|
+
@@config = Configuration.new.config
|
|
214
|
+
def self.config
|
|
215
|
+
@@config
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
|
data/lib/conf/wizard.rb
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
#--
|
|
2
|
+
## Riassence Framework
|
|
3
|
+
# Copyright 2008 Riassence Inc.
|
|
4
|
+
# http://riassence.com/
|
|
5
|
+
#
|
|
6
|
+
# You should have received a copy of the GNU General Public License along
|
|
7
|
+
# with this software package. If not, contact licensing@riassence.com
|
|
8
|
+
##
|
|
9
|
+
#++
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'highline/import'
|
|
14
|
+
|
|
15
|
+
require 'randgen'
|
|
16
|
+
|
|
17
|
+
class ConfigWizard
|
|
18
|
+
|
|
19
|
+
# returns a deep copy of source_hash using Marshal
|
|
20
|
+
# (I wish there was a better way)
|
|
21
|
+
def hash_deep_copy(source_hash)
|
|
22
|
+
return Marshal.restore( Marshal.dump(source_hash) )
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# returns a pound ('#') char, unless @conf and @config values differ
|
|
26
|
+
def cdiff(confkeys)
|
|
27
|
+
conf1 = @conf
|
|
28
|
+
conf2 = @config
|
|
29
|
+
# recurse into config hash
|
|
30
|
+
confkeys.each do |confkey|
|
|
31
|
+
conf1 = conf1[confkey]
|
|
32
|
+
conf2 = conf2[confkey]
|
|
33
|
+
end
|
|
34
|
+
# return '' if the values differ, '#' if they are the same
|
|
35
|
+
#puts "#{conf1.inspect} vs #{conf2.inspect}"
|
|
36
|
+
if conf1 != conf2
|
|
37
|
+
return ''
|
|
38
|
+
else
|
|
39
|
+
return '#'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# makes a copy of the default configuration for comparisons
|
|
44
|
+
def initialize( config )
|
|
45
|
+
@config = config
|
|
46
|
+
@conf = {
|
|
47
|
+
:database => hash_deep_copy( config[:database] ),
|
|
48
|
+
:http_server => hash_deep_copy( config[:http_server] )
|
|
49
|
+
}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# asks y/n and returns boleans,
|
|
53
|
+
# the default tells if which one is for just enter
|
|
54
|
+
def yesno(default=false)
|
|
55
|
+
if default
|
|
56
|
+
question = "Y/n? "
|
|
57
|
+
else
|
|
58
|
+
question = "y/N? "
|
|
59
|
+
end
|
|
60
|
+
print question
|
|
61
|
+
answer = $stdin.gets.strip.downcase[0]
|
|
62
|
+
answer = answer.chr if answer
|
|
63
|
+
if answer == 'n'
|
|
64
|
+
return false
|
|
65
|
+
elsif answer == 'y'
|
|
66
|
+
return true
|
|
67
|
+
elsif answer == nil
|
|
68
|
+
return default
|
|
69
|
+
else
|
|
70
|
+
return nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# configuration dialog for database connectivity
|
|
75
|
+
def ask_about_mysql
|
|
76
|
+
puts "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
|
|
77
|
+
puts " MySQL configuration"
|
|
78
|
+
puts
|
|
79
|
+
puts " This feature requires an mysql account with "
|
|
80
|
+
puts " sufficient privileges of creating databases,"
|
|
81
|
+
puts " tables and users. "
|
|
82
|
+
puts
|
|
83
|
+
puts " This account is used for persistent session storage "
|
|
84
|
+
puts " and it is also the default database for plugins."
|
|
85
|
+
puts
|
|
86
|
+
puts " The default rsence account is configured as:"
|
|
87
|
+
puts
|
|
88
|
+
puts " Hostname: #{@conf[:database][:auth_setup][:host].inspect}"
|
|
89
|
+
puts " Username: #{@conf[:database][:auth_setup][:user].inspect}"
|
|
90
|
+
puts " Password: #{@conf[:database][:auth_setup][:pass].inspect}"
|
|
91
|
+
puts " Database: #{@conf[:database][:auth_setup][:db].inspect}"
|
|
92
|
+
puts " Port: #{@conf[:database][:auth_setup][:port].inspect}"
|
|
93
|
+
puts
|
|
94
|
+
print " Correct, "
|
|
95
|
+
is_correct = nil
|
|
96
|
+
is_correct = yesno(true) until is_correct != nil
|
|
97
|
+
unless is_correct
|
|
98
|
+
@conf[:database][:auth_setup][:host] = ask("Hostname (or IP address)?") do |q|
|
|
99
|
+
q.default = @conf[:database][:auth_setup][:host]
|
|
100
|
+
end
|
|
101
|
+
@conf[:database][:auth_setup][:user] = ask("Username?") do |q|
|
|
102
|
+
q.default = @conf[:database][:auth_setup][:user]
|
|
103
|
+
end
|
|
104
|
+
@conf[:database][:auth_setup][:pass] = ask("Password?") do |q|
|
|
105
|
+
q.default = @conf[:database][:auth_setup][:pass]
|
|
106
|
+
end
|
|
107
|
+
@conf[:database][:auth_setup][:db] = ask("Database?") do |q|
|
|
108
|
+
q.default = @conf[:database][:auth_setup][:db]
|
|
109
|
+
end
|
|
110
|
+
@conf[:database][:auth_setup][:port] = ask("Port?") do |q|
|
|
111
|
+
q.default = @conf[:database][:auth_setup][:port]
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
puts
|
|
115
|
+
print " Re-edit these settings, "
|
|
116
|
+
re_edit = yesno(false) until re_edit != nil
|
|
117
|
+
if re_edit
|
|
118
|
+
ask_about_mysql
|
|
119
|
+
else
|
|
120
|
+
db_auth = @conf[:database][:auth_setup]
|
|
121
|
+
return "mysql://#{db_auth[:user]}:#{db_auth[:pass]}@#{db_auth[:host]}:#{db_auth[:port]}/#{db_auth[:db]}"
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# configuration dialog for the web server
|
|
126
|
+
def ask_about_httpd
|
|
127
|
+
puts "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
|
|
128
|
+
puts " HTTP Server configuration"
|
|
129
|
+
puts
|
|
130
|
+
puts " Riassence Framework runs its HTTP Server as:"
|
|
131
|
+
puts
|
|
132
|
+
puts " Server: #{@conf[:http_server][:rack_require].inspect}"
|
|
133
|
+
puts " Address: #{@conf[:http_server][:bind_address].inspect}"
|
|
134
|
+
puts " Port: #{@conf[:http_server][:port].inspect}"
|
|
135
|
+
puts
|
|
136
|
+
puts
|
|
137
|
+
print " Correct, "
|
|
138
|
+
is_correct = yesno(true) until is_correct != nil
|
|
139
|
+
unless is_correct
|
|
140
|
+
server_type = ''
|
|
141
|
+
until ['mongrel','webrick','thin','ebb'].include?(server_type)
|
|
142
|
+
server_type = ask("Server Type? (valid: mongrel, webrick, thin, ebb)") do |q|
|
|
143
|
+
q.default = @conf[:http_server][:rack_require]
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
@conf[:http_server][:rack_require] = server_type
|
|
147
|
+
@conf[:http_server][:bind_address] = ask("Address? (0.0.0.0 binds to all)") do |q|
|
|
148
|
+
q.default = @conf[:http_server][:bind_address]
|
|
149
|
+
end
|
|
150
|
+
@conf[:http_server][:port] = ask("Port number?") do |q|
|
|
151
|
+
q.default = @conf[:http_server][:port]
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def file_ok?(path)
|
|
157
|
+
return false if path == ''
|
|
158
|
+
if File.exist?(File.split(path)[0])
|
|
159
|
+
if File.directory?(File.split(path)[0])
|
|
160
|
+
if File.writable?(File.split(path)[0])
|
|
161
|
+
if File.exist?(path)
|
|
162
|
+
if File.file?(path)
|
|
163
|
+
return true if File.writable?(path) and File.readable?(path)
|
|
164
|
+
puts " Invalid path; #{path} is not writable or readable."
|
|
165
|
+
return false
|
|
166
|
+
end
|
|
167
|
+
puts " Invalid path; #{path} exists and is not a file."
|
|
168
|
+
return false
|
|
169
|
+
end
|
|
170
|
+
return true
|
|
171
|
+
end
|
|
172
|
+
puts " Invalid path; the directory #{File.split(path)[0]} is not writable."
|
|
173
|
+
return false
|
|
174
|
+
end
|
|
175
|
+
puts " Invalid path; the parent directory #{File.split(path)[0]} is not a directory."
|
|
176
|
+
return false
|
|
177
|
+
end
|
|
178
|
+
puts " Invalid path; the parent directory #{File.split(path)[0]} does not exist."
|
|
179
|
+
return false
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def ask_about_sqlite
|
|
183
|
+
sqlite_path = File.join(SERVER_PATH,'var','db','rsence_ses.db')
|
|
184
|
+
puts "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
|
|
185
|
+
puts " SQLite database configuration"
|
|
186
|
+
puts
|
|
187
|
+
puts " SQLite is configured using file names. The default is:"
|
|
188
|
+
puts " #{sqlite_path.inspect}"
|
|
189
|
+
puts
|
|
190
|
+
print " Correct, "
|
|
191
|
+
is_correct = yesno(true) until is_correct != nil
|
|
192
|
+
unless is_correct
|
|
193
|
+
new_sqlite_path = ''
|
|
194
|
+
until file_ok?(new_sqlite_path)
|
|
195
|
+
new_sqlite_path = ask(" Database file path? ") do |q|
|
|
196
|
+
q.default = sqlite_path
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
sqlite_path = new_sqlite_path
|
|
200
|
+
end
|
|
201
|
+
return "sqlite://#{sqlite_path}"
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def ask_about_other_db( other_db_string = '' )
|
|
205
|
+
puts "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
|
|
206
|
+
puts " All Sequel-compatible database drivers are supported."
|
|
207
|
+
puts
|
|
208
|
+
puts " To configure another database engine, please enter a db url."
|
|
209
|
+
puts " The format is usually: 'engine://username:password@host:port/database_name'"
|
|
210
|
+
puts " For more details, see: http://sequel.rubyforge.org/rdoc/files/doc/opening_databases_rdoc.html"
|
|
211
|
+
puts
|
|
212
|
+
input_db_string = ''
|
|
213
|
+
until input_db_string != ''
|
|
214
|
+
input_db_string = ask(" Database connection string: ") do |q|
|
|
215
|
+
q.default = other_db_string
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
other_db_string = input_db_string
|
|
219
|
+
print "Correct, "
|
|
220
|
+
is_correct = yesno(true) until is_correct != nil
|
|
221
|
+
if is_correct
|
|
222
|
+
return other_db_string
|
|
223
|
+
else
|
|
224
|
+
ask_about_other_db( other_db_string )
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def ask_about_db
|
|
229
|
+
puts "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
|
|
230
|
+
puts " Session database configuration"
|
|
231
|
+
puts
|
|
232
|
+
puts " Riassence Framework requires a database for persistant"
|
|
233
|
+
puts " session storage. This feature allows the server"
|
|
234
|
+
puts " to be restarted without losing user sessions."
|
|
235
|
+
puts
|
|
236
|
+
puts " The default database engine is SQLite."
|
|
237
|
+
puts
|
|
238
|
+
puts " Select one of the following:"
|
|
239
|
+
puts " 1 - SQLite"
|
|
240
|
+
puts " 2 - MySQL"
|
|
241
|
+
puts " 3 - Other (custom Sequel database url)"
|
|
242
|
+
db_type = ''
|
|
243
|
+
until ['1','2','3'].include?(db_type)
|
|
244
|
+
db_type = ask("Database engine? ") do |q|
|
|
245
|
+
q.default = '1'
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
if db_type == '1'
|
|
249
|
+
db_connection_string = ask_about_sqlite
|
|
250
|
+
elsif db_type == '2'
|
|
251
|
+
db_connection_string = ask_about_mysql
|
|
252
|
+
elsif db_type == '3'
|
|
253
|
+
db_connection_string = ask_about_other_db
|
|
254
|
+
end
|
|
255
|
+
puts
|
|
256
|
+
puts " The database connection string is:"
|
|
257
|
+
puts " #{db_connection_string}"
|
|
258
|
+
puts
|
|
259
|
+
print " Correct, "
|
|
260
|
+
db_ok = yesno(true) until db_ok != nil
|
|
261
|
+
if not db_ok
|
|
262
|
+
ask_about_db
|
|
263
|
+
else
|
|
264
|
+
@conf[:database][:ses_db] = db_connection_string
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def run( local_config_file_path )
|
|
269
|
+
puts
|
|
270
|
+
puts
|
|
271
|
+
puts "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
|
|
272
|
+
puts " This Riassence Framework instance is not configured."
|
|
273
|
+
puts
|
|
274
|
+
puts " To configure, create a configuration file:"
|
|
275
|
+
puts " #{local_config_file_path}"
|
|
276
|
+
puts
|
|
277
|
+
puts " You may also answer a few simple questions to create"
|
|
278
|
+
puts " a configuration file template."
|
|
279
|
+
puts
|
|
280
|
+
print " Do you want to run the configuration tool, "
|
|
281
|
+
configure_now = yesno(true) until configure_now != nil
|
|
282
|
+
unless configure_now
|
|
283
|
+
puts
|
|
284
|
+
puts " OK. No configuration at this time. Can't continue; exit."
|
|
285
|
+
exit
|
|
286
|
+
end
|
|
287
|
+
ask_about_db
|
|
288
|
+
ask_about_httpd
|
|
289
|
+
puts
|
|
290
|
+
puts "Configuration done!"
|
|
291
|
+
puts
|
|
292
|
+
puts "Writing #{local_config_file_path.inspect}..."
|
|
293
|
+
f = File.open( local_config_file_path, 'w' )
|
|
294
|
+
f.write( YAML.dump( @conf ) )
|
|
295
|
+
f.close
|
|
296
|
+
puts
|
|
297
|
+
puts "Edit #{local_config_file_path} to change the configuration."
|
|
298
|
+
puts
|
|
299
|
+
return @conf
|
|
300
|
+
end
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
|