[Jifty-commit] r3617 - in jifty/branches/trimclient: .
examples/Yada/lib/Yada lib/Jifty/Plugin/SkeletonApp
lib/Jifty/Web share/web/static/js
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Sat Jul 7 16:44:30 EDT 2007
Author: clkao
Date: Sat Jul 7 16:44:30 2007
New Revision: 3617
Modified:
jifty/branches/trimclient/ (props changed)
jifty/branches/trimclient/examples/Yada/lib/Yada/View.pm
jifty/branches/trimclient/lib/Jifty/Plugin/SkeletonApp/View.pm
jifty/branches/trimclient/lib/Jifty/View/Declare/Compile.pm
jifty/branches/trimclient/lib/Jifty/Web/PageRegion.pm
jifty/branches/trimclient/share/web/static/js/jifty.js
Log:
r18477 at ubuntu: clkao | 2007-06-26 12:38:26 +0100
intermediate commit to converge with B::Deparse cleanup.
r18478 at ubuntu: clkao | 2007-06-26 12:49:26 +0100
More convergence.
r18492 at ubuntu: clkao | 2007-06-26 17:13:09 +0100
Catch up with B::Deparse cleanups.
r18549 at ubuntu: clkao | 2007-06-29 13:53:13 +0100
current_region.
r18657 at ubuntu: clkao | 2007-07-07 20:58:35 +0100
minor cleanups.
r18658 at ubuntu: clkao | 2007-07-07 20:58:56 +0100
Mark __jifty/empty as static
r18659 at ubuntu: clkao | 2007-07-07 21:04:03 +0100
Be graceful when failed to eval the compiled js.
r18660 at ubuntu: clkao | 2007-07-07 21:41:53 +0100
mixing hyperlink into static.
r18661 at ubuntu: clkao | 2007-07-07 21:42:27 +0100
Emit anonhash.
r18662 at ubuntu: clkao | 2007-07-07 21:43:04 +0100
Fake hyperlink on clientside.
Modified: jifty/branches/trimclient/examples/Yada/lib/Yada/View.pm
==============================================================================
--- jifty/branches/trimclient/examples/Yada/lib/Yada/View.pm (original)
+++ jifty/branches/trimclient/examples/Yada/lib/Yada/View.pm Sat Jul 7 16:44:30 2007
@@ -11,23 +11,13 @@
my $self = shift;
title { _('Yada!') };
- hyperlink(label => 'clear',
- onclick => [{region => 'test_region',
- replace_with => '__jifty/empty',
- }]);
-
- render_region(
- name => 'test_region',
- path => '/__jifty/empty'
- );
+ render_region('test_region');
hyperlink(label => 'FAQ',
onclick => [{region => 'test_region',
replace_with => '_faq',
}]);
-
-
form {
set(item_path => '/todo/view_brief');
render_region(name => 'list', path => '/todo/list');
@@ -46,6 +36,7 @@
}
}
}
+ hyperlink(label => 'close', onclick => [{replace_with => '/__jifty/empty'}])
}
};
Modified: jifty/branches/trimclient/lib/Jifty/Plugin/SkeletonApp/View.pm
==============================================================================
--- jifty/branches/trimclient/lib/Jifty/Plugin/SkeletonApp/View.pm (original)
+++ jifty/branches/trimclient/lib/Jifty/Plugin/SkeletonApp/View.pm Sat Jul 7 16:44:30 2007
@@ -40,7 +40,7 @@
Jifty->web->navigation->render_as_menu; };
};
-template '__jifty/empty' => sub {
+template '__jifty/empty' => sub :Static {
'';
};
Modified: jifty/branches/trimclient/lib/Jifty/View/Declare/Compile.pm
==============================================================================
--- jifty/branches/trimclient/lib/Jifty/View/Declare/Compile.pm (original)
+++ jifty/branches/trimclient/lib/Jifty/View/Declare/Compile.pm Sat Jul 7 16:44:30 2007
@@ -155,6 +155,16 @@
return "function () " . $text;
}
+sub e_anonhash {
+ my ($self, $info) = @_;
+ my @exprs = @{$info->{exprs}};
+ my @pairs;
+ while (my @p = splice(@exprs, 0, 2)) {
+ push @pairs, join(': ', map { $self->deparse($_, 6) } @p);
+ }
+ return '{' . join(", ", @pairs) . '}';
+}
+
sub pp_entersub {
my $self = shift;
my $ret = $self->SUPER::pp_entersub(@_);
Modified: jifty/branches/trimclient/lib/Jifty/Web/PageRegion.pm
==============================================================================
--- jifty/branches/trimclient/lib/Jifty/Web/PageRegion.pm (original)
+++ jifty/branches/trimclient/lib/Jifty/Web/PageRegion.pm Sat Jul 7 16:44:30 2007
@@ -389,9 +389,8 @@
sub _actual_td_code {
my $code = shift or return;
-
- return PadWalker::closed_over($code)->{'$coderef'}
- ? ${ PadWalker::closed_over($code)->{'$coderef'} } : $code;
+ my $closed_over = PadWalker::closed_over($code)->{'$coderef'};
+ return $closed_over ? $$closed_over : $code;
}
sub client_cacheable {
Modified: jifty/branches/trimclient/share/web/static/js/jifty.js
==============================================================================
--- jifty/branches/trimclient/share/web/static/js/jifty.js (original)
+++ jifty/branches/trimclient/share/web/static/js/jifty.js Sat Jul 7 16:44:30 2007
@@ -13,17 +13,40 @@
Jifty.web = function() { return Jifty.Web };
-var render_param = function(a, field) { outs(a.render_param(field)) };
-var form_return = function(foo, label, bar, submit) {
- var action_hash = {};
- action_hash[submit.moniker] = 1;
- // XXX: fix the fabricated refresh-self
+function _get_named_args(args) {
+}
+
+function _get_onclick(action_hash, name, args, path) {
var onclick = 'if(event.ctrlKey||event.metaKey||event.altKey||event.shiftKey) return true; return update('
+ JSON.stringify({'continuation': {},
'actions': action_hash,
- 'fragments': [{'mode': 'Replace', 'args': {}, 'region':'__page-signup_widget', 'path': '_signup'}]})
+ 'fragments': [{'mode': 'Replace', 'args': args, 'region': name, 'path': path}]})
+', this)';
onclick = onclick.replace(/"/g, "'"); //"' )# grr emacs!
+ return onclick;
+}
+// XXX
+var hyperlink = function(foo, label, bar, onclick) {
+ var current_region = Jifty.Web.current_region;
+ var onclick = _get_onclick({}, current_region.name, current_region.args, onclick[0].replace_with);
+ outs( a(function() { attr(function()
+ {return ['onclick', onclick]});
+ return label
+ }));
+}
+
+var render_param = function(a, field) { outs(a.render_param(field)) };
+var form_return = function(foo, label, bar, submit) {
+ var action_hash = {};
+ action_hash[submit.moniker] = 1;
+ // XXX: fix the fabricated refresh-self
+ // XXX: implicit onclick only for now
+
+ // $self->_push_onclick($args, { refresh_self => 1, submit => $args->{submit} });
+ // @args{qw/mode path region/} = ('Replace', Jifty->web->current_region->path, Jifty->web->current_region);
+
+ var current_region = Jifty.Web.current_region;
+ var onclick = _get_onclick(action_hash, current_region.name, current_region.args, current_region.path);
outs(
div(function() {
attr(function() { return ['class', 'submit_button'] });
@@ -852,7 +875,7 @@
var CACHE = {};
// FIXME: try not to pollute the namespace!
-var tags = ['div', 'h2', 'dl', 'dt', 'dd', 'span', 'label', 'input'];
+var tags = ['div', 'h2', 'dl', 'dt', 'dd', 'span', 'label', 'input', 'a'];
for (var i in tags) {
this[tags[i]] = _mk_tag_wrapper(tags[i]);
}
@@ -893,7 +916,7 @@
var _post = post ? post(attr) : '</'+name+'>';
if (want_outbuf && this.out_buf) {
first += this.out_buf;
- this.outbuf = '';
+ this.out_buf = '';
}
return _pre + first + _post + buf.join('');
}
@@ -919,13 +942,14 @@
} else if (fragment_bit.firstChild) {
textContent = fragment_bit.firstChild.nodeValue;
}
- var cache_func;
- try { cache_func = eval(textContent) }
+ try {
+ var cache_func = eval(textContent);
+ CACHE[f['path']] = { 'type': c_type, 'content': cache_func };
+ }
catch(e) {
alert(e);
alert(textContent);
}
- CACHE[f['path']] = { 'type': c_type, 'content': cache_func };
}
});
};
@@ -1075,7 +1099,8 @@
var content_node = document.createElement('content');
var cached_result;
- try { cached_result = cached['content']() }
+ Jifty.Web.current_region = fragments[f['region']];
+ try { cached_result = apply_cached_for_action(cached['content'], []) }
catch (e) { alert(e) }
content_node.textContent = cached_result;
@@ -1094,6 +1119,7 @@
my_fragment.setAttribute('id', f['region']);
update_from_cache.push(function(){
var cached_result;
+ Jifty.Web.current_region = fragments[f['region']];
try {
cached_result = apply_cached_for_action(cached['content'], Form.getActions(form));
}
More information about the Jifty-commit
mailing list