[interchange-cvs] interchange - jon modified code/UserTag/button.tag
interchange-cvs at icdevgroup.org
interchange-cvs at icdevgroup.org
Fri Dec 29 00:18:00 EST 2006
User: jon
Date: 2006-12-29 05:18:00 GMT
Modified: code/UserTag button.tag
Log:
Fix custom onClick handling for image buttons (for custom confirmation
routines in particular).
Add support for custom onMouseOver and onMouseOut events in [javascript]
blocks, coexisting with [button]'s own events.
By Jeff Boes <jeff at endpoint.com>.
Revision Changes Path
1.21 +26 -4 interchange/code/UserTag/button.tag
rev 1.21, prev_rev 1.20
Index: button.tag
===================================================================
RCS file: /var/cvs/interchange/code/UserTag/button.tag,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -u -r1.20 -r1.21
--- button.tag 29 Dec 2006 00:57:01 -0000 1.20
+++ button.tag 29 Dec 2006 05:17:59 -0000 1.21
@@ -1,12 +1,12 @@
# Copyright 2002-2005 Interchange Development Group (http://www.icdevgroup.org/)
# Licensed under the GNU GPL v2. See file LICENSE for details.
-# $Id: button.tag,v 1.20 2006/12/29 00:57:01 jon Exp $
+# $Id: button.tag,v 1.21 2006/12/29 05:17:59 jon Exp $
UserTag button Order name src text
UserTag button addAttr
UserTag button attrAlias value text
UserTag button hasEndTag
-UserTag button Version $Revision: 1.20 $
+UserTag button Version $Revision: 1.21 $
UserTag button Routine <<EOR
sub {
my ($name, $src, $text, $opt, $action) = @_;
@@ -42,6 +42,8 @@
}
my $onclick = '';
+ my $onmouseover = '';
+ my $onmouseout = '';
while($action =~ s! \[
(
j (?:ava)? s (?:cript)?
@@ -59,6 +61,18 @@
$onclick = $1;
next;
}
+ if ($script =~ s/\bonmouse(\w+)\s*=\s*"(.*?)"//is) {
+ if (lc($1) eq 'over') {
+ $onmouseover .= ($onmouseover ? ';' : '') . $2;
+ }
+ elsif (lc($1) eq 'out') {
+ $onmouseout .= ($onmouseout ? ';' : '') . $2;
+ }
+ else {
+ logError(q{Skipping 'onmouse%s', invalid JavaScript event}, $1);
+ }
+ next;
+ }
push @js, $script;
}
@@ -183,10 +197,18 @@
}
$opt->{link_href} ||= 'javascript: void 0';
+ if ($onclick =~ /^\s*onclick\s*=\s*"(.*?)"/i) {
+ $onclick = $1 . ' && ';
+ }
# QUOTING (fix here too?)
$out .= <<EOF;
-<a href="$opt->{link_href}"$opt->{extra} onMouseOver="window.status='$wstatus'"
- onClick="$confirm mv_click_map_unique(document.$opt->{form}, '$clickname', '$text') && $opt->{form}.submit(); return(false);"
+<a href="$opt->{link_href}"$opt->{extra} onMouseOver="window.status='$wstatus';$onmouseover"
+EOF
+ $out .= <<EOF if $onmouseout;
+ onMouseOut="$onmouseout"
+EOF
+ $out .= <<EOF;
+ onClick="$confirm $onclick mv_click_map_unique(document.$opt->{form}, '$clickname', '$text') && $opt->{form}.submit(); return(false);"
alt="$wstatus"><img alt="$wstatus" src="$src" border='$opt->{border}'$position>$a_before$anchor$a_after
EOF
More information about the interchange-cvs
mailing list