dbconsole 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/dbconsole/jquery-1.10.2.js +9789 -0
  3. data/app/assets/javascripts/dbconsole/jquery-ui-1.10.4.custom.min.js +7 -0
  4. data/app/assets/javascripts/dbconsole/jquery.tablesorter.min.js +4 -0
  5. data/app/assets/javascripts/dbconsole/jquery.ui.core.js +320 -0
  6. data/app/assets/javascripts/dbconsole/jquery.ui.tabs.js +849 -0
  7. data/app/assets/javascripts/dbconsole/jquery.ui.widget.js +521 -0
  8. data/app/assets/stylesheets/dbconsole/asc.gif +0 -0
  9. data/app/assets/stylesheets/dbconsole/bg.gif +0 -0
  10. data/app/assets/stylesheets/dbconsole/demos.css +19 -0
  11. data/app/assets/stylesheets/dbconsole/desc.gif +0 -0
  12. data/app/assets/stylesheets/dbconsole/images/animated-overlay.gif +0 -0
  13. data/app/assets/stylesheets/dbconsole/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  14. data/app/assets/stylesheets/dbconsole/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  15. data/app/assets/stylesheets/dbconsole/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  16. data/app/assets/stylesheets/dbconsole/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  17. data/app/assets/stylesheets/dbconsole/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  18. data/app/assets/stylesheets/dbconsole/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  19. data/app/assets/stylesheets/dbconsole/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  20. data/app/assets/stylesheets/dbconsole/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  21. data/app/assets/stylesheets/dbconsole/images/ui-icons_222222_256x240.png +0 -0
  22. data/app/assets/stylesheets/dbconsole/images/ui-icons_2e83ff_256x240.png +0 -0
  23. data/app/assets/stylesheets/dbconsole/images/ui-icons_454545_256x240.png +0 -0
  24. data/app/assets/stylesheets/dbconsole/images/ui-icons_888888_256x240.png +0 -0
  25. data/app/assets/stylesheets/dbconsole/images/ui-icons_cd0a0a_256x240.png +0 -0
  26. data/app/assets/stylesheets/dbconsole/jquery.ui.core.css +93 -0
  27. data/app/assets/stylesheets/dbconsole/jquery.ui.tabs.css +51 -0
  28. data/app/assets/stylesheets/dbconsole/jquery.ui.theme.css +410 -0
  29. data/app/assets/stylesheets/dbconsole/style.css +98 -0
  30. data/app/controllers/dbconsole/databases_controller.rb +74 -10
  31. data/app/controllers/dbconsole/style.css +85 -0
  32. data/app/views/dbconsole/databases/create.html.erb +155 -0
  33. data/app/views/dbconsole/databases/index.html.erb +5 -2
  34. data/app/views/dbconsole/databases/show.html.erb +155 -0
  35. data/app/views/layouts/dbconsole/application.html.erb +3 -1
  36. data/lib/dbconsole/version.rb +1 -1
  37. metadata +47 -2
@@ -0,0 +1,4 @@
1
+
2
+ (function($){$.extend({tablesorter:new
3
+ function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead th',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==''&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log('Checking if value was empty on row:'+rowIndex);}}else{keepLooking=false;}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex];}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node));}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}return false;}function buildCache(table){if(table.config.debug){var cacheTime=new Date();}var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}return cache;};function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return text;}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appender(table,rows);}rows=null;if(table.config.debug){benchmark("Rebuilt table:",appendTime);}applyWidget(table);setTimeout(function(){$(table).trigger("sortEnd");},0);};function buildHeaders(table){if(table.config.debug){var time=new Date();}var meta=($.metadata)?true:false;var header_index=computeTableHeaderCellIndexes(table);$tableHeaders=$(table.config.selectorHeaders,table).each(function(index){this.column=header_index[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(table.config.sortInitialOrder);this.count=this.order;if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(checkHeaderOptionsSortingLocked(table,index))this.order=this.lockedOrder=checkHeaderOptionsSortingLocked(table,index);if(!this.sortDisabled){var $th=$(this).addClass(table.config.cssHeader);if(table.config.onRenderHeader)table.config.onRenderHeader.apply($th);}table.config.headerList[index]=this;});if(table.config.debug){benchmark("Built headers:",time);log($tableHeaders);}return $tableHeaders;};function computeTableHeaderCellIndexes(t){var matrix=[];var lookup={};var thead=t.getElementsByTagName('THEAD')[0];var trs=thead.getElementsByTagName('TR');for(var i=0;i<trs.length;i++){var cells=trs[i].cells;for(var j=0;j<cells.length;j++){var c=cells[j];var rowIndex=c.parentNode.rowIndex;var cellId=rowIndex+"-"+c.cellIndex;var rowSpan=c.rowSpan||1;var colSpan=c.colSpan||1
4
+ var firstAvailCol;if(typeof(matrix[rowIndex])=="undefined"){matrix[rowIndex]=[];}for(var k=0;k<matrix[rowIndex].length+1;k++){if(typeof(matrix[rowIndex][k])=="undefined"){firstAvailCol=k;break;}}lookup[cellId]=firstAvailCol;for(var k=rowIndex;k<rowIndex+rowSpan;k++){if(typeof(matrix[k])=="undefined"){matrix[k]=[];}var matrixrow=matrix[k];for(var l=firstAvailCol;l<firstAvailCol+colSpan;l++){matrixrow[l]="x";}}}}return lookup;}function checkCellColSpan(table,rows,row){var arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=0;i<c.length;i++){var cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return arr;};function checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return true;};return false;}function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}function checkHeaderOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return table.config.headers[i].lockedOrder;return false;}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i<l;i++){getWidgetById(c[i]).format(table);}}function getWidgetById(name){var l=widgets.length;for(var i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return widgets[i];}}};function formatSortingOrder(v){if(typeof(v)!="Number"){return(v.toLowerCase()=="desc")?1:0;}else{return(v==1)?1:0;}}function isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return true;}}return false;}function setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this);}});var l=list.length;for(var i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]]);}}function fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){var colgroup=$('<colgroup>');$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($('<col>').css('width',$(this).width()));});$(table).prepend(colgroup);};}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i<l;i++){var s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++;}}function multisort(table,sortList,cache){if(table.config.debug){var sortTime=new Date();}var dynamicExp="var sortWrapper = function(a,b) {",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var order=sortList[i][1];var s=(table.config.parsers[c].type=="text")?((order==0)?makeSortFunction("text","asc",c):makeSortFunction("text","desc",c)):((order==0)?makeSortFunction("numeric","asc",c):makeSortFunction("numeric","desc",c));var e="e"+i;dynamicExp+="var "+e+" = "+s;dynamicExp+="if("+e+") { return "+e+"; } ";dynamicExp+="else { ";}var orgOrderCol=cache.normalized[0].length-1;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(var i=0;i<l;i++){dynamicExp+="}; ";}dynamicExp+="return 0; ";dynamicExp+="}; ";if(table.config.debug){benchmark("Evaling expression:"+dynamicExp,new Date());}eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time:",sortTime);}return cache;};function makeSortFunction(type,direction,index){var a="a["+index+"]",b="b["+index+"]";if(type=='text'&&direction=='asc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+a+" < "+b+") ? -1 : 1 )));";}else if(type=='text'&&direction=='desc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+b+" < "+a+") ? -1 : 1 )));";}else if(type=='numeric'&&direction=='asc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+a+" - "+b+"));";}else if(type=='numeric'&&direction=='desc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+b+" - "+a+"));";}};function makeSortText(i){return"((a["+i+"] < b["+i+"]) ? -1 : ((a["+i+"] > b["+i+"]) ? 1 : 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));";};function makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return((a<b)?-1:((a>b)?1:0));};function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return((b<a)?-1:((b>a)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j<a.length;j++){if(a[j][0]!=i){config.sortList.push(a[j]);}}}config.sortList.push([i,this.order]);}else{if(isValueInArray(i,config.sortList)){for(var j=0;j<config.sortList.length;j++){var s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count++;s[1]=o.count%2;}}}else{config.sortList.push([i,this.order]);}};setTimeout(function(){setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache));},1);return false;}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return false};return false;}});$this.bind("update",function(){var me=this;setTimeout(function(){me.config.parsers=buildParserCache(me,$headers);cache=buildCache(me);},1);}).bind("updateCell",function(e,cell){var config=this.config;var pos=[(cell.parentNode.rowIndex-1),cell.cellIndex];cache.normalized[pos[0]][pos[1]]=config.parsers[pos[1]].format(getElementText(config,cell),cell);}).bind("sorton",function(e,list){$(this).trigger("sortStart");config.sortList=list;var sortList=config.sortList;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache));}).bind("appendCache",function(){appendToTable(this,cache);}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this);}).bind("applyWidgets",function(){applyWidget(this);});if($.metadata&&($(this).metadata()&&$(this).metadata().sortlist)){config.sortList=$(this).metadata().sortlist;}if(config.sortList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g,'')));};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[£$€?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return $.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\%$/.test($.trim(s));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(/\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2");}else if(c.dateFormat=="uk"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");}return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?'sortValue':c.parserMetadataName;return $(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date();}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time);}}});})(jQuery);
@@ -0,0 +1,320 @@
1
+ /*!
2
+ * jQuery UI Core 1.10.4
3
+ * http://jqueryui.com
4
+ *
5
+ * Copyright 2014 jQuery Foundation and other contributors
6
+ * Released under the MIT license.
7
+ * http://jquery.org/license
8
+ *
9
+ * http://api.jqueryui.com/category/ui-core/
10
+ */
11
+ (function( $, undefined ) {
12
+
13
+ var uuid = 0,
14
+ runiqueId = /^ui-id-\d+$/;
15
+
16
+ // $.ui might exist from components with no dependencies, e.g., $.ui.position
17
+ $.ui = $.ui || {};
18
+
19
+ $.extend( $.ui, {
20
+ version: "1.10.4",
21
+
22
+ keyCode: {
23
+ BACKSPACE: 8,
24
+ COMMA: 188,
25
+ DELETE: 46,
26
+ DOWN: 40,
27
+ END: 35,
28
+ ENTER: 13,
29
+ ESCAPE: 27,
30
+ HOME: 36,
31
+ LEFT: 37,
32
+ NUMPAD_ADD: 107,
33
+ NUMPAD_DECIMAL: 110,
34
+ NUMPAD_DIVIDE: 111,
35
+ NUMPAD_ENTER: 108,
36
+ NUMPAD_MULTIPLY: 106,
37
+ NUMPAD_SUBTRACT: 109,
38
+ PAGE_DOWN: 34,
39
+ PAGE_UP: 33,
40
+ PERIOD: 190,
41
+ RIGHT: 39,
42
+ SPACE: 32,
43
+ TAB: 9,
44
+ UP: 38
45
+ }
46
+ });
47
+
48
+ // plugins
49
+ $.fn.extend({
50
+ focus: (function( orig ) {
51
+ return function( delay, fn ) {
52
+ return typeof delay === "number" ?
53
+ this.each(function() {
54
+ var elem = this;
55
+ setTimeout(function() {
56
+ $( elem ).focus();
57
+ if ( fn ) {
58
+ fn.call( elem );
59
+ }
60
+ }, delay );
61
+ }) :
62
+ orig.apply( this, arguments );
63
+ };
64
+ })( $.fn.focus ),
65
+
66
+ scrollParent: function() {
67
+ var scrollParent;
68
+ if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {
69
+ scrollParent = this.parents().filter(function() {
70
+ return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
71
+ }).eq(0);
72
+ } else {
73
+ scrollParent = this.parents().filter(function() {
74
+ return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
75
+ }).eq(0);
76
+ }
77
+
78
+ return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent;
79
+ },
80
+
81
+ zIndex: function( zIndex ) {
82
+ if ( zIndex !== undefined ) {
83
+ return this.css( "zIndex", zIndex );
84
+ }
85
+
86
+ if ( this.length ) {
87
+ var elem = $( this[ 0 ] ), position, value;
88
+ while ( elem.length && elem[ 0 ] !== document ) {
89
+ // Ignore z-index if position is set to a value where z-index is ignored by the browser
90
+ // This makes behavior of this function consistent across browsers
91
+ // WebKit always returns auto if the element is positioned
92
+ position = elem.css( "position" );
93
+ if ( position === "absolute" || position === "relative" || position === "fixed" ) {
94
+ // IE returns 0 when zIndex is not specified
95
+ // other browsers return a string
96
+ // we ignore the case of nested elements with an explicit value of 0
97
+ // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
98
+ value = parseInt( elem.css( "zIndex" ), 10 );
99
+ if ( !isNaN( value ) && value !== 0 ) {
100
+ return value;
101
+ }
102
+ }
103
+ elem = elem.parent();
104
+ }
105
+ }
106
+
107
+ return 0;
108
+ },
109
+
110
+ uniqueId: function() {
111
+ return this.each(function() {
112
+ if ( !this.id ) {
113
+ this.id = "ui-id-" + (++uuid);
114
+ }
115
+ });
116
+ },
117
+
118
+ removeUniqueId: function() {
119
+ return this.each(function() {
120
+ if ( runiqueId.test( this.id ) ) {
121
+ $( this ).removeAttr( "id" );
122
+ }
123
+ });
124
+ }
125
+ });
126
+
127
+ // selectors
128
+ function focusable( element, isTabIndexNotNaN ) {
129
+ var map, mapName, img,
130
+ nodeName = element.nodeName.toLowerCase();
131
+ if ( "area" === nodeName ) {
132
+ map = element.parentNode;
133
+ mapName = map.name;
134
+ if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
135
+ return false;
136
+ }
137
+ img = $( "img[usemap=#" + mapName + "]" )[0];
138
+ return !!img && visible( img );
139
+ }
140
+ return ( /input|select|textarea|button|object/.test( nodeName ) ?
141
+ !element.disabled :
142
+ "a" === nodeName ?
143
+ element.href || isTabIndexNotNaN :
144
+ isTabIndexNotNaN) &&
145
+ // the element and all of its ancestors must be visible
146
+ visible( element );
147
+ }
148
+
149
+ function visible( element ) {
150
+ return $.expr.filters.visible( element ) &&
151
+ !$( element ).parents().addBack().filter(function() {
152
+ return $.css( this, "visibility" ) === "hidden";
153
+ }).length;
154
+ }
155
+
156
+ $.extend( $.expr[ ":" ], {
157
+ data: $.expr.createPseudo ?
158
+ $.expr.createPseudo(function( dataName ) {
159
+ return function( elem ) {
160
+ return !!$.data( elem, dataName );
161
+ };
162
+ }) :
163
+ // support: jQuery <1.8
164
+ function( elem, i, match ) {
165
+ return !!$.data( elem, match[ 3 ] );
166
+ },
167
+
168
+ focusable: function( element ) {
169
+ return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
170
+ },
171
+
172
+ tabbable: function( element ) {
173
+ var tabIndex = $.attr( element, "tabindex" ),
174
+ isTabIndexNaN = isNaN( tabIndex );
175
+ return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
176
+ }
177
+ });
178
+
179
+ // support: jQuery <1.8
180
+ if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
181
+ $.each( [ "Width", "Height" ], function( i, name ) {
182
+ var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
183
+ type = name.toLowerCase(),
184
+ orig = {
185
+ innerWidth: $.fn.innerWidth,
186
+ innerHeight: $.fn.innerHeight,
187
+ outerWidth: $.fn.outerWidth,
188
+ outerHeight: $.fn.outerHeight
189
+ };
190
+
191
+ function reduce( elem, size, border, margin ) {
192
+ $.each( side, function() {
193
+ size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
194
+ if ( border ) {
195
+ size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
196
+ }
197
+ if ( margin ) {
198
+ size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
199
+ }
200
+ });
201
+ return size;
202
+ }
203
+
204
+ $.fn[ "inner" + name ] = function( size ) {
205
+ if ( size === undefined ) {
206
+ return orig[ "inner" + name ].call( this );
207
+ }
208
+
209
+ return this.each(function() {
210
+ $( this ).css( type, reduce( this, size ) + "px" );
211
+ });
212
+ };
213
+
214
+ $.fn[ "outer" + name] = function( size, margin ) {
215
+ if ( typeof size !== "number" ) {
216
+ return orig[ "outer" + name ].call( this, size );
217
+ }
218
+
219
+ return this.each(function() {
220
+ $( this).css( type, reduce( this, size, true, margin ) + "px" );
221
+ });
222
+ };
223
+ });
224
+ }
225
+
226
+ // support: jQuery <1.8
227
+ if ( !$.fn.addBack ) {
228
+ $.fn.addBack = function( selector ) {
229
+ return this.add( selector == null ?
230
+ this.prevObject : this.prevObject.filter( selector )
231
+ );
232
+ };
233
+ }
234
+
235
+ // support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
236
+ if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
237
+ $.fn.removeData = (function( removeData ) {
238
+ return function( key ) {
239
+ if ( arguments.length ) {
240
+ return removeData.call( this, $.camelCase( key ) );
241
+ } else {
242
+ return removeData.call( this );
243
+ }
244
+ };
245
+ })( $.fn.removeData );
246
+ }
247
+
248
+
249
+
250
+
251
+
252
+ // deprecated
253
+ $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
254
+
255
+ $.support.selectstart = "onselectstart" in document.createElement( "div" );
256
+ $.fn.extend({
257
+ disableSelection: function() {
258
+ return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
259
+ ".ui-disableSelection", function( event ) {
260
+ event.preventDefault();
261
+ });
262
+ },
263
+
264
+ enableSelection: function() {
265
+ return this.unbind( ".ui-disableSelection" );
266
+ }
267
+ });
268
+
269
+ $.extend( $.ui, {
270
+ // $.ui.plugin is deprecated. Use $.widget() extensions instead.
271
+ plugin: {
272
+ add: function( module, option, set ) {
273
+ var i,
274
+ proto = $.ui[ module ].prototype;
275
+ for ( i in set ) {
276
+ proto.plugins[ i ] = proto.plugins[ i ] || [];
277
+ proto.plugins[ i ].push( [ option, set[ i ] ] );
278
+ }
279
+ },
280
+ call: function( instance, name, args ) {
281
+ var i,
282
+ set = instance.plugins[ name ];
283
+ if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {
284
+ return;
285
+ }
286
+
287
+ for ( i = 0; i < set.length; i++ ) {
288
+ if ( instance.options[ set[ i ][ 0 ] ] ) {
289
+ set[ i ][ 1 ].apply( instance.element, args );
290
+ }
291
+ }
292
+ }
293
+ },
294
+
295
+ // only used by resizable
296
+ hasScroll: function( el, a ) {
297
+
298
+ //If overflow is hidden, the element might have extra content, but the user wants to hide it
299
+ if ( $( el ).css( "overflow" ) === "hidden") {
300
+ return false;
301
+ }
302
+
303
+ var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
304
+ has = false;
305
+
306
+ if ( el[ scroll ] > 0 ) {
307
+ return true;
308
+ }
309
+
310
+ // TODO: determine which cases actually cause this to happen
311
+ // if the element doesn't have the scroll set, see if it's possible to
312
+ // set the scroll
313
+ el[ scroll ] = 1;
314
+ has = ( el[ scroll ] > 0 );
315
+ el[ scroll ] = 0;
316
+ return has;
317
+ }
318
+ });
319
+
320
+ })( jQuery );