2011-03-24 00:01:26 -04:00
|
|
|
/**
|
|
|
|
* Page enhancements for ease.js website
|
|
|
|
*
|
|
|
|
* Copyright (C) 2010 Mike Gerwitz
|
2011-03-24 22:42:29 -04:00
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as
|
|
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2011-03-24 00:01:26 -04:00
|
|
|
*/
|
|
|
|
|
|
|
|
( function()
|
|
|
|
{
|
2011-04-04 22:37:13 -04:00
|
|
|
var $trybox = null,
|
|
|
|
$trybtn = null
|
|
|
|
;
|
2011-03-24 00:01:26 -04:00
|
|
|
|
|
|
|
$( document ).ready( function()
|
|
|
|
{
|
|
|
|
appendTry();
|
2011-04-04 22:37:13 -04:00
|
|
|
|
|
|
|
if ( document.location.href.substr( -6 ) === '#tryit' )
|
|
|
|
{
|
|
|
|
console.log( 'ok' );
|
|
|
|
toggleTry();
|
|
|
|
}
|
2011-03-24 00:01:26 -04:00
|
|
|
} );
|
|
|
|
|
|
|
|
|
|
|
|
function appendTry()
|
|
|
|
{
|
2011-04-04 22:37:13 -04:00
|
|
|
$trybtn = $( '<div>' )
|
2011-03-24 00:01:26 -04:00
|
|
|
.attr( 'id', 'try' )
|
|
|
|
.text( 'Try It!' )
|
2011-03-24 22:47:26 -04:00
|
|
|
.addClass( 'btn large glow' )
|
2011-03-24 00:01:26 -04:00
|
|
|
.mousedown( function( event )
|
|
|
|
{
|
|
|
|
// prevent dragging from highlighting the text (so it looks more
|
|
|
|
// like an image)
|
|
|
|
event.preventDefault();
|
|
|
|
} )
|
|
|
|
.click( function( event )
|
|
|
|
{
|
2011-04-04 22:37:13 -04:00
|
|
|
toggleTry();
|
2011-03-24 00:01:26 -04:00
|
|
|
} )
|
|
|
|
.appendTo( '#header' );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-04-04 22:37:13 -04:00
|
|
|
function toggleTry()
|
|
|
|
{
|
|
|
|
var $try = getTry();
|
|
|
|
|
|
|
|
$trybtn.text(
|
|
|
|
( $try.is( ':visible' ) )
|
|
|
|
? 'Try It!'
|
|
|
|
: 'Hide It'
|
|
|
|
);
|
|
|
|
|
|
|
|
$try.slideToggle();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-03-24 00:01:26 -04:00
|
|
|
function getTry()
|
|
|
|
{
|
2011-03-24 22:22:31 -04:00
|
|
|
var $txt;
|
|
|
|
|
2011-03-24 00:01:26 -04:00
|
|
|
return $trybox || ( function createTryBox()
|
|
|
|
{
|
2011-03-25 00:08:23 -04:00
|
|
|
$txt = $( '<textarea>' );
|
|
|
|
|
|
|
|
$.get( 'scripts/ex/class.js', function( data )
|
|
|
|
{
|
|
|
|
$txt.text( data );
|
|
|
|
} );
|
|
|
|
|
2011-03-24 00:01:26 -04:00
|
|
|
return $trybox = $( '<div>' )
|
|
|
|
.attr( 'id', 'trybox' )
|
|
|
|
.hide()
|
2011-03-24 22:22:31 -04:00
|
|
|
.append( $( '<h2>' ).text( 'Try ease.js' ) )
|
2011-03-24 23:54:08 -04:00
|
|
|
.append( $( '<p>' ).html(
|
|
|
|
"Enter or modify a test script below. The common " +
|
|
|
|
"ease.js modules, such as <tt>Class</tt>, have " +
|
2011-04-12 23:50:33 -04:00
|
|
|
"already been imported for you. When you are ready, " +
|
|
|
|
"click <strong>Run</strong> to run the script."
|
2011-03-24 23:54:08 -04:00
|
|
|
) )
|
2011-03-25 00:08:23 -04:00
|
|
|
.append( $txt )
|
2011-03-24 22:22:31 -04:00
|
|
|
.append( $( '<div>' )
|
|
|
|
.attr( 'id', 'trybtns' )
|
|
|
|
.append( $( '<div>' )
|
|
|
|
.attr( 'id', 'run' )
|
|
|
|
.text( 'Run' )
|
2011-03-24 22:47:26 -04:00
|
|
|
.addClass( 'btn med green' )
|
2011-03-24 22:22:31 -04:00
|
|
|
.click( function()
|
|
|
|
{
|
2011-03-24 23:45:33 -04:00
|
|
|
runScript( $txt.val() );
|
2011-03-24 22:22:31 -04:00
|
|
|
} )
|
|
|
|
)
|
|
|
|
)
|
2011-03-24 00:01:26 -04:00
|
|
|
.prependTo( '#content' );
|
|
|
|
} )();
|
|
|
|
}
|
2011-03-24 23:45:33 -04:00
|
|
|
|
|
|
|
|
|
|
|
function runScript( script )
|
|
|
|
{
|
2011-11-05 13:02:34 -04:00
|
|
|
var Class = easejs.Class,
|
|
|
|
FinalClass = easejs.FinalClass,
|
|
|
|
AbstractClass = easejs.AbstractClass,
|
|
|
|
Interface = easejs.Interface,
|
2011-03-24 23:45:33 -04:00
|
|
|
|
|
|
|
$console = $( '<textarea>' )
|
|
|
|
.attr( {
|
|
|
|
id: 'try-console',
|
|
|
|
readonly: 'readonly'
|
|
|
|
} ),
|
|
|
|
|
|
|
|
$dialog = $( '<div>' )
|
|
|
|
.append( $console )
|
|
|
|
.dialog( {
|
|
|
|
title: 'Console',
|
|
|
|
modal: true,
|
|
|
|
width: '800px',
|
|
|
|
height: 'auto'
|
|
|
|
} ),
|
|
|
|
|
|
|
|
console = {
|
|
|
|
log: function( text )
|
|
|
|
{
|
|
|
|
$console.text(
|
|
|
|
$console.text() + "\n" + text
|
|
|
|
);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
( function( console )
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
eval( script );
|
|
|
|
}
|
|
|
|
catch ( e )
|
|
|
|
{
|
|
|
|
console.log( e );
|
|
|
|
}
|
|
|
|
} )( console );
|
|
|
|
}
|
2011-03-24 00:01:26 -04:00
|
|
|
} )();
|
|
|
|
|