rsence 2.0.4.15 → 2.0.8.19

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/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.4.15
1
+ 2.0.8.19
@@ -239,6 +239,9 @@ COMM.Transporter = HApplication.extend({
239
239
  }
240
240
  // console.log('sync.');
241
241
  this.busy = true;
242
+ if(window['sesWatcher']){
243
+ sesWatcher.sesTimeoutValue.set( new Date().getTime() );
244
+ }
242
245
  var _this = this,
243
246
  _values = COMM.Values.sync(),
244
247
  _sesKey = 'ses_key='+COMM.Session.ses_key,
@@ -166,10 +166,12 @@ HTab = HControl.extend({
166
166
  if(this.tabTriggerLink&&this.tabLabelElementTagName==='a'){
167
167
  ELEM.setAttr(_tabLabelElemId,'href','javascript:HSystem.views['+this.viewId+'].selectTab('+_tabIdx+');');
168
168
  }
169
- else if (this.tabTriggerLink){
169
+ else if (this.tabTriggerLink && !(BROWSER_TYPE.ie7 || BROWSER_TYPE.ie6)){
170
170
  ELEM.setAttr(_tabLabelElemId,'onclick','HSystem.views['+this.viewId+'].selectTab('+_tabIdx+');');
171
171
  }
172
172
  else {
173
+ this.tabTriggerLink = false;
174
+ this.setClick(true);
173
175
  this.tabLabelBounds.push([this.rightmostPx,this.rightmostPx+_labelWidth]);
174
176
  }
175
177
  this.rightmostPx+=_labelWidth;
data/js/core/elem/elem.js CHANGED
@@ -507,18 +507,19 @@ ELEM = {
507
507
  **/
508
508
  setOpacity: function(_id, _opacity) {
509
509
  var _this = ELEM;
510
- if (_opacity === 1 && BROWSER_TYPE.ie6) {
510
+ if (_opacity === 1 && (BROWSER_TYPE.ie6 || BROWSER_TYPE.ie7 || BROWSER_TYPE.ie8)) {
511
511
  _this._elements[_id].style.setAttribute('filter', _this.getStyle(_id, 'filter', true).replace(/alpha([^)]*)/gi, ''));
512
512
  }
513
513
  else {
514
514
  if (_opacity < 0.01) {
515
515
  _opacity = 0;
516
516
  }
517
- if (BROWSER_TYPE.ie6) {
518
- _this._elements[_id].style.setAttribute('filter', _this.getStyle(_id, 'filter', true).replace(/alpha([^)]*)/gi, '') + 'alpha(opacity=' + _opacity * 100 + ')');
517
+ if (BROWSER_TYPE.ie6 || BROWSER_TYPE.ie7 || BROWSER_TYPE.ie8) {
518
+ var _prevAlpha = _this.getStyle(_id, 'filter', true);
519
+ _this._elements[_id].style.setAttribute('filter', _prevAlpha.replace(/alpha([^)]*)/gi, '') + 'alpha(opacity=' + _opacity * 100 + ')');
519
520
  }
520
521
  else if (BROWSER_TYPE.ie) {
521
- (_this._elements[_id].style.setAttribute('opacity', _opacity));
522
+ _this._elements[_id].style.setAttribute('opacity', _opacity);
522
523
  }
523
524
  else {
524
525
  _this._elements[_id].style.setProperty('opacity', _opacity, '');
@@ -1097,6 +1098,9 @@ ELEM = {
1097
1098
  if ((_key === 'opacity') && _bypass) {
1098
1099
  _retval = _this.getOpacity(_id);
1099
1100
  }
1101
+ else if (BROWSER_TYPE.ie7 || BROWSER_TYPE.ie8){
1102
+ _retval = _this._elements[_id].style[_key];
1103
+ }
1100
1104
  else {
1101
1105
  _retval = document.defaultView.getComputedStyle(_this._elements[_id], null).getPropertyValue(_key);
1102
1106
  }
@@ -1125,7 +1129,7 @@ ELEM = {
1125
1129
  return $3.toUpperCase() + $4;
1126
1130
  }
1127
1131
  );
1128
- _this._elements[_id].currentStyle[_camelName];
1132
+ _retval = _this._elements[_id].currentStyle[_camelName];
1129
1133
  }
1130
1134
  _cached[_key] = _retval;
1131
1135
  }
@@ -1213,10 +1217,10 @@ ELEM = {
1213
1217
 
1214
1218
  var _this = ELEM;
1215
1219
 
1216
- if (BROWSER_TYPE.ie6) {
1217
- _this.getStyle = _this._getStyleIE;
1218
- }
1219
1220
  if (BROWSER_TYPE.ie) {
1221
+ _this.getStyle = _this._getStyleIE;
1222
+ // }
1223
+ // if (BROWSER_TYPE.ie) {
1220
1224
  _this._flushStyleCache = _this._flushStyleCacheIE;
1221
1225
  }
1222
1226
 
@@ -49,7 +49,7 @@ Event = {
49
49
  isLeftClick: function(e) {
50
50
  // IE: left 1, middle 4, right 2
51
51
  if (BROWSER_TYPE.ie) {
52
- return (e.button === 1);
52
+ return (e.button === 1 || e.button === 3 || e.button === 5);
53
53
  }
54
54
  else {
55
55
  return (e.button === 0);
@@ -84,7 +84,10 @@ Event = {
84
84
  var i,
85
85
  l = Event.observers.length;
86
86
  for (i = 0; i < l; i++) {
87
- Event.stopObserving.apply(this, Event.observers[0]);
87
+ try {
88
+ Event.stopObserving.apply(this, Event.observers[0]);
89
+ }
90
+ catch(e){}
88
91
  }
89
92
  Event.observers = false;
90
93
  },
@@ -11,5 +11,11 @@
11
11
  // var//RSence
12
12
  // ..into this namespace.
13
13
  // Additional logic for handling the namespaces will however be required.
14
- var RSence = {};
14
+ var RSence = {
15
+ serverConf: function(_clientPrefix,_helloUrl){
16
+ COMM.ClientPrefix=_clientPrefix;
17
+ COMM.Transporter.HelloUrl=_helloUrl;
18
+ HThemeManager.themePath=_clientPrefix+'/themes';
19
+ }
20
+ };
15
21
 
@@ -140,33 +140,22 @@ HEventResponder = HClass.extend({
140
140
  setEvents: function(_events) {
141
141
  if(!this.events) {
142
142
  this.events = HClass.extend( {
143
- mouseMove: false,
144
- mouseDown: false,
145
- mouseUp: false,
146
- draggable: false,
147
- droppable: false,
148
- keyDown: false,
149
- keyUp: false,
150
- mouseWheel: false,
151
- textEnter: false,
152
- click: false,
153
- resize: false
154
- } ).extend( this.defaultEvents ).nu();
155
- }
156
- if(_events) {
157
- this.events = this.events.extend( _events );
143
+ mouseMove: false,
144
+ mouseDown: false,
145
+ mouseUp: false,
146
+ draggable: false,
147
+ droppable: false,
148
+ keyDown: false,
149
+ keyUp: false,
150
+ mouseWheel: false,
151
+ textEnter: false,
152
+ click: false,
153
+ resize: false,
154
+ doubleClick: false
155
+ } ).extend( this.defaultEvents ).extend( _events?_events:{} ).nu();
158
156
  }
159
157
  this.events.ctrl = this;
160
- // EVENT.focusOptions[this.elemId] = this.events;
161
- // var _mmoveStatus = this.events.mouseMove,
162
- // _mmoveIndex = EVENT.coordListeners.indexOf(this.elemId);
163
- // if (_mmoveStatus && (_mmoveIndex===-1)){
164
- // EVENT.coordListeners.push(this.elemId);
165
- // }
166
- // else if ((!_mmoveStatus) && (_mmoveIndex!==-1)){
167
- // EVENT.coordListeners.splice(_mmoveIndex,1);
168
- // }
169
- EVENT.reg( this, this.events);
158
+ EVENT.reg( this, this.events );
170
159
  return this;
171
160
  },
172
161
 
@@ -272,6 +261,24 @@ HEventResponder = HClass.extend({
272
261
  return this;
273
262
  },
274
263
 
264
+ /** = Description
265
+ * Registers or releases event listening for doubleClick events depending on
266
+ * the value of the flag argument.
267
+ *
268
+ * = Parameters
269
+ * +_flag+:: Set the doubleClick event listening on/off (true/false) for
270
+ * the component instance.
271
+ *
272
+ * = Returns
273
+ * +self+
274
+ *
275
+ **/
276
+ setDoubleClickable: function(_flag) {
277
+ this.events.doubleClick = _flag;
278
+ this.setEvents();
279
+ return this;
280
+ },
281
+
275
282
  /** = Description
276
283
  * Registers or releases event listening for mouseUp events depending on the
277
284
  * value of the flag argument.
@@ -402,6 +409,12 @@ HEventResponder = HClass.extend({
402
409
  return this.setClickable(_flag);
403
410
  },
404
411
 
412
+ /** Same as +setDoubleClickable+
413
+ **/
414
+ setDoubleClick: function(_flag) {
415
+ return this.setDoubleClickable(_flag);
416
+ },
417
+
405
418
  /** = Description
406
419
  * Default focus event responder method. Does nothing by default.
407
420
  * Called when the component gets focus.
@@ -498,11 +511,25 @@ HEventResponder = HClass.extend({
498
511
  * mouse cursor position.
499
512
  * +y+:: The vertical coordinate units (px) of the
500
513
  * mouse cursor position.
501
- * +_isRightButton+:: Boolean flag; true if the right(context) mouse
514
+ * +_isLeftButton+:: Boolean flag; false if the right(context) mouse
515
+ * button is pressed.
516
+ *
517
+ **/
518
+ click: function(x,y,_isLeftButton){},
519
+
520
+ /** = Description
521
+ * Default click event responder method. Does nothing by default.
522
+ *
523
+ * = Parameters
524
+ * +x+:: The horizontal coordinate units (px) of the
525
+ * mouse cursor position.
526
+ * +y+:: The vertical coordinate units (px) of the
527
+ * mouse cursor position.
528
+ * +_isLeftButton+:: Boolean flag; false if the right(context) mouse
502
529
  * button is pressed.
503
530
  *
504
531
  **/
505
- click: function(x,y,_isRightButton){},
532
+ doubleClick: function(x,y,_isLeftButton){},
506
533
 
507
534
  /** = Description
508
535
  * Default mouseDown event responder method. Does nothing by default.
@@ -512,11 +539,11 @@ HEventResponder = HClass.extend({
512
539
  * mouse cursor position.
513
540
  * +y+:: The vertical coordinate units (px) of the
514
541
  * mouse cursor position.
515
- * +_isRightButton+:: Boolean flag; true if the right(context) mouse
542
+ * +_isLeftButton+:: Boolean flag; false if the right(context) mouse
516
543
  * button is pressed.
517
544
  *
518
545
  **/
519
- mouseDown: function(x,y,_isRightButton) {},
546
+ mouseDown: function(x,y,_isLeftButton) {},
520
547
 
521
548
 
522
549
  /** = Description
@@ -527,11 +554,11 @@ HEventResponder = HClass.extend({
527
554
  * mouse cursor position.
528
555
  * +y+:: The vertical coordinate units (px) of the
529
556
  * mouse cursor position.
530
- * +_isRightButton+:: Boolean flag; true if the right(context) mouse
557
+ * +_isLeftButton+:: Boolean flag; false if the right(context) mouse
531
558
  * button is pressed.
532
559
  *
533
560
  **/
534
- mouseUp: function(x,y,_isRightButton) {},
561
+ mouseUp: function(x,y,_isLeftButton) {},
535
562
 
536
563
  /** = Description
537
564
  * Default mouseWheel event responder method. Does nothing by default.
@@ -27,7 +27,8 @@ EVENT = {
27
27
  keyUp: false,
28
28
  mouseWheel: false,
29
29
  resize: false,
30
- textEnter: false
30
+ textEnter: false,
31
+ doubleClick: false
31
32
  },
32
33
 
33
34
  /** = Description
@@ -69,7 +70,7 @@ EVENT = {
69
70
  * Command, Menu or Start modifier keys being held down.
70
71
  *
71
72
  **/
72
- status: [false, false, 0, 0, [], false, false, false, false, false],
73
+ status: [false, false, -1, -1, [], false, false, false, false, false],
73
74
 
74
75
  /** The index in the status array for the left mouse button.
75
76
  **/
@@ -152,6 +153,7 @@ EVENT = {
152
153
  Event.observe( _globalEventTargetElement, 'contextmenu', _this.contextMenu );
153
154
  Event.observe( _globalEventTargetElement, 'resize', _this.resize );
154
155
  Event.observe( _globalEventTargetElement, 'mousewheel', _this.mouseWheel );
156
+ Event.observe( _globalEventTargetElement, 'dblclick', _this.doubleClick );
155
157
  // ],
156
158
  // i = 0;
157
159
  // for (; i !== _eventMap.length; i++) {
@@ -263,6 +265,10 @@ EVENT = {
263
265
  }
264
266
  }
265
267
  Event.observe(_elem, 'mouseover', _this._mouseOver);
268
+ if(_ctrl.drawn){
269
+ _this._updateHoverItems();
270
+ (_this.hovered.length !== 0) && (_this.hovered.indexOf(_ctrl.elemId) === _this.hovered.length-1) && _this.focus(_ctrl);
271
+ }
266
272
  },
267
273
 
268
274
  /** Unregisters the _ctrl object event listeners
@@ -275,6 +281,9 @@ EVENT = {
275
281
  _this.changeActiveControl(null);
276
282
  }
277
283
  _elemId = _ctrl.elemId;
284
+ if (_this.focused[_elemId]){
285
+ _this.blur(_ctrl);
286
+ }
278
287
  _elem = ELEM.get(_elemId);
279
288
 
280
289
  _this._coordCache[_elemId] = null;
@@ -297,6 +306,7 @@ EVENT = {
297
306
  }
298
307
  if (_elem !== undefined) {
299
308
  Event.stopObserving(_elem, 'mouseover', _this._mouseOver);
309
+ Event.stopObserving(_elem, 'mouseout', _this._mouseOut);
300
310
  }
301
311
  },
302
312
 
@@ -517,28 +527,33 @@ EVENT = {
517
527
  _elem,
518
528
  _pos,
519
529
  _size,
520
- _coords;
521
- _this.hovered = [];
530
+ _coords,
531
+ _hovered = [];
522
532
  for (; i !== _this.listeners.length; i++) {
523
533
  if (!_this.listeners[i] || !_this.focusOptions[i].ctrl) {
524
534
  continue;
525
535
  }
526
536
  _ctrl = _this.focusOptions[i].ctrl;
527
- _elem = ELEM.get(i);
528
- if (!_this._coordCacheFlag || !_this._coordCache[i]) {
529
- _pos = ELEM.getVisiblePosition(_ctrl.elemId);
530
- // [x,y]
531
- _size = ELEM.getVisibleSize(_ctrl.elemId);
532
- // [w,h]
533
- _this._coordCache[i] = [_pos[0], _pos[1], _size[0], _size[1]];
534
- }
535
- _coords = _this._coordCache[i];
537
+ if(_ctrl.drawn){
538
+ _elem = ELEM.get(i);
539
+ if (!_this._coordCacheFlag || !_this._coordCache[i]) {
540
+ _pos = ELEM.getVisiblePosition(_ctrl.elemId);
541
+ // [x,y]
542
+ _size = ELEM.getVisibleSize(_ctrl.elemId);
543
+ // [w,h]
544
+ _this._coordCache[i] = [_pos[0], _pos[1], _size[0], _size[1]];
545
+ }
546
+ _coords = _this._coordCache[i];
536
547
 
537
- // Is the mouse pointer inside the element's rectangle?
538
- if (x >= _coords[0] && x <= _coords[0] + _coords[2] && y >= _coords[1] && y <= _coords[1] + _coords[3]) {
539
- _this.hovered.push(i);
548
+ // Is the mouse pointer inside the element's rectangle?
549
+ if (x >= _coords[0] && x <= _coords[0] + _coords[2] && y >= _coords[1] && y <= _coords[1] + _coords[3]) {
550
+ // console.log('coords:',_coords);
551
+ _hovered.push(i);
552
+ }
540
553
  }
541
554
  }
555
+ // console.log('update hover:',_hovered);
556
+ _this.hovered = _hovered;
542
557
  },
543
558
 
544
559
  /** = Description
@@ -674,7 +689,6 @@ EVENT = {
674
689
  if(!_isLeftButton){
675
690
  return true;
676
691
  }
677
- _this.status[_this.button1] = true;
678
692
  for (; i !== _this.focused.length; i++) {
679
693
  if (_this.focused[i] === true) {
680
694
  // Set the active control to the currently focused item.
@@ -703,7 +717,6 @@ EVENT = {
703
717
  }
704
718
  }
705
719
  //if(_this.hovered.length!==0){Event.stop(e);}
706
- _this.status[_this.button1] = false;
707
720
  return true;
708
721
  },
709
722
 
@@ -723,13 +736,15 @@ EVENT = {
723
736
  _prevActiveCtrl.active = false;
724
737
  _prevActiveCtrl._lostActiveStatus(_ctrl);
725
738
  }
726
- _this.activeControl = null;
727
739
  if (_ctrl) {
728
740
  // A new control gained the active status.
729
741
  _ctrl.active = true;
730
742
  _this.activeControl = _ctrl;
731
743
  _ctrl._gainedActiveStatus(_prevActiveCtrl);
732
744
  }
745
+ else {
746
+ _this.activeControl = null;
747
+ }
733
748
  }
734
749
  },
735
750
 
@@ -797,6 +812,33 @@ EVENT = {
797
812
  return true;
798
813
  },
799
814
 
815
+ /** Mid-level double-click manager.
816
+ * Gets called on the onDoubleClick event.
817
+ * Delegates the following call to the high-level event receivers of all
818
+ * enabled controls registered, depending on the events they registered:
819
+ * - doubleClick
820
+ *
821
+ **/
822
+ doubleClick: function(e) {
823
+ var _this = EVENT,
824
+ _didEndDrag = false,
825
+ x = _this.status[_this.crsrX],
826
+ y = _this.status[_this.crsrY],
827
+ _elemId,
828
+ _ctrl,
829
+ i = 0;
830
+ _this._modifiers(e);
831
+ // Check for mouseUp listeners.
832
+ for (i = 0; i !== _this.focused.length; i++) {
833
+ if (_this.focused[i] === true) {
834
+ if (_this.focusOptions[i].doubleClick === true) {
835
+ _this.focusOptions[i].ctrl.doubleClick(x, y, true);
836
+ }
837
+ }
838
+ }
839
+ return true;
840
+ },
841
+
800
842
 
801
843
  /** Mid-level key press manager.
802
844
  * Gets called on the onKeyDown event.
data/lib/conf/argv.rb CHANGED
@@ -125,7 +125,9 @@ module RSence
125
125
  expect_option = false
126
126
  else
127
127
  if arg.start_with?('--')
128
- if arg == '--debug'
128
+ if arg == '--profile'
129
+ true
130
+ elsif arg == '--debug'
129
131
  set_debug
130
132
  elsif arg == '--verbose'
131
133
  set_verbose
@@ -504,14 +504,20 @@ module RSence
504
504
  end
505
505
  to_unload.each do |name|
506
506
  next if @deps.category?( name )
507
- puts "Unloading #{name.inspect}"
507
+ if RSence.args[:verbose]
508
+ print "Unloading #{name.inspect}..."; STDOUT.flush
509
+ end
508
510
  unload_bundle( name )
511
+ puts "done!" if RSence.args[:verbose]
509
512
  end
510
513
  to_reload.each do |name|
511
514
  next if @deps.category?( name )
512
- puts "Unloading #{name.inspect}"
515
+ if RSence.args[:verbose]
516
+ print "Unloading #{name.inspect}..."; STDOUT.flush
517
+ end
513
518
  unload_order = unload_bundle( name )
514
519
  to_load += unload_order
520
+ puts "done!" if RSence.args[:verbose]
515
521
  end
516
522
  info_map = {}
517
523
  to_load.each do |name|
@@ -531,14 +537,18 @@ module RSence
531
537
  next if @deps.category?( name )
532
538
  next unless to_load.include?( name )
533
539
  info = info_map[name]
534
- if to_reload.include?( name )
535
- puts "Reloading #{name.inspect}"
536
- else
537
- puts "Loading #{name.inspect}"
540
+ if RSence.args[:verbose]
541
+ if to_reload.include?( name )
542
+ print "Reloading #{name.inspect}..."
543
+ else
544
+ print "Loading #{name.inspect}..."
545
+ end
546
+ STDOUT.flush
538
547
  end
539
548
  @info[name] = info
540
549
  load_bundle( name )
541
550
  to_open.push( name )
551
+ puts "done!" if RSence.args[:verbose]
542
552
  end
543
553
  unless no_deps.empty?
544
554
  warn "Warning! Unable to load the following bundles; missing dependencies:"
@@ -547,8 +557,18 @@ module RSence
547
557
  end
548
558
  end
549
559
  to_open.each do |name|
550
- puts "Opening #{name.inspect}"
560
+ if RSence.args[:verbose]
561
+ print "Opening #{name.inspect}..."; STDOUT.flush
562
+ end
551
563
  call( name, :open )
564
+ puts "done!" if RSence.args[:verbose]
565
+ end
566
+ if not (to_load.empty? and to_unload.empty? and to_reload.empty?)
567
+ puts "Plugin bundles:"
568
+ puts " loaded: #{to_load.join(', ')}" unless to_load.empty?
569
+ puts " unloaded: #{to_unload.join(', ')}" unless to_unload.empty?
570
+ puts " reloaded: #{to_reload.join(', ')}" unless to_reload.empty?
571
+ puts " opened: #{to_open.join(', ')}" unless to_open.empty?
552
572
  end
553
573
  end
554
574
 
@@ -145,19 +145,26 @@ module RSence
145
145
 
146
146
  # If the session is valid, continue:
147
147
  if msg.ses_valid and response_success
148
-
148
+
149
149
  # If cookies are true, it means the url base needs to
150
150
  # be changed from /hello to /x to prevent further cookie juggling.
151
151
  if options[:cookies] and not options[:servlet]
152
- msg.reply("COMM.Transporter.url=#{RSence.config[:broker_urls][:x].to_json};")
152
+ conf_sync_url = RSence.config[:broker_urls][:x]
153
+ else
154
+ conf_sync_url = RSence.config[:broker_urls][:hello]
153
155
  end
154
-
156
+ if msg.request.path != conf_sync_url
157
+ msg.reply("COMM.Transporter.url=#{conf_sync_url.to_json};")
158
+ end
159
+
155
160
  # Appends a 'new session.' message for new sessions in RSence.args[:verbose]:
156
- puts "new session." if msg.new_session and RSence.args[:verbose]
157
- puts "restored session." if msg.restored_session and RSence.args[:verbose]
158
- puts "clone source." if msg.cloned_targets and RSence.args[:verbose]
159
- puts "clone target." if msg.cloned_source and RSence.args[:verbose]
160
-
161
+ if RSence.args[:verbose]
162
+ puts "new session." if msg.new_session
163
+ puts "restored session." if msg.restored_session
164
+ puts "clone source." if msg.cloned_targets
165
+ puts "clone target." if msg.cloned_source
166
+ end
167
+
161
168
  ## Pass the client XML to the value manager
162
169
  if request.query.has_key?( 'values' )
163
170
  syncdata_str = request.query[ 'values' ]
@@ -172,7 +179,6 @@ module RSence
172
179
 
173
180
  ## Calls the restore_ses of plugins, when a session is restored (page reload with previously active session)
174
181
  if msg.restored_session
175
-
176
182
  msg.session[:deps] = []
177
183
 
178
184
  if msg.cloned_source
@@ -210,7 +216,7 @@ module RSence
210
216
  xhr_traceback_handler( e, "Transporter::PluginDelegateClonedSourceError: @plugins.delegate 'cloned_source' failed." )
211
217
  end
212
218
  end
213
-
219
+
214
220
  ## Calls validators for changed values
215
221
  begin
216
222
  @valuemanager.validate( msg )
@@ -219,7 +225,7 @@ module RSence
219
225
  xhr_error_handler( msg, :valuemanager_validate_error, e.message )
220
226
  xhr_traceback_handler( e, "Transporter::ValueManagerValidateError: @valuemanager.validate failed." )
221
227
  end
222
-
228
+
223
229
  ### Allows every plugin to respond to the idle call
224
230
  begin
225
231
  @plugins.delegate( :idle, msg )
@@ -228,7 +234,7 @@ module RSence
228
234
  xhr_error_handler( msg, :plugin_idle_error, e.message )
229
235
  xhr_traceback_handler( e, "Transporter::PluginIdleError: @plugins.idle failed." )
230
236
  end
231
-
237
+
232
238
  ### Processes outgoing values to client
233
239
  begin
234
240
  @valuemanager.sync_client( msg )
@@ -237,7 +243,7 @@ module RSence
237
243
  xhr_error_handler( msg, :valuemanager_sync_client_error, e.message )
238
244
  xhr_traceback_handler( e, "Transporter::ValueManagerSyncClientError: @valuemanager.sync_client failed." )
239
245
  end
240
-
246
+
241
247
  else
242
248
 
243
249
  # session is not valid, the error was set in SessionManager
@@ -135,7 +135,7 @@ module RSence
135
135
 
136
136
  # loop through un-validated values and validate them
137
137
  check_ids = session_values[:check]
138
- check_ids.each do |check_id|
138
+ check_ids.clone.each do |check_id|
139
139
  session_values[:by_id][check_id].tell( msg )
140
140
  end
141
141
 
@@ -186,6 +186,9 @@ class ClientPkgBuild
186
186
 
187
187
  def minimize_data
188
188
  unless @quiet
189
+ @logger.log( '' )
190
+ @logger.log( "Client package build report.......................#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}" )
191
+ @logger.log( '' )
189
192
  @logger.log( "JS Package....................: Original | Minimized | Compressed" )
190
193
  @logger.log( " : | |" )
191
194
  end
@@ -234,7 +237,7 @@ class ClientPkgBuild
234
237
 
235
238
  def build_themes
236
239
  unless @quiet
237
- @logger.log( '' )
240
+ @logger.log( '' )
238
241
  @logger.log( "Theme name and part...........: Original | Minimized | Compressed" )
239
242
  @logger.log( " : | |" )
240
243
  end
@@ -277,11 +280,15 @@ class ClientPkgBuild
277
280
  unless @quiet
278
281
  print_stat( "#{theme_name}/css", @theme_sizes[theme_name][:css][0], @theme_sizes[theme_name][:css][1], theme_css_template_data_gz.size )
279
282
  print_stat( "#{theme_name}/gfx", @theme_sizes[theme_name][:gfx], -1, -1 )
283
+ @logger.log( '' )
280
284
  end
281
285
  end
282
286
  end
283
287
 
284
288
  def run
289
+
290
+ time_start = Time.now.to_f*10000
291
+
285
292
  # hash of bundles per bundle name per theme; @html_by_theme[theme_name][bundle_name] = bundle_data
286
293
  @html_by_theme = {}
287
294
  @css_by_theme = {}
@@ -316,10 +323,14 @@ class ClientPkgBuild
316
323
  package_data = package_array.join('')
317
324
  @destination_files[ package_name ] = package_data
318
325
  end
326
+
319
327
  build_indexes
320
328
  minimize_data
321
329
  build_themes
322
330
 
331
+ ms_taken = ((Time.now.to_f*10000)-time_start).to_i/10.0
332
+ @logger.log( "Time taken: #{ms_taken}ms\n\n" )
333
+
323
334
  end
324
335
 
325
336
  def setup_dirs
@@ -10,8 +10,6 @@ __SCRIPT_DEPS__
10
10
  <script>
11
11
 
12
12
  /** Runtime configuration: **/
13
- COMM.ClientPrefix='__CLIENT_BASE__';
14
- COMM.Transporter.HelloUrl='__CLIENT_HELLO__';
15
- HThemeManager.themePath='__CLIENT_BASE__/themes';
13
+ RSence.serverConf('__CLIENT_BASE__','__CLIENT_HELLO__');
16
14
 
17
15
  </script></head><body id="body"><noscript>__NOSCRIPT__</noscript></body></html>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsence
3
3
  version: !ruby/object:Gem::Version
4
- hash: 97
4
+ hash: 105
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
- - 4
10
- - 15
11
- version: 2.0.4.15
9
+ - 8
10
+ - 19
11
+ version: 2.0.8.19
12
12
  platform: ruby
13
13
  authors:
14
14
  - Riassence Inc.
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-07-16 00:00:00 +03:00
19
+ date: 2010-07-26 00:00:00 +03:00
20
20
  default_executable: rsence
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency