Apache-SdnFw

 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,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
  },
  unescapeHTML: function() {
    return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/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 &gt; 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/&([^#])/&amp;$1/g; 
	$string =~ s/"/&quot;/g;
	$string =~ s/>/&gt;/g;
	$string =~ s/</&lt;/g;
	# &apos; 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/'/&#39;/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/&nbsp;&nbsp;&nbsp;&nbsp;/g;
	$string =~ s/\s{8}/&nbsp;&nbsp;&nbsp;&nbsp;/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 %]



( run in 0.522 second using v1.01-cache-2.11-cpan-c21f80fb71c )