UNPKG

grunt-doctrine

Version:

Grunt plugin to convert doctrine xml annotations into backbone models and collections. Useful in conjunction with doctrine apigility. Includes option to scaffold an entire BBB application

229 lines (214 loc) 6.4 kB
<!DOCTYPE html> <html> <head> <title>Event Delegation Tests</title> <script src="jquery.js"></script> <style> table { border-collapse: collapse; empty-cells: show; } th { text-align: left; } thead td { width: 11%; } tbody td { background: #fed; } th, td { border: 1px solid #bbb; } </style> </head> <body> <h2>Delegate Tests (<span id="fileversion">x</span>)</h2> <table id="changes"> <thead> <tr> <th> Controls: </th> <td id="select-one"> <select> <option value='one1'>one1</option> <option value='one2'>one2</option> <option value='one3'>one3</option> </select> <select> <option value='two1'>two1</option> <option value='two2' selected="selected">two2</option> <option value='two3'>two3</option> </select> </td> <td id="select-mult"> <select multiple="multiple"> <option value='multi1'>multi1</option> <option value='multi2'>multi2</option> <option value='multi3'>multi3</option> </select> </td> <td id="checkbox"> <input type="checkbox" name="mycheckbox" id="check1"/> <label for="check1">check1</label><br/> <input type="checkbox" name="mycheckbox" id="check2"/> <label for="check2">check2</label><br /> <input type="checkbox" name="mycheckbox" id="check3" disabled="disabled"/> <label for="check3">check3</label> </td> <td id="radio"> <input type="radio" name="myradio" id="radio1"/> <label for="radio1">Radio1</label><br/> <input type="radio" name="myradio" id="radio2"/> <label for="radio2">Radio2</label><br /> <input type="radio" name="myradio" id="radio3" disabled="disabled"/> <label for="radio3">Radio3</label> </td> <td id="file"> <input class="file_test" id="file1" type="file"/> </td> <td id="text"> <input class='test' value='' id='input' size='10' /> <input class='test' value='test' id='input2' size='10' readonly="readonly" /> </td> <td id="textarea"> <textarea rows='2'></textarea> </td> <td id="button"> <button name="mybutton1" id="button1">Button</button><br /> <button name="mybutton2" id="button2"><span>Button w/ child</span></button><br /> <button name="mybutton3" id="button3" disabled="disabled">Button Disabled</button><br /> <button name="mybutton4" id="button4" disabled="disabled"><span disabled="disabled">Button, child Disabled</span></button><br /> </td> </tr> </thead> <tbody> </tbody> </table> <p>NOTE: Only IE supports propertychange, beforeactivate, beforedeactivate; buttons do not support change events.</p> <h2>Submit Tests</h2> <table> <tr> <td> Submit each: </td> <td> <form action="" id="text_submit"> <input class='test' type='text' value='Key Return To Submit'/> </form> </td> <td> <form action="" id="password_submit"> <input class='test' type='password' value=''/> </form> </td> <td> <form action="" id="submit_submit"> <input type='submit' value="Click Me To Submit" /> </form> </td> <td>$(document).bind('submit')</td> </tr> <tr> <td>Results:</td> <td id='textSubmit' class="red">TEXT</td> <td id='passwordSubmit' class="red">PASSWORD</td> <td id='submitSubmit' class="red">BUTTON</td> <td id='boundSubmit' class="red">DOCUMENT</td> </tr> </table> <form id="autosub"><input type=submit name=subme /></form> <script type='text/javascript'> $("#fileversion").text($.fn.jquery); // Try an auto-submit, it should only fire once $(function(){ var triggered = false; $("#autosub input").trigger("keypress"); $("body").on("submit", "#autosub", function( e ){ e.preventDefault(); e.stopPropagation(); if ( triggered ) { alert("autosubmit FAIL"); } triggered = true; }); $("#autosub").submit().remove(); }); // Events we want to track in row-order var events = "bind-change live-change onX-change bind-propertychange live-beforeactivate live-focusin bind-focus live-beforedeactivate live-focusout bind-blur live-click live-keydown".split(" "), counter = 0; blinker = function(event){ if ( !counter ) { $("#changes tbody td").text(""); } var $el = event.data, prev = $el.text(); prev = prev? prev +" | " : ""; return $el .text(prev + ++counter+" " + (this.value.replace(/^on$/,"") || this.id || this.checked || "")) .css("backgroundColor","#0f0") .delay(800) .queue(function(next){ $el.css("backgroundColor","#afa"); --counter; next(); }); }; for ( var i=0; i < events.length; i++ ) { var m = events[i].split("-"), api = m[0], type = m[1], $row = $("<tr><th>"+type+" "+api+"</th></tr>"); $("#changes thead td").each(function(){ var id = "#"+this.id, $cell = $('<td></td>'); if ( api == "onX" ) { $(this).find("input, button, select, textarea").each(function(){ this["on"+type] = function(e){ e = $.event.fix(e||event); e.data = $cell; blinker.call(this, e); }; }); } else if ( api == "bind" ) { $(this).find("input, button, select, textarea").bind(type, $cell, blinker); } else { $(id+" input,"+id+" button,"+id+" select,"+id+" textarea").live(type, $cell, blinker); } $row.append($cell); }); $("#changes tbody").append($row); } // Ensure that cloned elements get the delegated event magic; this is // implementation-specific knowledge but otherwise impossible to test. // The beforeactivate event attaches a direct-bound change event. // (Only care about the live change for this third select element.) var sel1 = $("#select-one select:first-child"); if ( typeof(sel1[0].fireEvent) !== "undefined" ) { sel1.trigger( "beforeactivate" ).clone().appendTo("#select-one"); //alert($("#select-one select").map(function(){ return this._change_attached || "undef"; }).get().join("|")); } jQuery.fn.blink = function(){ return this .css("backgroundColor","green") .text( (parseInt(this.text(), 10) || 0) + 1 ) .delay(700).queue(function(next){ jQuery(this).css("backgroundColor","#afa"); next(); }); }; jQuery.fn.addSubmitTest = function( id, prevent ) { return this.live("submit", function(e){ if ( prevent ) { e.preventDefault(); } jQuery(id).blink(); }); }; $("#text_submit").addSubmitTest("#textSubmit", true); $("#password_submit").addSubmitTest("#passwordSubmit", true); $("#submit_submit").addSubmitTest("#submitSubmit", true); $("#prog_submit").addSubmitTest("#submitSubmit", true); $(document).bind("submit", function(){ jQuery("#boundSubmit").blink(); }); </script> </body> </html>