[Jifty-commit] r4873 - in jifty/trunk: lib/Jifty/Web
share/web/static/js
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Jan 18 00:02:08 EST 2008
Author: alexmv
Date: Fri Jan 18 00:02:07 2008
New Revision: 4873
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty/Web/PageRegion.pm
jifty/trunk/share/web/static/js/jifty.js
Log:
r26877 at zoq-fot-pik: chmrr | 2008-01-17 23:59:54 -0500
* Lazy page regions (only work with JS)
Modified: jifty/trunk/lib/Jifty/Web/PageRegion.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Web/PageRegion.pm (original)
+++ jifty/trunk/lib/Jifty/Web/PageRegion.pm Fri Jan 18 00:02:07 2008
@@ -15,7 +15,7 @@
=cut
use base qw/Jifty::Object Class::Accessor::Fast/;
-__PACKAGE__->mk_accessors(qw(name force_path force_arguments default_path default_arguments qualified_name parent region_wrapper));
+__PACKAGE__->mk_accessors(qw(name force_path force_arguments default_path default_arguments qualified_name parent region_wrapper lazy));
use Jifty::JSON;
use Encode ();
@@ -60,8 +60,9 @@
HTML region preamble that makes Javascript aware of its presence.
Defaults to true.
+=item lazy (optional)
-=item
+Delays the loading of the fragment until render-time
=back
@@ -79,6 +80,7 @@
force_arguments => {},
force_path => undef,
region_wrapper => 1,
+ lazy => 0,
@_
);
@@ -107,6 +109,7 @@
$self->arguments({});
$self->parent($args{parent} || Jifty->web->current_region);
$self->region_wrapper($args{region_wrapper});
+ $self->lazy($args{lazy});
# Keep track of the fully qualified name (which should be unique)
$self->log->warn("Repeated region: " . $self->qualified_name)
@@ -284,8 +287,11 @@
. qq|'| . $self->path . qq|',|
. ( $self->parent ? qq|'| . $self->parent->qualified_name . qq|'| : q|null|)
. qq|);\n|
- . qq|</script>|
- . qq|<div id="region-| . $self->qualified_name . qq|">|;
+ . qq|</script>|;
+ if ($self->lazy) {
+ return $result . qq|<div id="region-| . $self->qualified_name . qq|" class="lazy_region"></div>|;
+ }
+ $result .= qq|<div id="region-| . $self->qualified_name . qq|">|;
}
$self->render_as_subrequest(\$result, \%arguments);
Modified: jifty/trunk/share/web/static/js/jifty.js
==============================================================================
--- jifty/trunk/share/web/static/js/jifty.js (original)
+++ jifty/trunk/share/web/static/js/jifty.js Fri Jan 18 00:02:07 2008
@@ -628,6 +628,9 @@
element = $(element);
var extras = $A();
+ if (!element)
+ return extras;
+
var args = Form.Element.buttonArguments(element);
var keys = args.keys();
for (var i = 0; i < keys.length; i++) {
@@ -724,6 +727,10 @@
},
'.form_field .error, .form_field .warning, .form_field .canonicalization_note': function(e) {
if ( e.innerHTML == "" ) Element.hide(e);
+ },
+ '.lazy_region': function(e) {
+ var region = e.getAttribute("id").replace(/^region-/,"");
+ Jifty.update( { 'fragments': [{'region': region, 'mode': 'Replace'}]}, e);
}
});
@@ -1041,6 +1048,8 @@
var has_request = 0;
request.set('actions', $H());
for (var moniker in named_args['actions']) {
+ if (moniker == 'extend')
+ continue;
var disable = named_args['actions'][moniker];
var a = new Action(moniker, button_args);
current_actions.set(moniker, a); // XXX: how do i make this bloody singleton?
More information about the Jifty-commit
mailing list