view release on metacpan or search on metacpan
lib/Apache/SdnFw/js/builder.js view on Meta::CPAN
ATTR_MAP: {
'className': 'class',
'htmlFor': 'for'
},
_attributes: function(attributes) {
var attrs = [];
for(attribute in attributes)
attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
'="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'"') + '"');
return attrs.join(" ");
},
_children: function(element, children) {
if(children.tagName) {
element.appendChild(children);
return;
}
if(typeof children=='object') { // array can hold nodes and text
children.flatten().each( function(e) {
if(typeof e=='object')
lib/Apache/SdnFw/js/controls.js view on Meta::CPAN
this.postProcessEditField();
if (e) Event.stop(e);
},
enterHover: function(e) {
if (this.options.hoverClassName)
this.element.addClassName(this.options.hoverClassName);
if (this._saving) return;
this.triggerCallback('onEnterHover');
},
getText: function() {
return this.element.innerHTML.unescapeHTML();
},
handleAJAXFailure: function(transport) {
this.triggerCallback('onFailure', transport);
if (this._oldInnerHTML) {
this.element.innerHTML = this._oldInnerHTML;
this._oldInnerHTML = null;
}
},
handleFormCancellation: function(e) {
this.wrapUp();
lib/Apache/SdnFw/js/prototype.js view on Meta::CPAN
break;
} catch (e) { }
}
return returnValue;
}
};
RegExp.prototype.match = RegExp.prototype.test;
RegExp.escape = function(str) {
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};
/*--------------------------------------------------------------------------*/
var PeriodicalExecuter = Class.create({
initialize: function(callback, frequency) {
this.callback = callback;
this.frequency = frequency;
this.currentlyExecuting = false;
lib/Apache/SdnFw/js/prototype.js view on Meta::CPAN
var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
return (this.match(matchAll) || []).map(function(scriptTag) {
return (scriptTag.match(matchOne) || ['', ''])[1];
});
},
evalScripts: function() {
return this.extractScripts().map(function(script) { return eval(script) });
},
escapeHTML: function() {
var self = arguments.callee;
self.text.data = this;
return self.div.innerHTML;
},
unescapeHTML: function() {
var div = new Element('div');
div.innerHTML = this.stripTags();
return div.childNodes[0] ? (div.childNodes.length > 1 ?
$A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
div.childNodes[0].nodeValue) : '';
},
toQueryParams: function(separator) {
var match = this.strip().match(/([^?#]*)(#.*)?$/);
if (!match) return { };
lib/Apache/SdnFw/js/prototype.js view on Meta::CPAN
underscore: function() {
return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
},
dasherize: function() {
return this.gsub(/_/,'-');
},
inspect: function(useDoubleQuotes) {
var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
var character = String.specialChar[match[0]];
return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
});
if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
return "'" + escapedString.replace(/'/g, '\\\'') + "'";
},
toJSON: function() {
return this.inspect(true);
},
unfilterJSON: function(filter) {
return this.sub(filter || Prototype.JSONFilter, '#{1}');
},
lib/Apache/SdnFw/js/prototype.js view on Meta::CPAN
blank: function() {
return /^\s*$/.test(this);
},
interpolate: function(object, pattern) {
return new Template(this, pattern).evaluate(object);
}
});
if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
escapeHTML: function() {
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
},
unescapeHTML: function() {
return this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
}
});
String.prototype.gsub.prepareReplacement = function(replacement) {
if (Object.isFunction(replacement)) return replacement;
var template = new Template(replacement);
return function(match) { return template.evaluate(match) };
};
String.prototype.parseQuery = String.prototype.toQueryParams;
Object.extend(String.prototype.escapeHTML, {
div: document.createElement('div'),
text: document.createTextNode('')
});
String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);
var Template = Class.create({
initialize: function(template, pattern) {
this.template = template.toString();
this.pattern = pattern || Template.Pattern;
},
evaluate: function(object) {
if (Object.isFunction(object.toTemplateReplacements))
object = object.toTemplateReplacements();
lib/Apache/SdnFw/js/prototype.js view on Meta::CPAN
return this.transport.getResponseHeader(name);
},
getAllResponseHeaders: function() {
return this.transport.getAllResponseHeaders();
},
_getHeaderJSON: function() {
var json = this.getHeader('X-JSON');
if (!json) return null;
json = decodeURIComponent(escape(json));
try {
return json.evalJSON(this.request.options.sanitizeJSON ||
!this.request.isSameOrigin());
} catch (e) {
this.request.dispatchException(e);
}
},
_getResponseJSON: function() {
var options = this.request.options;
lib/Apache/SdnFw/js/tinymce/jscripts/tiny_mce/tiny_mce.js view on Meta::CPAN
(function(c){var a=/^\s*|\s*$/g,d;var b={majorVersion:"3",minorVersion:"3.8",releaseDate:"2010-06-30",_init:function(){var r=this,o=document,m=navigator,f=m.userAgent,l,e,k,j,h,q;r.isOpera=c.opera&&opera.buildNumber;r.isWebKit=/WebKit/.test(f);r.isIE...
lib/Apache/SdnFw/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js view on Meta::CPAN
var each = tinymce.each;
tinymce.create('static tinymce.util.Cookie', {
getHash : function(n) {
var v = this.get(n), h;
if (v) {
each(v.split('&'), function(v) {
v = v.split('=');
h = h || {};
h[unescape(v[0])] = unescape(v[1]);
});
}
return h;
},
setHash : function(n, v, e, p, d, s) {
var o = '';
each(v, function(v, k) {
o += (!o ? '' : '&') + escape(k) + '=' + escape(v);
});
this.set(n, o, e, p, d, s);
},
get : function(n) {
var c = document.cookie, e, p = n + "=", b;
// Strict mode
if (!c)
lib/Apache/SdnFw/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js view on Meta::CPAN
if (b != 0)
return null;
} else
b += 2;
e = c.indexOf(";", b);
if (e == -1)
e = c.length;
return unescape(c.substring(b + p.length, e));
},
set : function(n, v, e, p, d, s) {
document.cookie = n + "=" + escape(v) +
((e) ? "; expires=" + e.toGMTString() : "") +
((p) ? "; path=" + escape(p) : "") +
((d) ? "; domain=" + d : "") +
((s) ? "; secure" : "");
},
remove : function(n, p) {
var d = new Date();
d.setTime(d.getTime() - 1000);
this.set(n, '', d, p, d);
lib/Apache/SdnFw/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js view on Meta::CPAN
var name = match[2], filter = Expr.setFilters[ name ];
if ( filter ) {
return filter( elem, i, match, array );
}
}
}
};
var origPOS = Expr.match.POS,
fescape = function(all, num){
return "\\" + (num - 0 + 1);
};
for ( var type in Expr.match ) {
Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
}
var makeArray = function(array, results) {
array = Array.prototype.slice.call( array, 0 );
if ( results ) {
results.push.apply( results, array );
return results;
}
lib/Apache/SdnFw/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js view on Meta::CPAN
if (!i || !i.createDocument) {
// Try IE objects
try {return new ActiveXObject('MSXML2.DOMDocument');} catch (ex) {}
try {return new ActiveXObject('Microsoft.XmlDom');} catch (ex) {}
} else
return i.createDocument('', '', null);
};
this.doc = getXML();
// Since Opera and WebKit doesn't escape > into > we need to do it our self to normalize the output for all browsers
this.valid = tinymce.isOpera || tinymce.isWebKit;
this.reset();
},
reset : function() {
var t = this, d = t.doc;
if (d.firstChild)
d.removeChild(d.firstChild);
lib/Apache/SdnFw/js/unittest.js view on Meta::CPAN
this.log.innerHTML =
'<div id="logsummary"></div>' +
'<table id="logtable">' +
'<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
'<tbody id="loglines"></tbody>' +
'</table>';
this.logsummary = $('logsummary');
this.loglines = $('loglines');
},
_toHTML: function(txt) {
return txt.escapeHTML().replace(/\n/g,"<br/>");
},
addLinksToResults: function(){
$$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log
td.title = "Run only this test";
Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;});
});
$$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log
td.title = "Run all tests";
Event.observe(td, 'click', function(){ window.location.search = "";});
});
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
$s->send_error($msg);
=cut
my $s = shift;
my $msg = shift;
# make sure we do not report errors to ourself, otherwise we go into a circular loop!
# if this was a croak, it means that we should record this error into the main error
# recording system
my $error = $s->escape($msg);
my $employee = '<employee>'.$s->escape("$s->{employee_id} $s->{employee}{name}").
'</employee>' if ($s->{employee_id});
my $in = $s->escape(Data::Dumper->Dump([\%{$s->{in}}]));
my $env = $s->escape(Data::Dumper->Dump([\%{$s->{env}}]));
my $session = $s->escape(Data::Dumper->Dump([\%{$s->{session_data}}]));
my $uri = $s->escape($s->{uri});
my $xml = <<END;
<?xml version="1.0" encoding="UTF-8"?>
<error>
<message>$error</message>
$employee
<var_in>$in</var_in>
<uri>$uri</uri>
<var_env>$env</var_env>
<remote_addr>$s->{remote_addr}</remote_addr>
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
sub html_radio {
=head2 html_radio
my $html = $s->html_radio($key,$value,[$checked],[$desc],[$id]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $checked = shift;
my $desc = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input type="radio" name="$key" value="$value");
$str .= ' checked' if ($checked eq $value);
$str .= qq( id="$id") if ($id);
$str .= '>';
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
sub html_checkbox {
=head2 html_checkbox
my $html = $s->html_checkbox($key,$value,[$checked],[$desc],[$id]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $checked = shift;
my $desc = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input type="checkbox" name="$key" value="$value");
$str .= ' checked' unless ($checked eq undef);
$str .= qq( id="$id") if ($id);
$str .= '>';
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
sub html_password {
=head2 html_password
my $html = $s->html_password($key,$value,[$size]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $size = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input type="password" name="$key" value="$value" autocomplete="off");
$str .= qq( size="$size") if ($size);
$str .= '>';
return $str;
}
sub html_upload {
=head2 html_upload
my $html = $s->html_upload($key,[$size],[$class],[$id]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $size = shift;
my $class = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input type="file" name="$key");
$str .= qq( size="$size") if ($size);
$str .= qq( id="$id") if ($id);
$str .= qq( class="$class") if ($class);
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
}
sub html_input_email {
=head2 html_input_email
my $html = $s->html_input_email($key,$value,[$size]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $size = shift;
my $class = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input type="email" name="$key" value="$value" autocomplete="off");
$str .= qq( size="$size") if ($size);
$str .= qq( id="$id") if ($id);
$str .= qq( class="$class") if ($class);
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
}
sub html_input_number {
=head2 html_input_number
my $html = $s->html_input_number($key,$value,[$size]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $size = shift;
my $class = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input type="number" name="$key" value="$value" autocomplete="off");
$str .= qq( size="$size") if ($size);
$str .= qq( id="$id") if ($id);
$str .= qq( class="$class") if ($class);
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
}
sub html_input {
=head2 html_input
my $html = $s->html_input($key,$value,[$size]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $size = shift;
my $class = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $str = qq(<input name="$key" value="$value" autocomplete="off");
$str .= qq( size="$size") if ($size);
$str .= qq( id="$id") if ($id);
$str .= qq( class="$class") if ($class);
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
sub html_textarea {
=head2 html_textarea
my $html = $s->html_input($key,$value,[$cols || 40],[$row || 3],[$class]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $cols = shift || 40;
my $rows = shift || 3;
my $class = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
$class = qq( class="$class") if ($class);
my $str = qq(<textarea name="$key"$class cols="$cols" rows="$rows">$value</textarea>);
return $str;
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
sub html_hidden {
=head2 html_hidden
my $html $s->html_hidden($key,$value,[$desc],[$id]);
=cut
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
my $desc = shift;
my $id = shift;
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $idfield = qq( id="$id") if ($id);
my $str = qq(<input$idfield type="hidden" name="$key" value="$value">);
$str .= $desc if ($desc);
return $str;
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
$str .= qq(\t\t\t<td>$ref->{$k}</td>\n);
}
$str .= qq(\t\t</tr>\n);
}
$str .= qq(\t\t</tr>\n\t</tbody>);
return $str;
}
sub escape {
my $s = shift;
my $string = shift;
$string =~ s/&([^#])/&$1/g;
$string =~ s/"/"/g;
$string =~ s/>/>/g;
$string =~ s/</</g;
# ' is a valid XML entity, but not a valid HTML entity.
# @todo: the ' character is valid HTML and shouldn't need to be escaped.
# However, a lot of the code uses value='' instead of "" so we need
# to leave this in for now.
$string =~ s/'/'/g;
return $string;
}
sub address_display {
=head2 address_display
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
$string =~ s/"/""/g;
return qq("$string");
}
sub format_text {
=head2 format_text
my $string = $s->format_text($string);
Converts newlines to <br>, tabs and 8 spaces to 4 nbsp;. Also does an escape.
=cut
my $s = shift;
my $string = shift;
$string = $s->escape($string);
$string =~ s/\n/<br>\n/g;
$string =~ s/\t/ /g;
$string =~ s/\s{8}/ /g;
return $string;
}
sub format_accounting {
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
=cut
my $s = shift;
my $text = shift;
my $onerow = shift;
my @rows = ();
$text =~ s/\s+$//s;
my $row = [];
while ($text=~ m/( (?!")[^,\r\n]* # Handle normal fields
| "(?:["\\]"|[^"])*?" # Handle quoted fields, escaped quotes as "" or \"
)(\r?\n|,|$)
/sgx) {
my $val = defined $1 ? $1 : '';
my $eol = $2;
if ($val =~ m/^"(.*)"$/s) {
$val = defined $1 ? $1 : '';
$val =~ s/["\\]"/"/sg;
}
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
if (-e "/data/$s->{obase}/template/help/$path") {
if ($s->{employee}{admin}) {
$s->add_action(function => $s->{function},
title => 'edit',
params => "f=edit");
if ($s->{in}{f} eq 'edit') {
open F, "/data/$s->{obase}/template/help/$s->{function}.tt";
while (my $line = <F>) {
$s->{help_text} .= $s->escape($line);
}
close F;
$s->tt('help_edit.tt', { s => $s, });
return;
}
} else {
$s->add_action(
title => 'edit',
class => 'greyout',
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
unless($s->{nomenu_interface});
return $menu;
} else {
return '';
}
} else {
if ($s->{employee}{admin} && !($s->{object} =~ m/^(me|help)$/)) {
$s->{employee}{object}{$s->{object}}{permission} = 1;
(my $args = $s->{args}) =~ s/=/%3D/g;
$s->add_action(function => 'permission',
params => "return=$s->{function}&return_args=".$s->escape($args))
unless($s->{env}{HIDE_PERMISSION} || $s->{agent});
}
# if we are in autocommit still at this point
# then it probably means there was an error, so we need
# to rollback before we can do this query below
if ($s->{dbh}->{AutoCommit} == 0) {
$s->{dbh}->rollback;
}
lib/Apache/SdnFw/lib/Core.pm view on Meta::CPAN
my $object = shift;
my $id = shift;
my $name = shift;
my $keyfield = shift || 'id';
return $s->html_a("$s->{ubase}/$object/display?$keyfield=$id",$name);
}
sub html_input_calendar {
my $s = shift;
my $key = $s->escape(shift);
my $value = $s->escape(shift);
$key = "$s->{acfb}::$key" if ($s->{acfb});
my $cal = $s->add_calendar($key);
my $str = qq(<input $cal name="$key" value="$value" autocomplete="off" size="12">);
return $str;
}
sub add_calendar {
lib/Apache/SdnFw/tt/display.tt.xml view on Meta::CPAN
<[% s.object %]>
<[% s.o.id %]>[% hash.${s.o.id} %]</[% s.o.id %]>
[% FOREACH f IN s.o.fields -%]
<[% f.k %]>[% IF f.r && f.i %]
<[% f.i %]>[% hash.${f.i} %]</[% f.i %]>
<name>[% s.escape(hash.${f.k}) %]</name>[% ELSE %]
[% IF f.verify == 'phone' %][% s.format_phone(hash.${f.k}) %]
[% ELSIF f.boolean %]
[% s.format_boolean(hash.${f.k}) %]
[% ELSIF f.format == 'percent' %]
[% s.format_percent(hash.${f.k}) %]
[% ELSE %][% s.escape(hash.${f.k}) %][% END %]
[% END %]</[% f.k %]>
[% END %]
<relations>
[% FOREACH r IN s.o.relations %]
<[% r.t %]>
[% FOREACH d IN hash.relation.${r.t} -%]
<[% r.o %]>
<object>[% r.o %]</object>
<[% r.k %]>[% d.${r.k} %]</[% r.k %]>
<[% r.n %]>[% d.${r.n} %]</[% r.n %]>
lib/Apache/SdnFw/tt/editnote.tt view on Meta::CPAN
<div class="floatleft">
<table>
<caption>Edit Note</caption>
<tbody>
<tr>
<td>
<form method="POST" action="[% s.ubase %]/note/save">
<input type="hidden" name="note_id" value="[% s.in.note_id %]">
<textarea name="note_text" cols="60" rows="10">[% s.escape(hash.note_text) %]</textarea><br>
<input type="submit" value="Save">
</form>
</td>
</tr>
</tbody>
</table>
</div>
lib/Apache/SdnFw/tt/list.tt.xml view on Meta::CPAN
[% FOREACH l IN list %]
<[% s.object %]>
<[% s.o.id %]>[% l.${s.o.id} %]</[% s.o.id %]>
[% FOREACH f IN s.o.fields -%]
[% UNLESS f.hidelist %]
<[% f.k %]>[% s.escape(l.${f.k}) %]</[% f.k %]>
[% END %]
[% END %]
</[% s.object %]>
[% END %]