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,387 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
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
|
+
/*** = Description
|
|
10
|
+
** A single instance class.
|
|
11
|
+
** The theme manager knows the name of the currently loaded theme and handles
|
|
12
|
+
** the loading of theme specific markup snippets and style declarations.
|
|
13
|
+
**
|
|
14
|
+
** = Instance variables
|
|
15
|
+
** +themePath+:: Relative path to the components' top directory.
|
|
16
|
+
** +currentTheme+:: The name of the theme currently in use. Initially the
|
|
17
|
+
** default unnamed theme is used.
|
|
18
|
+
** +usesComponentDir+:: True when the components are separated in their own
|
|
19
|
+
** directories, usually when using the
|
|
20
|
+
** source/development version. False when the components
|
|
21
|
+
** are all in same directory. This is the case in the
|
|
22
|
+
** release build.
|
|
23
|
+
**
|
|
24
|
+
***/
|
|
25
|
+
|
|
26
|
+
HDefaultThemePath = '/H/themes';
|
|
27
|
+
HDefaultThemeName = 'default';
|
|
28
|
+
HNoComponentCSS = [];
|
|
29
|
+
HNoCommonCSS = [];
|
|
30
|
+
HThemeHasIE6GifsInsteadOfPng = [];
|
|
31
|
+
|
|
32
|
+
HThemeManager = HClass.extend({
|
|
33
|
+
|
|
34
|
+
constructor: null,
|
|
35
|
+
|
|
36
|
+
init: function(){
|
|
37
|
+
|
|
38
|
+
// Default root path of the themes path, should contain at least the default theme.
|
|
39
|
+
this.themePath = HDefaultThemePath;
|
|
40
|
+
|
|
41
|
+
// Hash map of loaded template markup (html templates), by theme.
|
|
42
|
+
// componentName is used as the secondary key.
|
|
43
|
+
this._tmplCache = {};
|
|
44
|
+
|
|
45
|
+
// Hash map of loaded css templates, by theme.
|
|
46
|
+
// componentName is used as the secondary key.
|
|
47
|
+
this._cssCache = {};
|
|
48
|
+
|
|
49
|
+
// The currently selected default theme name.
|
|
50
|
+
this.currentTheme = HDefaultThemeName;
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
setThemePath: function( _path ){
|
|
54
|
+
this.themePath = _path;
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
// Error messages, should be refined.
|
|
58
|
+
_errTemplateNotFound: function( _url ) {
|
|
59
|
+
console.log( "ERROR: Template Not Found: '" + _url + "' ");
|
|
60
|
+
},
|
|
61
|
+
_errTemplateFailure: function( _url ) {
|
|
62
|
+
console.log( "ERROR: Template Failure: '" + _url + "' ");
|
|
63
|
+
},
|
|
64
|
+
_errTemplateException: function( _url ) {
|
|
65
|
+
console.log( "ERROR: Template Exception: '" + _url + "' ");
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
/** = Description
|
|
69
|
+
* Loads a template file and returns its contents.
|
|
70
|
+
* If errors occurred, calls the error management functions.
|
|
71
|
+
*
|
|
72
|
+
* = Parameters
|
|
73
|
+
* +_url+:: A valid local file path or http url pointing to the
|
|
74
|
+
* resource to load.
|
|
75
|
+
* +_contentType+:: An optional parameter, specifies the content type wanted,
|
|
76
|
+
* defaults to text/html.
|
|
77
|
+
*
|
|
78
|
+
* = Returns
|
|
79
|
+
* The contents of the path.
|
|
80
|
+
**/
|
|
81
|
+
fetch: function( _url, _contentType, _callBack, _async ) {
|
|
82
|
+
var _callBackFun;
|
|
83
|
+
if( !_contentType ){
|
|
84
|
+
_contentType = 'text/html; charset=UTF-8';
|
|
85
|
+
}
|
|
86
|
+
if(_async){
|
|
87
|
+
_callBackFun = function( resp ){
|
|
88
|
+
_callBack( resp.X.responseText );
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
else{
|
|
92
|
+
// console.log('WARNING: Fetching synchronously using HThemeManager is not recommended. Use pre-packaged themes instead.');
|
|
93
|
+
var _respText;
|
|
94
|
+
_callBackFun = function( resp ){
|
|
95
|
+
_respText = resp.X.responseText;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
COMM.request(
|
|
99
|
+
_url, {
|
|
100
|
+
onSuccess: _callBackFun,
|
|
101
|
+
on404: function(resp){ HThemeManager._errTemplateNotFound( resp.url ); },
|
|
102
|
+
onFailure: function(resp){ HThemeManager._errTemplateFailure( resp.url ); },
|
|
103
|
+
onException: function(resp){ HThemeManager._errTemplateException( resp.url ); },
|
|
104
|
+
method: 'GET',
|
|
105
|
+
async: _async
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
if(!_async){
|
|
109
|
+
return _respText;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
/** Returns the theme/component -specific path, called from inside css
|
|
115
|
+
* themes, a bit kludgy approach to tell the theme graphics file paths.
|
|
116
|
+
**/
|
|
117
|
+
getThemeGfxPath: function() {
|
|
118
|
+
var _themeName = this._cssEvalParams[0],
|
|
119
|
+
_componentName = this._cssEvalParams[1],
|
|
120
|
+
_themePath = this._cssEvalParams[2],
|
|
121
|
+
_urlPrefix = this._urlPrefix( _themeName, _componentName, _themePath );
|
|
122
|
+
return this._joinPath( _urlPrefix, 'gfx' );
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/** = Description
|
|
126
|
+
* Returns the theme/component -specific graphics file path with proper css wrappers.
|
|
127
|
+
* Used from inside css themes, a bit kludgy approach to tell the file name path.
|
|
128
|
+
*
|
|
129
|
+
* = Parameters
|
|
130
|
+
* +_fileName+:: The File name to load.
|
|
131
|
+
*
|
|
132
|
+
**/
|
|
133
|
+
getCssFilePath: function( _fileName ){
|
|
134
|
+
var _themeName = this._cssEvalParams[0];
|
|
135
|
+
if((HThemeHasIE6GifsInsteadOfPng.indexOf(_themeName)!==-1) && (BROWSER_TYPE.ie6 || BROWSER_TYPE.symbian) ){
|
|
136
|
+
return "url('"+this._joinPath( this.getThemeGfxPath(), _fileName.replace('.png','-ie6.gif') )+"')";
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return "url('"+this._joinPath( this.getThemeGfxPath(), _fileName )+"')";
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
/** = Description
|
|
144
|
+
* Loads a css file based on the given url (or file path).
|
|
145
|
+
* Evaluates the css data.
|
|
146
|
+
* Makes sure the browser uses the data for component styles.
|
|
147
|
+
*
|
|
148
|
+
* = Parameter
|
|
149
|
+
* +_url+:: A valid url that points to a valid css file.
|
|
150
|
+
*
|
|
151
|
+
* = Returns
|
|
152
|
+
* The source of the url.
|
|
153
|
+
*
|
|
154
|
+
**/
|
|
155
|
+
loadCSS: function( _url ) {
|
|
156
|
+
var _contentType = 'text/css',
|
|
157
|
+
_cssFun = function(_cssText){
|
|
158
|
+
// Don't try to do anything with empty or invalid css data:
|
|
159
|
+
if (!_cssText || _cssText === "") {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
HThemeManager.useCSS( _cssText );
|
|
163
|
+
};
|
|
164
|
+
this.fetch( _url, _contentType, _cssFun, true );
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
useCSS: function( _cssText ){
|
|
168
|
+
var _contentType = 'text/css';
|
|
169
|
+
// Evaluate the css text
|
|
170
|
+
_cssText = this._bindCSSVariables( _cssText );
|
|
171
|
+
|
|
172
|
+
var _style, _styleSheet, _head;
|
|
173
|
+
|
|
174
|
+
if(BROWSER_TYPE.ie) {
|
|
175
|
+
// Internet Explorer (at least 6.x; check what 7.x does)
|
|
176
|
+
_style = document.createStyleSheet();
|
|
177
|
+
_style.cssText = _cssText;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
else {
|
|
181
|
+
// Common, standard <style> tag generation in <head>
|
|
182
|
+
_style = document.createElement( "style" );
|
|
183
|
+
_style.type = _contentType;
|
|
184
|
+
_style.media = "all";
|
|
185
|
+
|
|
186
|
+
_head = document.getElementsByTagName('head')[0];
|
|
187
|
+
_head.appendChild(_style);
|
|
188
|
+
|
|
189
|
+
if (BROWSER_TYPE.safari) {
|
|
190
|
+
// Work-around for safari
|
|
191
|
+
var _cssTextElement = document.createTextNode(_cssText);
|
|
192
|
+
_style.appendChild(_cssTextElement);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// This works for others (add more checks, if problems with new browsers)
|
|
196
|
+
_style.innerHTML = _cssText;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
},
|
|
201
|
+
|
|
202
|
+
_addSlash: function( _str ){
|
|
203
|
+
if( _str[ _str.length-1 ] !== '/' ){
|
|
204
|
+
_str += '/';
|
|
205
|
+
}
|
|
206
|
+
return _str;
|
|
207
|
+
},
|
|
208
|
+
|
|
209
|
+
_joinPath: function( _str1, _str2 ){
|
|
210
|
+
return this._addSlash( _str1 ) + _str2;
|
|
211
|
+
},
|
|
212
|
+
|
|
213
|
+
// Makes a common url prefix for template files
|
|
214
|
+
_urlPrefix: function( _themeName, _componentName, _themePath ) {
|
|
215
|
+
|
|
216
|
+
var _path = _themePath;
|
|
217
|
+
|
|
218
|
+
// Usually null
|
|
219
|
+
if( _themePath === null ) {
|
|
220
|
+
_path = this.themePath;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
_path = this._joinPath( _path, _themeName );
|
|
224
|
+
|
|
225
|
+
return _path;
|
|
226
|
+
},
|
|
227
|
+
|
|
228
|
+
// Makes a valid css template url
|
|
229
|
+
_cssUrl: function( _themeName, _componentName, _themePath ) {
|
|
230
|
+
this._cssEvalParams = [_themeName, _componentName, _themePath];
|
|
231
|
+
var _cssPrefix = this._urlPrefix( _themeName, _componentName, _themePath ),
|
|
232
|
+
_cssSuffix = this._joinPath( 'css', _componentName+'.css' ),
|
|
233
|
+
_cssUrl = this._joinPath( _cssPrefix, _cssSuffix );
|
|
234
|
+
return _cssUrl;
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
// Makes a valid html template url
|
|
238
|
+
_markupUrl: function( _themeName, _componentName, _themePath ) {
|
|
239
|
+
var _htmlPrefix = this._urlPrefix( _themeName, _componentName, _themePath ),
|
|
240
|
+
_htmlSuffix = this._joinPath( 'html', _componentName+'.html' ),
|
|
241
|
+
_htmlUrl = this._joinPath( _htmlPrefix, _htmlSuffix );
|
|
242
|
+
return _htmlUrl;
|
|
243
|
+
},
|
|
244
|
+
|
|
245
|
+
/** = Description
|
|
246
|
+
* Loads HTML templates of components. Handles caching independently and
|
|
247
|
+
* intelligently.
|
|
248
|
+
*
|
|
249
|
+
* = Parameters
|
|
250
|
+
* +_themeName+:: The name of the template to use.
|
|
251
|
+
* +_componentName+:: The name of the component template (css/html) to load.
|
|
252
|
+
* +_themePath+:: Optional, parameter to override the global theme path.
|
|
253
|
+
*
|
|
254
|
+
* = Returns
|
|
255
|
+
* The Pre-Evaluated HTML Template.
|
|
256
|
+
*
|
|
257
|
+
**/
|
|
258
|
+
loadMarkup: function( _themeName, _componentName, _themePath ) {
|
|
259
|
+
if( !this._tmplCache[_themeName] ){
|
|
260
|
+
this._tmplCache[_themeName] = {};
|
|
261
|
+
}
|
|
262
|
+
var _cached = this._tmplCache[_themeName][_componentName];
|
|
263
|
+
|
|
264
|
+
if (null === _cached || undefined === _cached) {
|
|
265
|
+
var _markupUrl = this._markupUrl( _themeName, _componentName, _themePath ),
|
|
266
|
+
_markup = this.fetch( _markupUrl, null, null, false );
|
|
267
|
+
return this.setMarkup( _themeName, _componentName, _markup );
|
|
268
|
+
}
|
|
269
|
+
return _cached;
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
/** = Description
|
|
273
|
+
* Sets the html template for the theme and component name combination.
|
|
274
|
+
*
|
|
275
|
+
* = Parameters
|
|
276
|
+
* +_themeName+:: The name of the template to use..
|
|
277
|
+
* +_componentName+:: The name of the component template.
|
|
278
|
+
* +_markup+:: The content of the html markup.
|
|
279
|
+
**/
|
|
280
|
+
setMarkup: function( _themeName, _componentName, _markup ){
|
|
281
|
+
// Save an empty string to template cache to prevent repeated failing
|
|
282
|
+
// requests.
|
|
283
|
+
if (null === _markup || undefined === _markup) {
|
|
284
|
+
_markup = "";
|
|
285
|
+
}
|
|
286
|
+
this._tmplCache[_themeName][_componentName] = _markup;
|
|
287
|
+
return _markup;
|
|
288
|
+
},
|
|
289
|
+
|
|
290
|
+
/** = Description
|
|
291
|
+
* Loads CSS and HTML templates of components. Called from HView#_loadMarkup.
|
|
292
|
+
* Returns the HTML Template as text.
|
|
293
|
+
* Manages file caches independently and intelligently.
|
|
294
|
+
*
|
|
295
|
+
* = Parameters
|
|
296
|
+
* +_themeName+:: The name of the template to use.
|
|
297
|
+
* +_componentName+:: The name of the component template (css/html) to load.
|
|
298
|
+
* +_themePath+:: Optional, parameter to override the global theme path.
|
|
299
|
+
*
|
|
300
|
+
* = Returns
|
|
301
|
+
* The Pre-Evaluated HTML Template.
|
|
302
|
+
*
|
|
303
|
+
**/
|
|
304
|
+
getMarkup: function( _themeName, _componentName, _themePath ) {
|
|
305
|
+
/* Load Theme-Specific CSS: */
|
|
306
|
+
if(!this._cssCache[_themeName]){
|
|
307
|
+
this._cssCache[_themeName] = {};
|
|
308
|
+
if(HNoCommonCSS.indexOf(_themeName)===-1){
|
|
309
|
+
var _commonCssUrl = this._cssUrl( _themeName, 'common', _themePath, null );
|
|
310
|
+
this.loadCSS( _commonCssUrl );
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/* Load Component-Specific CSS, unless configured to only load the common css: */
|
|
315
|
+
if(HNoComponentCSS.indexOf(_themeName)===-1){
|
|
316
|
+
if (!this._cssCache[_themeName][_componentName]){
|
|
317
|
+
var _componentCssUrl = this._cssUrl( _themeName, _componentName, _themePath );
|
|
318
|
+
this._cssCache[_themeName][_componentName] = true;
|
|
319
|
+
this.loadCSS( _componentCssUrl );
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/* Load/Return Component-Specific HTML: */
|
|
324
|
+
return this.loadMarkup( _themeName, _componentName, _themePath );
|
|
325
|
+
},
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
_componentGfxPath: function( _themeName, _componentName, _themePath ) {
|
|
329
|
+
var _urlPrefix = this._urlPrefix( _themeName, _componentName, _themePath ),
|
|
330
|
+
_url = this._joinPath( _urlPrefix, 'gfx' );
|
|
331
|
+
return _url;
|
|
332
|
+
},
|
|
333
|
+
_componentGfxFile: function( _themeName, _componentName, _themePath, _fileName ){
|
|
334
|
+
if((HThemeHasIE6GifsInsteadOfPng.indexOf(_themeName)!==-1) && BROWSER_TYPE.ie6){
|
|
335
|
+
return this._joinPath( this._componentGfxPath(_themeName, _componentName, _themePath), _fileName.replace('.png','-ie6.gif') );
|
|
336
|
+
}
|
|
337
|
+
return this._joinPath( this._componentGfxPath(_themeName, _componentName, _themePath), _fileName );
|
|
338
|
+
},
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
/** = Description
|
|
342
|
+
* Returns the full path of the +_fileName+ given. Uses the default theme.
|
|
343
|
+
**/
|
|
344
|
+
getThemeGfxFile: function( _fileName ) {
|
|
345
|
+
return this.getThemeGfxPath() + _fileName;
|
|
346
|
+
},
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
/** = Description
|
|
350
|
+
* Sets the active theme.
|
|
351
|
+
*
|
|
352
|
+
* = Parameters
|
|
353
|
+
* +_theme+:: The name of the theme to be set as the active theme.
|
|
354
|
+
*
|
|
355
|
+
**/
|
|
356
|
+
setTheme: function(_theme) {
|
|
357
|
+
this.currentTheme = _theme;
|
|
358
|
+
},
|
|
359
|
+
|
|
360
|
+
/** Sets the default theme ( HDefaultTheme ) to be the active theme.
|
|
361
|
+
**/
|
|
362
|
+
restoreDefaultTheme: function() {
|
|
363
|
+
this.setTheme( HDefaultThemeName );
|
|
364
|
+
},
|
|
365
|
+
|
|
366
|
+
/** regexp: _variable_match
|
|
367
|
+
* A regular expression to match the template evaluation syntax: #{stuff_to_evaluate}
|
|
368
|
+
**/
|
|
369
|
+
_variable_match: new RegExp(/#\{([^\}]*)\}/),
|
|
370
|
+
|
|
371
|
+
/** = Description
|
|
372
|
+
* Evaluates the _variable_match regular expression for the string _markup.
|
|
373
|
+
*
|
|
374
|
+
* = Parameters
|
|
375
|
+
* +_cssTmpl+:: The css template file to be evaluated.
|
|
376
|
+
*
|
|
377
|
+
* = Returns
|
|
378
|
+
* An evaluated CSS Template.
|
|
379
|
+
**/
|
|
380
|
+
_bindCSSVariables: function( _cssTmpl ) {
|
|
381
|
+
while ( this._variable_match.test( _cssTmpl ) ) {
|
|
382
|
+
_cssTmpl = _cssTmpl.replace( this._variable_match, eval( RegExp.$1 ) );
|
|
383
|
+
}
|
|
384
|
+
return _cssTmpl;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
});
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
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
|
+
/*** = Description
|
|
10
|
+
** Serves as a mixin class for classes that need to draw markup but don't
|
|
11
|
+
** inherit from the HView.
|
|
12
|
+
**
|
|
13
|
+
** = Instance variables
|
|
14
|
+
** +markup+:: The markup from the component's HTML template.
|
|
15
|
+
***/
|
|
16
|
+
HMarkupView = HClass.extend({
|
|
17
|
+
|
|
18
|
+
/** = Description
|
|
19
|
+
* Evaluates the pieces of code defined in the markup template marked with
|
|
20
|
+
* syntax #{}.
|
|
21
|
+
* Can't use } characters in the code though.
|
|
22
|
+
* --
|
|
23
|
+
* This might need another look...
|
|
24
|
+
* ++
|
|
25
|
+
* Places the resulting markup in the instance variable.
|
|
26
|
+
*
|
|
27
|
+
**/
|
|
28
|
+
bindMarkupVariables: function() {
|
|
29
|
+
|
|
30
|
+
var _markup = this.markup;
|
|
31
|
+
|
|
32
|
+
while ( HMarkupView._assignment_match.test(_markup) ) {
|
|
33
|
+
_markup = _markup.replace( HMarkupView._assignment_match, this.evalMarkupVariable(RegExp.$1,true) );
|
|
34
|
+
}
|
|
35
|
+
while ( HMarkupView._variable_match.test(_markup) ) {
|
|
36
|
+
_markup = _markup.replace( HMarkupView._variable_match, this.evalMarkupVariable(RegExp.$1) );
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
this.markup = _markup;
|
|
40
|
+
|
|
41
|
+
return this;
|
|
42
|
+
},
|
|
43
|
+
/** = Description
|
|
44
|
+
* Evaluates a string and throws an error into console.log
|
|
45
|
+
* if the string doesn't pass evaluation.
|
|
46
|
+
* If _isAssignment flag is set to true returns empty string.
|
|
47
|
+
* if _isAssignment is set to false will return string if it passes
|
|
48
|
+
* evaluation.
|
|
49
|
+
*
|
|
50
|
+
* = Parameters
|
|
51
|
+
* +_strToEval+:: A String to evaluate.
|
|
52
|
+
*
|
|
53
|
+
* +_isAssignment+:: Flag to indicate return the String upon passed
|
|
54
|
+
* evaluation(false) or return of an empty String(true).
|
|
55
|
+
*
|
|
56
|
+
* = Returns
|
|
57
|
+
* +String+
|
|
58
|
+
*
|
|
59
|
+
**/
|
|
60
|
+
evalMarkupVariable: function(_strToEval,_isAssignment){
|
|
61
|
+
try {
|
|
62
|
+
var _ID = this.elemId.toString(),
|
|
63
|
+
_WIDTH = this.rect.width,
|
|
64
|
+
_HEIGHT = this.rect.height,
|
|
65
|
+
_result = eval(_strToEval);
|
|
66
|
+
if(_isAssignment){
|
|
67
|
+
return '';
|
|
68
|
+
}
|
|
69
|
+
if(_result===undefined){
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return _result;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch(e) {
|
|
77
|
+
console.log("Warning, the markup string '"+_strToEval+"' failed evaluation. Reason:"+e+' '+e.description);
|
|
78
|
+
return '';
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
/** = Description
|
|
83
|
+
* Sets or unsets the _cssClass into a DOM element that goes by the ID
|
|
84
|
+
* _elementId.
|
|
85
|
+
*
|
|
86
|
+
* = Parameters
|
|
87
|
+
* +_elementId+:: ID of the DOM element, or the element itself, to be
|
|
88
|
+
* modified.
|
|
89
|
+
* +_cssClass+:: Name of the CSS class to be added or removed.
|
|
90
|
+
* +_setOn+:: Boolean value that tells should the CSS class be added or
|
|
91
|
+
* removed.
|
|
92
|
+
*
|
|
93
|
+
* = Returns
|
|
94
|
+
* +self+
|
|
95
|
+
*
|
|
96
|
+
**/
|
|
97
|
+
toggleCSSClass: function(_elementId, _cssClass, _setOn) {
|
|
98
|
+
if(_elementId) {
|
|
99
|
+
if (_setOn) {
|
|
100
|
+
ELEM.addClassName(_elementId, _cssClass);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
ELEM.removeClassName(_elementId, _cssClass);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
},{
|
|
110
|
+
_variable_match: new RegExp(/#\{([^\}]*)\}/),
|
|
111
|
+
_assignment_match: new RegExp(/\$\{([^\}]*)\}/)
|
|
112
|
+
});
|
|
113
|
+
|