upgrade to rails3, but grip is broken
This commit is contained in:
1 parent
9f1de1b543
commit
29ee4585b2
53 files changed
+485
-1133
No files matched your search
Vendored
-35
@@ -1,35 +0,0 @@
|
||||
SVN
|
||||
* better approximate scriptaculous effect names
|
||||
* add support for page[:element_id].visual_effect(:effect) as well as page.visual_effect(:effect, :element_id)
|
||||
* added a reset form function to jrails.js (stolen from jquery form)
|
||||
* can now use jquery selectors in all functions
|
||||
* added javascript_function helper to render inline rjs helpers
|
||||
* better support for sortable_element
|
||||
* updated to jquery-ui 1.5.1
|
||||
|
||||
0.4.0 (16 June 2008)
|
||||
* updated to jquery-ui 1.5 & merged js into single file
|
||||
* Added jQuery.noConflict support
|
||||
* support for value/val
|
||||
* additional support for update/delete methods
|
||||
* support for success/failure hash
|
||||
* setRequestHeader now gets called globally
|
||||
* Better support for droppables, sortables
|
||||
* Add support for prototype AJAX callbacks
|
||||
* better support for AJAX form calls
|
||||
|
||||
0.3.0 (22 Feb 2008)
|
||||
* updated to jquery-fx 1.0b and jquery-ui 1.5b
|
||||
* Add text/javascript request header to fix format.js
|
||||
* Added Tasks (thanks ggarside)
|
||||
* Improve visual_effects methods
|
||||
* Fixed some RJS calls
|
||||
* Fixed observer code for ie
|
||||
|
||||
0.2.0 (26 Nov 2007)
|
||||
* Vastly Improved FX
|
||||
* Improved Form Observers
|
||||
* Fixed Rails <= 1.2.6 Compatibility
|
||||
|
||||
0.1.0 (15 Nov 2007)
|
||||
* Initial release
|
||||
Vendored
-21
@@ -1,21 +0,0 @@
|
||||
= jRails
|
||||
|
||||
jRails is a drop-in jQuery replacement for the Rails Prototype/script.aculo.us helpers.
|
||||
|
||||
== Resources
|
||||
|
||||
Install
|
||||
|
||||
* .script/plugin install http://ennerchi.googlecode.com/svn/trunk/plugins/jrails
|
||||
|
||||
Project Site
|
||||
|
||||
* http://code.google.com/p/ennerchi/
|
||||
|
||||
Web Site
|
||||
|
||||
* http://www.ennerchi.com/projects/jrails
|
||||
|
||||
Group Site
|
||||
|
||||
* http://groups.google.com/group/jrails
|
||||
Vendored
-6
@@ -1,6 +0,0 @@
|
||||
# uncomment to use jQuery.noConflict()
|
||||
#ActionView::Helpers::PrototypeHelper::JQUERY_VAR = 'jQuery'
|
||||
|
||||
ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = ['jquery','jquery-ui','jrails']
|
||||
ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
|
||||
require 'jrails'
|
||||
Vendored
-9
@@ -1,9 +0,0 @@
|
||||
# Install hook code here
|
||||
puts "Copying files..."
|
||||
dir = "javascripts"
|
||||
["jquery-ui.js", "jquery.js", "jrails.js"].each do |js_file|
|
||||
dest_file = File.join(RAILS_ROOT, "public", dir, js_file)
|
||||
src_file = File.join(File.dirname(__FILE__) , dir, js_file)
|
||||
FileUtils.cp_r(src_file, dest_file)
|
||||
end
|
||||
puts "Files copied - Installation complete!"
|
||||
@@ -1 +0,0 @@
|
||||
(function(B){var H=B.fn.remove,D=B.browser.mozilla&&(parseFloat(B.browser.version)<1.9);B.ui={version:"1.6rc5",plugin:{add:function(K,J,N){var M=B.ui[K].prototype;for(var L in N){M.plugins[L]=M.plugins[L]||[];M.plugins[L].push([J,N[L]])}},call:function(J,L,K){var N=J.plugins[L];if(!N){return }for(var M=0;M<N.length;M++){if(J.options[N[M][0]]){N[M][1].apply(J.element,K)}}}},contains:function(K,J){return document.compareDocumentPosition?K.compareDocumentPosition(J)&16:K!==J&&K.contains(J)},cssCache:{},css:function(J){if(B.ui.cssCache[J]){return B.ui.cssCache[J]}var K=B('<div class="ui-gen"></div>').addClass(J).css({position:"absolute",top:"-5000px",left:"-5000px",display:"block"}).appendTo("body");B.ui.cssCache[J]=!!((!(/auto|default/).test(K.css("cursor"))||(/^[1-9]/).test(K.css("height"))||(/^[1-9]/).test(K.css("width"))||!(/none/).test(K.css("backgroundImage"))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(K.css("backgroundColor"))));try{B("body").get(0).removeChild(K.get(0))}catch(L){}return B.ui.cssCache[J]},hasScroll:function(L,J){if(B(L).css("overflow")=="hidden"){return false}var M=(J&&J=="left")?"scrollLeft":"scrollTop",K=false;if(L[M]>0){return true}L[M]=1;K=(L[M]>0);L[M]=0;return K},isOverAxis:function(J,L,K){return(J>L)&&(J<(L+K))},isOver:function(O,J,N,M,L,K){return B.ui.isOverAxis(O,N,L)&&B.ui.isOverAxis(J,M,K)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(D){var E=B.attr,C=B.fn.removeAttr,I="http://www.w3.org/2005/07/aaa",F=/^aria-/,G=/^wairole:/;B.attr=function(K,J,L){var M=L!==undefined;return(J=="role"?(M?E.call(this,K,J,"wairole:"+L):(E.apply(this,arguments)||"").replace(G,"")):(F.test(J)?(M?K.setAttributeNS(I,J.replace(F,"aaa:"),L):E.call(this,K,J.replace(F,"aaa:"))):E.apply(this,arguments)))};B.fn.removeAttr=function(J){return(F.test(J)?this.each(function(){this.removeAttributeNS(I,J.replace(F,""))}):C.call(this,J))}}B.fn.extend({remove:function(){B("*",this).add(this).each(function(){B(this).triggerHandler("remove")});return H.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var J;if((B.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){J=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(B.curCSS(this,"position",1))&&(/(auto|scroll)/).test(B.curCSS(this,"overflow",1)+B.curCSS(this,"overflow-y",1)+B.curCSS(this,"overflow-x",1))}).eq(0)}else{J=this.parents().filter(function(){return(/(auto|scroll)/).test(B.curCSS(this,"overflow",1)+B.curCSS(this,"overflow-y",1)+B.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!J.length?B(document):J}});B.extend(B.expr[":"],{data:function(L,K,J){return !!B.data(L,J[3])},tabbable:function(J){var L=J.nodeName.toLowerCase();function K(M){return !(B(M).is(":hidden")||B(M).parents(":hidden").length)}return(J.tabIndex>=0&&(("a"==L&&J.href)||(/input|select|textarea|button/.test(L)&&"hidden"!=J.type&&!J.disabled))&&K(J))}});function A(N,J,O,M){function L(Q){var P=B[N][J][Q]||[];return(typeof P=="string"?P.split(/,?\s+/):P)}var K=L("getter");if(M.length==1&&typeof M[0]=="string"){K=K.concat(L("getterSetter"))}return(B.inArray(O,K)!=-1)}B.widget=function(J,K){var L=J.split(".")[0];J=J.split(".")[1];B.fn[J]=function(P){var N=(typeof P=="string"),O=Array.prototype.slice.call(arguments,1);if(N&&P.substring(0,1)=="_"){return this}if(N&&A(L,J,P,O)){var M=B.data(this[0],J);return(M?M[P].apply(M,O):undefined)}return this.each(function(){var Q=B.data(this,J);(!Q&&!N&&B.data(this,J,new B[L][J](this,P)));(Q&&N&&B.isFunction(Q[P])&&Q[P].apply(Q,O))})};B[L]=B[L]||{};B[L][J]=function(N,O){var M=this;this.namespace=L;this.widgetName=J;this.widgetEventPrefix=B[L][J].eventPrefix||J;this.widgetBaseClass=L+"-"+J;this.options=B.extend({},B.widget.defaults,B[L][J].defaults,B.metadata&&B.metadata.get(N)[J],O);this.element=B(N).bind("setData."+J,function(Q,P,R){if(Q.target==N){return M._setData(P,R)}}).bind("getData."+J,function(Q,P){if(Q.target==N){return M._getData(P)}}).bind("remove",function(){return M.destroy()});this._init()};B[L][J].prototype=B.extend({},B.widget.prototype,K);B[L][J].getterSetter="option"};B.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(L,M){var K=L,J=this;if(typeof L=="string"){if(M===undefined){return this._getData(L)}K={};K[L]=M}B.each(K,function(N,O){J._setData(N,O)Line truncated
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* jQuery JavaScript Library v1.3
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright (c) 2009 John Resig
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://docs.jquery.com/License
|
||||
*
|
||||
* Date: 2009-01-13 12:50:31 -0500 (Tue, 13 Jan 2009)
|
||||
* Revision: 6104
|
||||
*/
|
||||
(function(){var l=this,g,x=l.jQuery,o=l.$,n=l.jQuery=l.$=function(D,E){return new n.fn.init(D,E)},C=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;n.fn=n.prototype={init:function(D,G){D=D||document;if(D.nodeType){this[0]=D;this.length=1;this.context=D;return this}if(typeof D==="string"){var F=C.exec(D);if(F&&(F[1]||!G)){if(F[1]){D=n.clean([F[1]],G)}else{var H=document.getElementById(F[3]);if(H){if(H.id!=F[3]){return n().find(D)}var E=n(H);E.context=document;E.selector=D;return E}D=[]}}else{return n(G).find(D)}}else{if(n.isFunction(D)){return n(document).ready(D)}}if(D.selector&&D.context){this.selector=D.selector;this.context=D.context}return this.setArray(n.makeArray(D))},selector:"",jquery:"1.3",size:function(){return this.length},get:function(D){return D===g?n.makeArray(this):this[D]},pushStack:function(E,G,D){var F=n(E);F.prevObject=this;F.context=this.context;if(G==="find"){F.selector=this.selector+(this.selector?" ":"")+D}else{if(G){F.selector=this.selector+"."+G+"("+D+")"}}return F},setArray:function(D){this.length=0;Array.prototype.push.apply(this,D);return this},each:function(E,D){return n.each(this,E,D)},index:function(D){return n.inArray(D&&D.jquery?D[0]:D,this)},attr:function(E,G,F){var D=E;if(typeof E==="string"){if(G===g){return this[0]&&n[F||"attr"](this[0],E)}else{D={};D[E]=G}}return this.each(function(H){for(E in D){n.attr(F?this.style:this,E,n.prop(this,D[E],F,H,E))}})},css:function(D,E){if((D=="width"||D=="height")&&parseFloat(E)<0){E=g}return this.attr(D,E,"curCSS")},text:function(E){if(typeof E!=="object"&&E!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(E))}var D="";n.each(E||this,function(){n.each(this.childNodes,function(){if(this.nodeType!=8){D+=this.nodeType!=1?this.nodeValue:n.fn.text([this])}})});return D},wrapAll:function(D){if(this[0]){var E=n(D,this[0].ownerDocument).clone();if(this[0].parentNode){E.insertBefore(this[0])}E.map(function(){var F=this;while(F.firstChild){F=F.firstChild}return F}).append(this)}return this},wrapInner:function(D){return this.each(function(){n(this).contents().wrapAll(D)})},wrap:function(D){return this.each(function(){n(this).wrapAll(D)})},append:function(){return this.domManip(arguments,true,function(D){if(this.nodeType==1){this.appendChild(D)}})},prepend:function(){return this.domManip(arguments,true,function(D){if(this.nodeType==1){this.insertBefore(D,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(D){this.parentNode.insertBefore(D,this)})},after:function(){return this.domManip(arguments,false,function(D){this.parentNode.insertBefore(D,this.nextSibling)})},end:function(){return this.prevObject||n([])},push:[].push,find:function(D){if(this.length===1&&!/,/.test(D)){var F=this.pushStack([],"find",D);F.length=0;n.find(D,this[0],F);return F}else{var E=n.map(this,function(G){return n.find(D,G)});return this.pushStack(/[^+>] [^+>]/.test(D)?n.unique(E):E,"find",D)}},clone:function(E){var D=this.map(function(){if(!n.support.noCloneEvent&&!n.isXMLDoc(this)){var H=this.cloneNode(true),G=document.createElement("div");G.appendChild(H);return n.clean([G.innerHTML])[0]}else{return this.cloneNode(true)}});var F=D.find("*").andSelf().each(function(){if(this[h]!==g){this[h]=null}});if(E===true){this.find("*").andSelf().each(function(H){if(this.nodeType==3){return}var G=n.data(this,"events");for(var J in G){for(var I in G[J]){n.event.add(F[H],J,G[J][I],G[J][I].data)}}})}return D},filter:function(D){return this.pushStack(n.isFunction(D)&&n.grep(this,function(F,E){return D.call(F,E)})||n.multiFilter(D,n.grep(this,function(E){return E.nodeType===1})),"filter",D)},closest:function(D){var E=n.expr.match.POS.test(D)?n(D):null;return this.map(function(){var F=this;while(F&&F.ownerDocument){if(E?E.index(F)>-1:n(F).is(D)){return F}F=F.parentNode}})},not:function(D){if(typeof D==="string"){if(f.test(D)){return this.pushStack(n.multiFilter(D,this,true),"not",D)}else{D=n.multiFilter(D,this)}}var E=D.length&&D[D.length-1]!==g&&!D.nodeType;return this.filter(function(){return E?n.inArray(this,D)<0:this!=D})},add:function(D){return this.pushStack(n.unique(n.merge(this.get(),typeof D==="string"?n(D):n.makeArray(D))))},is:function(D){return !!D&&n.multiFilter(D,this).length>0},hasClass:function(D){return !!D&&this.is("."+D)},val:function(J){if(J===g){var D=this[0];if(D){if(n.nodeName(D,"option")){return(D.attributes.value||{}).specified?D.value:D.text}if(n.nodeName(D,"select")){var H=D.selectedIndex,K=[],L=D.options,G=D.type=="select-one";if(H<0){return null}for(var E=G?H:0,I=G?H+1:L.length;E<I;E++){var F=L[E];if(F.selected){J=n(F).val();if(G){return J}K.push(J)}}return K}return(D.value||"").replace(/\r/g,"")}return g}if(typeof J==="number"){J+=""}return this.each(function(){if(this.nodeType!=1){return}if(n.isArray(J)&&/radio|checkbox/.test(this.type)){this.checked=(n.inArray(this.value,J)>=0||n.inArray(this.name,J)>=0)}else{if(n.nodeName(this,"select")){var M=n.makeArray(J);n("option",thisLine truncated
|
||||
/*
|
||||
* Sizzle CSS Selector Engine - v0.9.1
|
||||
* Copyright 2009, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
* More information: http://sizzlejs.com/
|
||||
*/
|
||||
(function(){var N=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,I=0,F=Object.prototype.toString;var E=function(ae,S,aa,V){aa=aa||[];S=S||document;if(S.nodeType!==1&&S.nodeType!==9){return[]}if(!ae||typeof ae!=="string"){return aa}var ab=[],ac,Y,ah,ag,Z,R,Q=true;N.lastIndex=0;while((ac=N.exec(ae))!==null){ab.push(ac[1]);if(ac[2]){R=RegExp.rightContext;break}}if(ab.length>1&&G.match.POS.exec(ae)){if(ab.length===2&&G.relative[ab[0]]){var U="",X;while((X=G.match.POS.exec(ae))){U+=X[0];ae=ae.replace(G.match.POS,"")}Y=E.filter(U,E(/\s$/.test(ae)?ae+"*":ae,S))}else{Y=G.relative[ab[0]]?[S]:E(ab.shift(),S);while(ab.length){var P=[];ae=ab.shift();if(G.relative[ae]){ae+=ab.shift()}for(var af=0,ad=Y.length;af<ad;af++){E(ae,Y[af],P)}Y=P}}}else{var ai=V?{expr:ab.pop(),set:D(V)}:E.find(ab.pop(),ab.length===1&&S.parentNode?S.parentNode:S);Y=E.filter(ai.expr,ai.set);if(ab.length>0){ah=D(Y)}else{Q=false}while(ab.length){var T=ab.pop(),W=T;if(!G.relative[T]){T=""}else{W=ab.pop()}if(W==null){W=S}G.relative[T](ah,W,M(S))}}if(!ah){ah=Y}if(!ah){throw"Syntax error, unrecognized expression: "+(T||ae)}if(F.call(ah)==="[object Array]"){if(!Q){aa.push.apply(aa,ah)}else{if(S.nodeType===1){for(var af=0;ah[af]!=null;af++){if(ah[af]&&(ah[af]===true||ah[af].nodeType===1&&H(S,ah[af]))){aa.push(Y[af])}}}else{for(var af=0;ah[af]!=null;af++){if(ah[af]&&ah[af].nodeType===1){aa.push(Y[af])}}}}}else{D(ah,aa)}if(R){E(R,S,aa,V)}return aa};E.matches=function(P,Q){return E(P,null,null,Q)};E.find=function(V,S){var W,Q;if(!V){return[]}for(var R=0,P=G.order.length;R<P;R++){var T=G.order[R],Q;if((Q=G.match[T].exec(V))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){Q[1]=(Q[1]||"").replace(/\\/g,"");W=G.find[T](Q,S);if(W!=null){V=V.replace(G.match[T],"");break}}}}if(!W){W=S.getElementsByTagName("*")}return{set:W,expr:V}};E.filter=function(S,ac,ad,T){var Q=S,Y=[],ah=ac,V,ab;while(S&&ac.length){for(var U in G.filter){if((V=G.match[U].exec(S))!=null){var Z=G.filter[U],R=null,X=0,aa,ag;ab=false;if(ah==Y){Y=[]}if(G.preFilter[U]){V=G.preFilter[U](V,ah,ad,Y,T);if(!V){ab=aa=true}else{if(V===true){continue}else{if(V[0]===true){R=[];var W=null,af;for(var ae=0;(af=ah[ae])!==g;ae++){if(af&&W!==af){R.push(af);W=af}}}}}}if(V){for(var ae=0;(ag=ah[ae])!==g;ae++){if(ag){if(R&&ag!=R[X]){X++}aa=Z(ag,V,X,R);var P=T^!!aa;if(ad&&aa!=null){if(P){ab=true}else{ah[ae]=false}}else{if(P){Y.push(ag);ab=true}}}}}if(aa!==g){if(!ad){ah=Y}S=S.replace(G.match[U],"");if(!ab){return[]}break}}}S=S.replace(/\s*,\s*/,"");if(S==Q){if(ab==null){throw"Syntax error, unrecognized expression: "+S}else{break}}Q=S}return ah};var G=E.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(P){return P.getAttribute("href")}},relative:{"+":function(T,Q){for(var R=0,P=T.length;R<P;R++){var S=T[R];if(S){var U=S.previousSibling;while(U&&U.nodeType!==1){U=U.previousSibling}T[R]=typeof Q==="string"?U||false:U===Q}}if(typeof Q==="string"){E.filter(Q,T,true)}},">":function(U,Q,V){if(typeof Q==="string"&&!/\W/.test(Q)){Q=V?Q:Q.toUpperCase();for(var R=0,P=U.length;R<P;R++){var T=U[R];if(T){var S=T.parentNode;U[R]=S.nodeName===Q?S:false}}}else{for(var R=0,P=U.length;R<P;R++){var T=U[R];if(T){U[R]=typeof Q==="string"?T.parentNode:T.parentNode===Q}}if(typeof Q==="string"){E.filter(Q,U,true)}}},"":function(S,Q,U){var R="done"+(I++),P=O;if(!Q.match(/\W/)){var T=Q=U?Q:Q.toUpperCase();P=L}P("parentNode",Q,R,S,T,U)},"~":function(S,Q,U){var R="done"+(I++),P=O;if(typeof Q==="string"&&!Q.match(/\W/)){var T=Q=U?Q:Q.toUpperCase();P=L}P("previousSibling",Q,R,S,T,U)}},find:{ID:function(Q,R){if(R.getElementById){var P=R.getElementById(Q[1]);return P?[P]:[]}},NAME:function(P,Q){return Q.getElementsByName?Q.getElementsByName(P[1]):null},TAG:function(P,Q){return Q.getElementsByTagName(P[1])}},preFilter:{CLASS:function(S,Q,R,P,U){S=" "+S[1].replace(/\\/g,"")+" ";for(var T=0;Q[T];T++){if(U^(" "+Q[T].className+" ").indexOf(S)>=0){if(!R){P.push(Q[T])}}else{if(R){Q[T]=false}}}return false},ID:function(P){return P[1].replace(/\\/g,"")},TAG:function(Q,P){for(var R=0;!P[R];R++){}return M(P[R])?Q[1]:Q[1].toUpperCase()},CHILD:function(P){if(P[1]=="nth"){var Q=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(P[2]=="even"&&"2n"||P[2]=="odd"&&"2n+1"||!/\D/.test(P[2])&&"0n+"+P[2]||P[2]);P[2]=(Q[1]+(Q[2]||1))-0;P[3]=Q[3]-0}P[0]="done"+(I++);return P},ATTR:function(Q){var P=Q[1];if(G.attrMap[P]){Q[1]=G.attrMap[P]}if(Q[2]==="~="){Q[4]=" "+Q[4]+" "}return Q},PSEUDO:function(T,Q,R,PLine truncated
|
||||
-1
@@ -1 +0,0 @@
|
||||
(function($){$.ajaxSettings.accepts._default = "text/javascript, text/html, application/xml, text/xml, */*"})(jQuery);(function($){$.fn.reset=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};$.fn.enable=function(){return this.each(function(){this.disabled=false})};$.fn.disable=function(){return this.each(function(){this.disabled=true})}})(jQuery);(function($){$.extend({fieldEvent:function(el,obs){var field=el[0]||el,e="change";if(field.type=="radio"||field.type=="checkbox"){e="click"}else{if(obs&&field.type=="text"||field.type=="textarea"){e="keyup"}}return e}});$.fn.extend({delayedObserver:function(delay,callback){var el=$(this);if(typeof window.delayedObserverStack=="undefined"){window.delayedObserverStack=[]}if(typeof window.delayedObserverCallback=="undefined"){window.delayedObserverCallback=function(stackPos){observed=window.delayedObserverStack[stackPos];if(observed.timer){clearTimeout(observed.timer)}observed.timer=setTimeout(function(){observed.timer=null;observed.callback(observed.obj,observed.obj.formVal())},observed.delay*1000);observed.oldVal=observed.obj.formVal()}}window.delayedObserverStack.push({obj:el,timer:null,delay:delay,oldVal:el.formVal(),callback:callback});var stackPos=window.delayedObserverStack.length-1;if(el[0].tagName=="FORM"){$(":input",el).each(function(){var field=$(this);field.bind($.fieldEvent(field,delay),function(){observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.obj.oldVal){return}else{window.delayedObserverCallback(stackPos)}})})}else{el.bind($.fieldEvent(el,delay),function(){observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.obj.oldVal){return}else{window.delayedObserverCallback(stackPos)}})}},formVal:function(){var el=this[0];if(el.tagName=="FORM"){return this.serialize()}if(el.type=="checkbox"||self.type=="radio"){return this.filter("input:checked").val()||""}else{return this.val()}}})})(jQuery);(function($){$.fn.extend({visualEffect:function(o){e=o.replace(/\_(.)/g,function(m,l){return l.toUpperCase()});return eval("$(this)."+e+"()")},appear:function(speed,callback){return this.fadeIn(speed,callback)},blindDown:function(speed,callback){return this.show("blind",{direction:"vertical"},speed,callback)},blindUp:function(speed,callback){return this.hide("blind",{direction:"vertical"},speed,callback)},blindRight:function(speed,callback){return this.show("blind",{direction:"horizontal"},speed,callback)},blindLeft:function(speed,callback){this.hide("blind",{direction:"horizontal"},speed,callback);return this},dropOut:function(speed,callback){return this.hide("drop",{direction:"down"},speed,callback)},dropIn:function(speed,callback){return this.show("drop",{direction:"up"},speed,callback)},fade:function(speed,callback){return this.fadeOut(speed,callback)},fadeToggle:function(speed,callback){return this.animate({opacity:"toggle"},speed,callback)},fold:function(speed,callback){return this.hide("fold",{},speed,callback)},foldOut:function(speed,callback){return this.show("fold",{},speed,callback)},grow:function(speed,callback){return this.show("scale",{},speed,callback)},highlight:function(speed,callback){return this.show("highlight",{},speed,callback)},puff:function(speed,callback){return this.hide("puff",{},speed,callback)},pulsate:function(speed,callback){return this.show("pulsate",{},speed,callback)},shake:function(speed,callback){return this.show("shake",{},speed,callback)},shrink:function(speed,callback){return this.hide("scale",{},speed,callback)},squish:function(speed,callback){return this.hide("scale",{origin:["top","left"]},speed,callback)},slideUp:function(speed,callback){return this.hide("slide",{direction:"up"},speed,callback)},slideDown:function(speed,callback){return this.show("slide",{direction:"up"},speed,callback)},switchOff:function(speed,callback){return this.hide("clip",{},speed,callback)},switchOn:function(speed,callback){return this.show("clip",{},speed,callback)}})})(jQuery);
|
||||
-192
@@ -1,192 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* jRails ajax extras
|
||||
* version 0.1
|
||||
* <aaron@ennerchi.com> | http://www.ennerchi.com
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
$.ajaxSettings.accepts._default = "text/javascript, text/html, application/xml, text/xml, */*";
|
||||
})(jQuery);
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* jRails form extras
|
||||
* <aaron@ennerchi.com> | http://www.ennerchi.com
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
(function($) {
|
||||
// reset a form
|
||||
$.fn.reset = function() {
|
||||
return this.each(function() {
|
||||
// guard against an input with the name of 'reset'
|
||||
// note that IE reports the reset function as an 'object'
|
||||
if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
|
||||
this.reset();
|
||||
});
|
||||
};
|
||||
// enable a form element
|
||||
$.fn.enable = function() {
|
||||
return this.each(function() {
|
||||
this.disabled = false;
|
||||
});
|
||||
};
|
||||
// disable a form element
|
||||
$.fn.disable = function() {
|
||||
return this.each(function() {
|
||||
this.disabled = true;
|
||||
});
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
/*
|
||||
*
|
||||
* jRails form observer plugin
|
||||
* version 0.2
|
||||
* <aaron@ennerchi.com> | http://www.ennerchi.com
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
$.extend({ // Translate field to event
|
||||
fieldEvent: function(el, obs) {
|
||||
var field = el[0] || el, e = 'change';
|
||||
if (field.type == 'radio' || field.type == 'checkbox') e = 'click';
|
||||
else if (obs && field.type == 'text' || field.type == 'textarea') e = 'keyup';
|
||||
return e;
|
||||
}
|
||||
});
|
||||
$.fn.extend({ // Delayed observer for fields and forms
|
||||
delayedObserver: function(delay, callback){
|
||||
var el = $(this);
|
||||
if (typeof window.delayedObserverStack == 'undefined') window.delayedObserverStack = [];
|
||||
if (typeof window.delayedObserverCallback == 'undefined') {
|
||||
window.delayedObserverCallback = function(stackPos) {
|
||||
var observed = window.delayedObserverStack[stackPos];
|
||||
if (observed.timer) clearTimeout(observed.timer);
|
||||
observed.timer = setTimeout(function(){
|
||||
observed.timer = null;
|
||||
observed.callback(observed.obj, observed.obj.formVal());
|
||||
}, observed.delay * 1000);
|
||||
observed.oldVal = observed.obj.formVal();
|
||||
};
|
||||
}
|
||||
window.delayedObserverStack.push({
|
||||
obj: el, timer: null, delay: delay,
|
||||
oldVal: el.formVal(), callback: callback
|
||||
});
|
||||
var stackPos = window.delayedObserverStack.length-1;
|
||||
if (el[0].tagName == 'FORM') {
|
||||
$(':input', el).each(function(){
|
||||
var field = $(this);
|
||||
field.bind($.fieldEvent(field, delay), function(){
|
||||
var observed = window.delayedObserverStack[stackPos];
|
||||
if (observed.obj.formVal() == observed.oldVal) return;
|
||||
else window.delayedObserverCallback(stackPos);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
el.bind($.fieldEvent(el, delay), function(){
|
||||
var observed = window.delayedObserverStack[stackPos];
|
||||
if (observed.obj.formVal() == observed.oldVal) return;
|
||||
else window.delayedObserverCallback(stackPos);
|
||||
});
|
||||
};
|
||||
},
|
||||
formVal: function() { // Gets form values
|
||||
var el = this[0];
|
||||
if(el.tagName == 'FORM') return this.serialize();
|
||||
if(el.type == 'checkbox' || el.type == 'radio') return this.filter('input:checked').val() || '';
|
||||
else return this.val();
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
/*
|
||||
*
|
||||
* jRails visual effects stubs
|
||||
* version 0.2
|
||||
* <aaron@ennerchi.com> | http://www.ennerchi.com
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
$.fn.extend({
|
||||
visualEffect : function(o) {
|
||||
e = o.replace(/\_(.)/g, function(m, l){return l.toUpperCase()});
|
||||
return eval('$(this).'+e+'()');
|
||||
},
|
||||
appear : function(speed, callback) {
|
||||
return this.fadeIn(speed, callback);
|
||||
},
|
||||
blindDown : function(speed, callback) {
|
||||
return this.show('blind', { direction: 'vertical' }, speed, callback);
|
||||
},
|
||||
blindUp : function(speed, callback) {
|
||||
return this.hide('blind', { direction: 'vertical' }, speed, callback);
|
||||
},
|
||||
blindRight : function(speed, callback) {
|
||||
return this.show('blind', { direction: 'horizontal' }, speed, callback);
|
||||
},
|
||||
blindLeft : function(speed, callback) {
|
||||
this.hide('blind', { direction: 'horizontal' }, speed, callback);
|
||||
return this;
|
||||
},
|
||||
dropOut : function(speed, callback) {
|
||||
return this.hide('drop', {direction: 'down' }, speed, callback);
|
||||
},
|
||||
dropIn : function(speed, callback) {
|
||||
return this.show('drop', { direction: 'up' }, speed, callback);
|
||||
},
|
||||
fade : function(speed, callback) {
|
||||
return this.fadeOut(speed, callback);
|
||||
},
|
||||
fadeToggle : function(speed, callback) {
|
||||
return this.animate({opacity: 'toggle'}, speed, callback);
|
||||
},
|
||||
fold : function(speed, callback) {
|
||||
return this.hide('fold', {}, speed, callback);
|
||||
},
|
||||
foldOut : function(speed, callback) {
|
||||
return this.show('fold', {}, speed, callback);
|
||||
},
|
||||
grow : function(speed, callback) {
|
||||
return this.show('scale', {}, speed, callback);
|
||||
},
|
||||
highlight : function(speed, callback) {
|
||||
return this.show('highlight', {}, speed, callback);
|
||||
},
|
||||
puff : function(speed, callback) {
|
||||
return this.hide('puff', {}, speed, callback);
|
||||
},
|
||||
pulsate : function(speed, callback) {
|
||||
return this.show('pulsate', {}, speed, callback);
|
||||
},
|
||||
shake : function(speed, callback) {
|
||||
return this.show('shake', {}, speed, callback);
|
||||
},
|
||||
shrink : function(speed, callback) {
|
||||
return this.hide('scale', {}, speed, callback);
|
||||
},
|
||||
squish : function(speed, callback) {
|
||||
return this.hide('scale', { origin: ['top', 'left'] }, speed, callback);
|
||||
},
|
||||
slideUp : function(speed, callback) {
|
||||
return this.hide('slide', { direction: 'up'}, speed, callback);
|
||||
},
|
||||
slideDown : function(speed, callback) {
|
||||
return this.show('slide', { direction: 'up'}, speed, callback);
|
||||
},
|
||||
switchOff : function(speed, callback) {
|
||||
return this.hide('clip', {}, speed, callback);
|
||||
},
|
||||
switchOn : function(speed, callback) {
|
||||
return this.show('clip', {}, speed, callback);
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
Vendored
-410
@@ -1,410 +0,0 @@
|
||||
module ActionView
|
||||
module Helpers
|
||||
|
||||
module JavaScriptHelper
|
||||
|
||||
# This function can be used to render rjs inline
|
||||
#
|
||||
# <%= javascript_function do |page|
|
||||
# page.replace_html :list, :partial => 'list', :object => @list
|
||||
# end %>
|
||||
#
|
||||
def javascript_function(*args, &block)
|
||||
html_options = args.extract_options!
|
||||
function = args[0] || ''
|
||||
|
||||
html_options.symbolize_keys!
|
||||
function = update_page(&block) if block_given?
|
||||
javascript_tag(function)
|
||||
end
|
||||
|
||||
def jquery_id(id)
|
||||
id.to_s.count('#.*,>+~:[/ ') == 0 ? "##{id}" : id
|
||||
end
|
||||
|
||||
def jquery_ids(ids)
|
||||
Array(ids).map{|id| jquery_id(id)}.join(',')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
module PrototypeHelper
|
||||
|
||||
unless const_defined? :JQUERY_VAR
|
||||
JQUERY_VAR = '$'
|
||||
end
|
||||
|
||||
unless const_defined? :JQCALLBACKS
|
||||
JQCALLBACKS = Set.new([ :beforeSend, :complete, :error, :success ] + (100..599).to_a)
|
||||
AJAX_OPTIONS = Set.new([ :before, :after, :condition, :url,
|
||||
:asynchronous, :method, :insertion, :position,
|
||||
:form, :with, :update, :script ]).merge(JQCALLBACKS)
|
||||
end
|
||||
|
||||
def periodically_call_remote(options = {})
|
||||
frequency = options[:frequency] || 10 # every ten seconds by default
|
||||
code = "setInterval(function() {#{remote_function(options)}}, #{frequency} * 1000)"
|
||||
javascript_tag(code)
|
||||
end
|
||||
|
||||
def remote_function(options)
|
||||
javascript_options = options_for_ajax(options)
|
||||
|
||||
update = ''
|
||||
if options[:update] && options[:update].is_a?(Hash)
|
||||
update = []
|
||||
update << "success:'#{options[:update][:success]}'" if options[:update][:success]
|
||||
update << "failure:'#{options[:update][:failure]}'" if options[:update][:failure]
|
||||
update = '{' + update.join(',') + '}'
|
||||
elsif options[:update]
|
||||
update << "'#{options[:update]}'"
|
||||
end
|
||||
|
||||
function = "#{JQUERY_VAR}.ajax(#{javascript_options})"
|
||||
|
||||
function = "#{options[:before]}; #{function}" if options[:before]
|
||||
function = "#{function}; #{options[:after]}" if options[:after]
|
||||
function = "if (#{options[:condition]}) { #{function}; }" if options[:condition]
|
||||
function = "if (confirm('#{escape_javascript(options[:confirm])}')) { #{function}; }" if options[:confirm]
|
||||
return function
|
||||
end
|
||||
|
||||
class JavaScriptGenerator
|
||||
module GeneratorMethods
|
||||
|
||||
def insert_html(position, id, *options_for_render)
|
||||
insertion = position.to_s.downcase
|
||||
insertion = 'append' if insertion == 'bottom'
|
||||
insertion = 'prepend' if insertion == 'top'
|
||||
call "#{JQUERY_VAR}(\"#{jquery_id(id)}\").#{insertion}", render(*options_for_render)
|
||||
end
|
||||
|
||||
def replace_html(id, *options_for_render)
|
||||
insert_html(:html, id, *options_for_render)
|
||||
end
|
||||
|
||||
def replace(id, *options_for_render)
|
||||
call "#{JQUERY_VAR}(\"#{jquery_id(id)}\").replaceWith", render(*options_for_render)
|
||||
end
|
||||
|
||||
def remove(*ids)
|
||||
call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").remove"
|
||||
end
|
||||
|
||||
def show(*ids)
|
||||
call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").show"
|
||||
end
|
||||
|
||||
def hide(*ids)
|
||||
call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").hide"
|
||||
end
|
||||
|
||||
def toggle(*ids)
|
||||
call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").toggle"
|
||||
end
|
||||
|
||||
def jquery_id(id)
|
||||
id.to_s.count('#.*,>+~:[/ ') == 0 ? "##{id}" : id
|
||||
end
|
||||
|
||||
def jquery_ids(ids)
|
||||
Array(ids).map{|id| jquery_id(id)}.join(',')
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
def options_for_ajax(options)
|
||||
js_options = build_callbacks(options)
|
||||
|
||||
url_options = options[:url]
|
||||
url_options = url_options.merge(:escape => false) if url_options.is_a?(Hash)
|
||||
js_options['url'] = "'#{url_for(url_options)}'"
|
||||
js_options['async'] = false if options[:type] == :synchronous
|
||||
js_options['type'] = options[:method] ? method_option_to_s(options[:method]) : ( options[:form] ? "'post'" : nil )
|
||||
js_options['dataType'] = options[:datatype] ? "'#{options[:datatype]}'" : (options[:update] ? nil : "'script'")
|
||||
|
||||
if options[:form]
|
||||
js_options['data'] = "#{JQUERY_VAR}.param(#{JQUERY_VAR}(this).serializeArray())"
|
||||
elsif options[:submit]
|
||||
js_options['data'] = "#{JQUERY_VAR}(\"##{options[:submit]} :input\").serialize()"
|
||||
elsif options[:with]
|
||||
js_options['data'] = options[:with].gsub("Form.serialize(this.form)","#{JQUERY_VAR}.param(#{JQUERY_VAR}(this.form).serializeArray())")
|
||||
end
|
||||
|
||||
js_options['type'] ||= "'post'"
|
||||
if options[:method]
|
||||
if method_option_to_s(options[:method]) == "'put'" || method_option_to_s(options[:method]) == "'delete'"
|
||||
js_options['type'] = "'post'"
|
||||
if js_options['data']
|
||||
js_options['data'] << " + '&"
|
||||
else
|
||||
js_options['data'] = "'"
|
||||
end
|
||||
js_options['data'] << "_method=#{options[:method]}'"
|
||||
end
|
||||
end
|
||||
|
||||
if respond_to?('protect_against_forgery?') && protect_against_forgery?
|
||||
if js_options['data']
|
||||
js_options['data'] << " + '&"
|
||||
else
|
||||
js_options['data'] = "'"
|
||||
end
|
||||
js_options['data'] << "#{request_forgery_protection_token}=' + encodeURIComponent('#{escape_javascript form_authenticity_token}')"
|
||||
end
|
||||
js_options['data'] = "''" if js_options['type'] == "'post'" && js_options['data'].nil?
|
||||
options_for_javascript(js_options.reject {|key, value| value.nil?})
|
||||
end
|
||||
|
||||
def build_update_for_success(html_id, insertion=nil)
|
||||
insertion = build_insertion(insertion)
|
||||
"#{JQUERY_VAR}('#{jquery_id(html_id)}').#{insertion}(request);"
|
||||
end
|
||||
|
||||
def build_update_for_error(html_id, insertion=nil)
|
||||
insertion = build_insertion(insertion)
|
||||
"#{JQUERY_VAR}('#{jquery_id(html_id)}').#{insertion}(request.responseText);"
|
||||
end
|
||||
|
||||
def build_insertion(insertion)
|
||||
insertion = insertion ? insertion.to_s.downcase : 'html'
|
||||
insertion = 'append' if insertion == 'bottom'
|
||||
insertion = 'prepend' if insertion == 'top'
|
||||
insertion
|
||||
end
|
||||
|
||||
def build_observer(klass, name, options = {})
|
||||
if options[:with] && (options[:with] !~ /[\{=(.]/)
|
||||
options[:with] = "'#{options[:with]}=' + value"
|
||||
else
|
||||
options[:with] ||= 'value' unless options[:function]
|
||||
end
|
||||
|
||||
callback = options[:function] || remote_function(options)
|
||||
javascript = "#{JQUERY_VAR}('#{jquery_id(name)}').delayedObserver("
|
||||
javascript << "#{options[:frequency] || 0}, "
|
||||
javascript << "function(element, value) {"
|
||||
javascript << "#{callback}}"
|
||||
#javascript << ", '#{options[:on]}'" if options[:on]
|
||||
javascript << ")"
|
||||
javascript_tag(javascript)
|
||||
end
|
||||
|
||||
def build_callbacks(options)
|
||||
callbacks = {}
|
||||
options[:beforeSend] = '';
|
||||
[:uninitialized,:loading,:loaded].each do |key|
|
||||
options[:beforeSend] << (options[key].last == ';' ? options.delete(key) : options.delete(key) << ';') if options[key]
|
||||
end
|
||||
options.delete(:beforeSend) if options[:beforeSend].blank?
|
||||
options[:error] = options.delete(:failure) if options[:failure]
|
||||
if options[:update]
|
||||
if options[:update].is_a?(Hash)
|
||||
options[:update][:error] = options[:update].delete(:failure) if options[:update][:failure]
|
||||
if options[:update][:success]
|
||||
options[:success] = build_update_for_success(options[:update][:success], options[:position]) << (options[:success] ? options[:success] : '')
|
||||
end
|
||||
if options[:update][:error]
|
||||
options[:error] = build_update_for_error(options[:update][:error], options[:position]) << (options[:error] ? options[:error] : '')
|
||||
end
|
||||
else
|
||||
options[:success] = build_update_for_success(options[:update], options[:position]) << (options[:success] ? options[:success] : '')
|
||||
end
|
||||
end
|
||||
options.each do |callback, code|
|
||||
if JQCALLBACKS.include?(callback)
|
||||
callbacks[callback] = "function(request){#{code}}"
|
||||
end
|
||||
end
|
||||
callbacks
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class JavaScriptElementProxy < JavaScriptProxy #:nodoc:
|
||||
|
||||
unless const_defined? :JQUERY_VAR
|
||||
JQUERY_VAR = ActionView::Helpers::PrototypeHelper::JQUERY_VAR
|
||||
end
|
||||
|
||||
def initialize(generator, id)
|
||||
id = id.to_s.count('#.*,>+~:[/ ') == 0 ? "##{id}" : id
|
||||
@id = id
|
||||
super(generator, "#{JQUERY_VAR}(\"#{id}\")")
|
||||
end
|
||||
|
||||
def replace_html(*options_for_render)
|
||||
call 'html', @generator.send(:render, *options_for_render)
|
||||
end
|
||||
|
||||
def replace(*options_for_render)
|
||||
call 'replaceWith', @generator.send(:render, *options_for_render)
|
||||
end
|
||||
|
||||
def reload(options_for_replace={})
|
||||
replace(options_for_replace.merge({ :partial => @id.to_s.sub(/^#/,'') }))
|
||||
end
|
||||
|
||||
def value()
|
||||
call 'val()'
|
||||
end
|
||||
|
||||
def value=(value)
|
||||
call 'val', value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class JavaScriptElementCollectionProxy < JavaScriptCollectionProxy #:nodoc:\
|
||||
|
||||
unless const_defined? :JQUERY_VAR
|
||||
JQUERY_VAR = ActionView::Helpers::PrototypeHelper::JQUERY_VAR
|
||||
end
|
||||
|
||||
def initialize(generator, pattern)
|
||||
super(generator, "#{JQUERY_VAR}(#{pattern.to_json})")
|
||||
end
|
||||
end
|
||||
|
||||
module ScriptaculousHelper
|
||||
|
||||
unless const_defined? :JQUERY_VAR
|
||||
JQUERY_VAR = ActionView::Helpers::PrototypeHelper::JQUERY_VAR
|
||||
end
|
||||
|
||||
unless const_defined? :SCRIPTACULOUS_EFFECTS
|
||||
SCRIPTACULOUS_EFFECTS = {
|
||||
:appear => {:method => 'fadeIn'},
|
||||
:blind_down => {:method => 'blind', :mode => 'show', :options => {:direction => 'vertical'}},
|
||||
:blind_up => {:method => 'blind', :mode => 'hide', :options => {:direction => 'vertical'}},
|
||||
:blind_right => {:method => 'blind', :mode => 'show', :options => {:direction => 'horizontal'}},
|
||||
:blind_left => {:method => 'blind', :mode => 'hide', :options => {:direction => 'horizontal'}},
|
||||
:bounce_in => {:method => 'bounce', :mode => 'show', :options => {:direction => 'up'}},
|
||||
:bounce_out => {:method => 'bounce', :mode => 'hide', :options => {:direction => 'up'}},
|
||||
:drop_in => {:method => 'drop', :mode => 'show', :options => {:direction => 'up'}},
|
||||
:drop_out => {:method => 'drop', :mode => 'hide', :options => {:direction => 'down'}},
|
||||
:fade => {:method => 'fadeOut'},
|
||||
:fold_in => {:method => 'fold', :mode => 'hide'},
|
||||
:fold_out => {:method => 'fold', :mode => 'show'},
|
||||
:grow => {:method => 'scale', :mode => 'show'},
|
||||
:shrink => {:method => 'scale', :mode => 'hide'},
|
||||
:slide_down => {:method => 'slide', :mode => 'show', :options => {:direction => 'up'}},
|
||||
:slide_up => {:method => 'slide', :mode => 'hide', :options => {:direction => 'up'}},
|
||||
:slide_right => {:method => 'slide', :mode => 'show', :options => {:direction => 'left'}},
|
||||
:slide_left => {:method => 'slide', :mode => 'hide', :options => {:direction => 'left'}},
|
||||
:squish => {:method => 'scale', :mode => 'hide', :options => {:origin => "['top','left']"}},
|
||||
:switch_on => {:method => 'clip', :mode => 'show', :options => {:direction => 'vertical'}},
|
||||
:switch_off => {:method => 'clip', :mode => 'hide', :options => {:direction => 'vertical'}},
|
||||
:toggle_appear => {:method => 'fadeToggle'},
|
||||
:toggle_slide => {:method => 'slide', :mode => 'toggle', :options => {:direction => 'up'}},
|
||||
:toggle_blind => {:method => 'blind', :mode => 'toggle', :options => {:direction => 'vertical'}},
|
||||
}
|
||||
end
|
||||
|
||||
def visual_effect(name, element_id = false, js_options = {})
|
||||
element = element_id ? element_id : "this"
|
||||
|
||||
if SCRIPTACULOUS_EFFECTS.has_key? name.to_sym
|
||||
effect = SCRIPTACULOUS_EFFECTS[name.to_sym]
|
||||
name = effect[:method]
|
||||
mode = effect[:mode]
|
||||
js_options = js_options.merge(effect[:options]) if effect[:options]
|
||||
end
|
||||
|
||||
[:color, :direction].each do |option|
|
||||
js_options[option] = "'#{js_options[option]}'" if js_options[option]
|
||||
end
|
||||
|
||||
if js_options.has_key? :duration
|
||||
speed = js_options.delete :duration
|
||||
speed = (speed * 1000).to_i unless speed.nil?
|
||||
else
|
||||
speed = js_options.delete :speed
|
||||
end
|
||||
|
||||
if ['fadeIn','fadeOut','fadeToggle'].include?(name)
|
||||
javascript = "#{JQUERY_VAR}('#{jquery_id(element_id)}').#{name}("
|
||||
javascript << "#{speed}" unless speed.nil?
|
||||
javascript << ");"
|
||||
else
|
||||
javascript = "#{JQUERY_VAR}('#{jquery_id(element_id)}').#{mode || 'effect'}('#{name}'"
|
||||
javascript << ",#{options_for_javascript(js_options)}" unless speed.nil? && js_options.empty?
|
||||
javascript << ",#{speed}" unless speed.nil?
|
||||
javascript << ");"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def sortable_element_js(element_id, options = {}) #:nodoc:
|
||||
#convert similar attributes
|
||||
options[:handle] = ".#{options[:handle]}" if options[:handle]
|
||||
if options[:tag] || options[:only]
|
||||
options[:items] = "> "
|
||||
options[:items] << options.delete(:tag) if options[:tag]
|
||||
options[:items] << ".#{options.delete(:only)}" if options[:only]
|
||||
end
|
||||
options[:connectWith] = options.delete(:containment).map {|x| "##{x}"} if options[:containment]
|
||||
options[:containment] = options.delete(:container) if options[:container]
|
||||
options[:dropOnEmpty] = false unless options[:dropOnEmpty]
|
||||
options[:helper] = "'clone'" if options[:ghosting] == true
|
||||
options[:axis] = case options.delete(:constraint)
|
||||
when "vertical"
|
||||
"y"
|
||||
when "horizontal"
|
||||
"x"
|
||||
when false
|
||||
nil
|
||||
when nil
|
||||
"y"
|
||||
end
|
||||
options.delete(:axis) if options[:axis].nil?
|
||||
options.delete(:overlap)
|
||||
options.delete(:ghosting)
|
||||
|
||||
if options[:onUpdate] || options[:url]
|
||||
options[:with] ||= "#{JQUERY_VAR}(this).sortable('serialize',{key:'#{element_id}[]'})"
|
||||
options[:onUpdate] ||= "function(){" + remote_function(options) + "}"
|
||||
end
|
||||
|
||||
options.delete_if { |key, value| PrototypeHelper::AJAX_OPTIONS.include?(key) }
|
||||
options[:update] = options.delete(:onUpdate) if options[:onUpdate]
|
||||
|
||||
[:axis, :cancel, :containment, :cursor, :handle, :tolerance, :items, :placeholder].each do |option|
|
||||
options[option] = "'#{options[option]}'" if options[option]
|
||||
end
|
||||
|
||||
options[:connectWith] = array_or_string_for_javascript(options[:connectWith]) if options[:connectWith]
|
||||
|
||||
%(#{JQUERY_VAR}('#{jquery_id(element_id)}').sortable(#{options_for_javascript(options)});)
|
||||
end
|
||||
|
||||
def draggable_element_js(element_id, options = {})
|
||||
%(#{JQUERY_VAR}("#{jquery_id(element_id)}").draggable(#{options_for_javascript(options)});)
|
||||
end
|
||||
|
||||
def drop_receiving_element_js(element_id, options = {})
|
||||
#convert similar options
|
||||
options[:hoverClass] = options.delete(:hoverclass) if options[:hoverclass]
|
||||
options[:drop] = options.delete(:onDrop) if options[:onDrop]
|
||||
|
||||
if options[:drop] || options[:url]
|
||||
options[:with] ||= "'id=' + encodeURIComponent(#{JQUERY_VAR}(ui.draggable).attr('id'))"
|
||||
options[:drop] ||= "function(ev, ui){" + remote_function(options) + "}"
|
||||
end
|
||||
|
||||
options.delete_if { |key, value| PrototypeHelper::AJAX_OPTIONS.include?(key) }
|
||||
|
||||
options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept]
|
||||
[:activeClass, :hoverClass, :tolerance].each do |option|
|
||||
options[option] = "'#{options[option]}'" if options[option]
|
||||
end
|
||||
|
||||
%(#{JQUERY_VAR}('#{jquery_id(element_id)}').droppable(#{options_for_javascript(options)});)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
namespace :jrails do
|
||||
namespace :update do
|
||||
desc "Copies the jQuery and jRails javascripts to public/javascripts"
|
||||
task :javascripts do
|
||||
puts "Copying files..."
|
||||
project_dir = RAILS_ROOT + '/public/javascripts/'
|
||||
scripts = Dir[File.join(File.dirname(__FILE__), '..') + '/javascripts/*.js']
|
||||
FileUtils.cp(scripts, project_dir)
|
||||
puts "files copied successfully."
|
||||
end
|
||||
end
|
||||
|
||||
namespace :install do
|
||||
desc "Installs the jQuery and jRails javascripts to public/javascripts"
|
||||
task :javascripts do
|
||||
Rake::Task['jrails:update:javascripts'].invoke
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user