sufia 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Gemfile +1 -1
  2. data/app/assets/javascripts/sufia.js +6 -5
  3. data/app/assets/javascripts/terms_of_service.js +28 -0
  4. data/app/controllers/batch_edits_controller.rb +2 -2
  5. data/app/controllers/generic_files_controller.rb +2 -2
  6. data/app/models/datastreams/fits_datastream.rb +1 -1
  7. data/app/views/batch/edit.html.erb +6 -6
  8. data/app/views/batch_edits/edit.html.erb +10 -6
  9. data/app/views/catalog/_search_form.html.erb +2 -2
  10. data/app/views/dashboard/index.html.erb +7 -7
  11. data/app/views/generic_files/_asset_updated_flash.html.erb +1 -1
  12. data/app/views/generic_files/_descriptions.html.erb +1 -1
  13. data/app/views/generic_files/_versioning.html.erb +1 -1
  14. data/app/views/generic_files/edit.html.erb +10 -10
  15. data/app/views/generic_files/new.html.erb +3 -3
  16. data/app/views/generic_files/show.html.erb +1 -1
  17. data/app/views/users/edit.html.erb +3 -3
  18. data/config/locales/sufia.en.yml +10 -3
  19. data/features/step_definitions/scholarsphere.rb +3 -1
  20. data/features/support/paths.rb +1 -1
  21. data/lib/sufia/generic_file.rb +2 -3
  22. data/lib/sufia/generic_file/characterization.rb +1 -1
  23. data/lib/sufia/jobs/batch_update_job.rb +2 -2
  24. data/lib/sufia/version.rb +1 -1
  25. data/lib/tasks/resque.rake +27 -1
  26. data/spec/models/file_content_datastream_spec.rb +2 -2
  27. data/spec/models/generic_file_spec.rb +7 -4
  28. data/sufia.gemspec +3 -5
  29. data/vendor/assets/javascripts/fileupload.js +1 -3
  30. data/vendor/assets/javascripts/fileupload/application.js +0 -25
  31. data/vendor/assets/javascripts/fileupload/tmpl.js +86 -0
  32. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.autocomplete.js +602 -0
  33. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.core.js +356 -0
  34. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.menu.js +610 -0
  35. data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.widget.js +528 -0
  36. data/vendor/assets/javascripts/swfobject.js +4 -0
  37. metadata +15 -37
  38. data/app/assets/javascripts/generic_files.js +0 -17
  39. data/tasks/resque.rake +0 -27
  40. data/vendor/assets/javascripts/blacklight.js +0 -513
  41. data/vendor/assets/javascripts/bootstrap-collapse.js +0 -157
  42. data/vendor/assets/javascripts/bootstrap-popover.js +0 -98
  43. data/vendor/assets/javascripts/bootstrap-tooltip.js +0 -275
  44. data/vendor/assets/javascripts/fileupload/tmpl.min.js +0 -1
  45. data/vendor/assets/javascripts/jquery-1.7.2.min.js +0 -4
  46. data/vendor/assets/javascripts/jquery-1.8.2.js +0 -9440
  47. data/vendor/assets/javascripts/jquery-1.8.2.min.js +0 -2
  48. data/vendor/assets/javascripts/jquery-ui-1.8.16.custom.min.js +0 -791
  49. data/vendor/assets/javascripts/jquery-ui-1.8.23.custom.min.js +0 -125
  50. data/vendor/assets/javascripts/jquery_ujs.js +0 -377
@@ -0,0 +1,4 @@
1
+ /* SWFObject v2.2 <http://code.google.com/p/swfobject/>
2
+ is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
3
+ */
4
+ var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-17 00:00:00.000000000 Z
12
+ date: 2013-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 5.0.0
69
+ version: '5.1'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,23 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 5.0.0
78
- - !ruby/object:Gem::Dependency
79
- name: active-fedora
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 5.0.0
86
- type: :runtime
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 5.0.0
77
+ version: '5.1'
94
78
  - !ruby/object:Gem::Dependency
95
79
  name: noid
96
80
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +98,7 @@ dependencies:
114
98
  requirements:
115
99
  - - ~>
116
100
  - !ruby/object:Gem::Version
117
- version: 0.0.7
101
+ version: 0.1.0
118
102
  type: :runtime
119
103
  prerelease: false
120
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,13 +106,13 @@ dependencies:
122
106
  requirements:
123
107
  - - ~>
124
108
  - !ruby/object:Gem::Version
125
- version: 0.0.7
109
+ version: 0.1.0
126
110
  - !ruby/object:Gem::Dependency
127
111
  name: resque
128
112
  requirement: !ruby/object:Gem::Requirement
129
113
  none: false
130
114
  requirements:
131
- - - '='
115
+ - - ~>
132
116
  - !ruby/object:Gem::Version
133
117
  version: 1.23.0
134
118
  type: :runtime
@@ -136,7 +120,7 @@ dependencies:
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
121
  none: false
138
122
  requirements:
139
- - - '='
123
+ - - ~>
140
124
  - !ruby/object:Gem::Version
141
125
  version: 1.23.0
142
126
  - !ruby/object:Gem::Dependency
@@ -508,8 +492,8 @@ files:
508
492
  - app/assets/javascripts/bootstrap-modal.js
509
493
  - app/assets/javascripts/contact_form.js
510
494
  - app/assets/javascripts/dashboard.js
511
- - app/assets/javascripts/generic_files.js
512
495
  - app/assets/javascripts/sufia.js
496
+ - app/assets/javascripts/terms_of_service.js
513
497
  - app/assets/stylesheets/blacklight_more_facets.css
514
498
  - app/assets/stylesheets/bootstrap.min.css
515
499
  - app/assets/stylesheets/contact_form.css
@@ -898,7 +882,6 @@ files:
898
882
  - sufia.gemspec
899
883
  - tasks/cucumber.rake
900
884
  - tasks/jetty.rake
901
- - tasks/resque.rake
902
885
  - tasks/sufia-db.rake
903
886
  - tasks/sufia-dev.rake
904
887
  - tasks/sufia-fixtures.rake
@@ -914,10 +897,6 @@ files:
914
897
  - vendor/assets/javascripts/ZeroClipboard.swf
915
898
  - vendor/assets/javascripts/audio.min.js
916
899
  - vendor/assets/javascripts/audiojs.swf
917
- - vendor/assets/javascripts/blacklight.js
918
- - vendor/assets/javascripts/bootstrap-collapse.js
919
- - vendor/assets/javascripts/bootstrap-popover.js
920
- - vendor/assets/javascripts/bootstrap-tooltip.js
921
900
  - vendor/assets/javascripts/fileupload.js
922
901
  - vendor/assets/javascripts/fileupload/application.js
923
902
  - vendor/assets/javascripts/fileupload/jquery-ui-1.8.14.custom.min.js
@@ -926,15 +905,14 @@ files:
926
905
  - vendor/assets/javascripts/fileupload/jquery.fileupload.js
927
906
  - vendor/assets/javascripts/fileupload/jquery.iframe-transport.js
928
907
  - vendor/assets/javascripts/fileupload/locale.js
929
- - vendor/assets/javascripts/fileupload/tmpl.min.js
930
- - vendor/assets/javascripts/jquery-1.7.2.min.js
931
- - vendor/assets/javascripts/jquery-1.8.2.js
932
- - vendor/assets/javascripts/jquery-1.8.2.min.js
933
- - vendor/assets/javascripts/jquery-ui-1.8.16.custom.min.js
934
- - vendor/assets/javascripts/jquery-ui-1.8.23.custom.min.js
908
+ - vendor/assets/javascripts/fileupload/tmpl.js
909
+ - vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.autocomplete.js
910
+ - vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.core.js
911
+ - vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.menu.js
912
+ - vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.widget.js
935
913
  - vendor/assets/javascripts/jquery.validate.js
936
914
  - vendor/assets/javascripts/jquery.zclip.min.js
937
- - vendor/assets/javascripts/jquery_ujs.js
915
+ - vendor/assets/javascripts/swfobject.js
938
916
  - vendor/assets/javascripts/video.js
939
917
  - vendor/plugins/.gitkeep
940
918
  homepage: ''
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright © 2012 The Pennsylvania State University
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- //= require fileupload
data/tasks/resque.rake DELETED
@@ -1,27 +0,0 @@
1
- # Copyright © 2012 The Pennsylvania State University
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'resque/pool/tasks'
16
-
17
- # This provides access to the Rails env within all Resque workers
18
- task 'resque:setup' => :environment
19
-
20
- # Set up resque-pool
21
- task 'resque:pool:setup' do
22
- ActiveRecord::Base.connection.disconnect!
23
- Resque::Pool.after_prefork do |job|
24
- ActiveRecord::Base.establish_connection
25
- Resque.redis.client.reconnect
26
- end
27
- end
@@ -1,513 +0,0 @@
1
- /* This file is generated by Blacklight. You probably don't want to edit
2
- this file directly, or you'll have to manually merge your changes if later
3
- versions of Blacklight change this file. Instead, use your own JS file
4
- which over-rides things in this JS file, as described below: */
5
-
6
- /* Blacklight has a Javascript setup meant to support local disabling,
7
- modification, and use of Blacklight behaviors.
8
-
9
- There is a global Blacklight object, available to your local JS.
10
-
11
- Individual logic to apply JS behaviors to particular elements is
12
- stored in functions on that Blacklight object.
13
-
14
- The actual behaviors themselves are implemented as JQuery plugins,
15
- JQuery-UI widgets (a special kind of JQuery plugin), or in some cases
16
- just as logic in the Blacklight global object.
17
-
18
- All of these things can be modified by your local JS code -- these functions
19
- are all set up on js load, and only called on document ready, so do your
20
- modifications just on js load, and they'll be made by the time document ready
21
- comes along.
22
-
23
- Examples, in your application's own JS:
24
-
25
- Change what items zebra_striping gets applied to:
26
-
27
- Blacklight.do_zebra_stripe.selector = ".my_class .even";
28
- //Or even add on to existing:
29
- Blacklight.do_zebra_stripe.selector = Blacklight.do_zebra_stripe.selector + " .my_class .even";
30
-
31
- Turn off adding of behavior to facet 'more' links, using a no-op function:
32
-
33
- Blacklight.do_more_facets_behavior = function() {};
34
-
35
- Change the implementation of facet 'more' link behavior to use entirely
36
- different JS.
37
-
38
- Blacklight.do_more_facets_behavior = function() {
39
- $(Blacklight.do_more_facets_behavior.selector).each(function() {
40
- //my own thing!
41
- });
42
- };
43
- */
44
-
45
- Blacklight = {};
46
-
47
-
48
- $(document).ready(function() {
49
- Blacklight.do_zebra_stripe();
50
-
51
- Blacklight.do_select_submit();
52
-
53
- Blacklight.do_more_facets_behavior();
54
-
55
- Blacklight.do_lightbox_dialog();
56
-
57
- Blacklight.do_bookmark_toggle_behavior();
58
-
59
- Blacklight.do_folder_toggle_behavior();
60
-
61
- Blacklight.do_facet_expand_contract_behavior();
62
-
63
- Blacklight.do_search_context_behavior();
64
- });
65
-
66
-
67
-
68
- //Note all of these definitions are NOT in document ready, they get defined on
69
- //page load, and later called on document ready.
70
- (function($) {
71
- Blacklight.do_search_context_behavior = function() {
72
- $('a[data-counter]').click(function(event) {
73
- var f = document.createElement('form'); f.style.display = 'none';
74
- this.parentNode.appendChild(f);
75
- f.method = 'POST';
76
- f.action = $(this).attr('href');
77
- if(event.metaKey || event.ctrlKey){f.target = '_blank';};
78
- var d = document.createElement('input'); d.setAttribute('type', 'hidden');
79
- d.setAttribute('name', 'counter'); d.setAttribute('value', $(this).data('counter')); f.appendChild(d);
80
- var m = document.createElement('input'); m.setAttribute('type', 'hidden');
81
- m.setAttribute('name', '_method'); m.setAttribute('value', 'put'); f.appendChild(m);
82
- var m = document.createElement('input'); m.setAttribute('type', 'hidden');
83
- m.setAttribute('name', $('meta[name="csrf-param"]').attr('content')); m.setAttribute('value', $('meta[name="csrf-token"]').attr('content')); f.appendChild(m);
84
-
85
- f.submit();
86
-
87
- return false;
88
- });
89
-
90
- };
91
-
92
- // adds classes for zebra striping table rows
93
- Blacklight.do_zebra_stripe = function() {
94
- $(Blacklight.do_zebra_stripe.selector).addClass('zebra_stripe');
95
- };
96
- Blacklight.do_zebra_stripe.selector = "table.zebra tr:even, ul.zebra li:even";
97
-
98
- //add ajaxy dialogs to certain links, using the ajaxyDialog widget.
99
- Blacklight.do_more_facets_behavior = function () {
100
- $( Blacklight.do_more_facets_behavior.selector ).ajaxyDialog({
101
- width: $(window).width() / 2,
102
- chainAjaxySelector: "a.next_page, a.prev_page, a.sort_change"
103
- });
104
- };
105
- Blacklight.do_more_facets_behavior.selector = "a.more_facets_link";
106
-
107
- // Used for sort-by and per-page controls, hide the submit button
108
- // and make the select auto-submit
109
- Blacklight.do_select_submit = function() {
110
- $(Blacklight.do_select_submit.selector).each(function() {
111
- var select = $(this);
112
- select.closest("form").find("input[type=submit]").hide();
113
- select.bind("change", function() {
114
- this.form.submit();
115
- });
116
- });
117
- };
118
- Blacklight.do_select_submit.selector = "form.sort select, form.per_page select";
119
-
120
-
121
- Blacklight.do_lightbox_dialog = function() {
122
- $("a.lightboxLink").ajaxyDialog({
123
- chainAjaxySelector: false
124
- });
125
- //But make the librarian link wider than 300px default.
126
- $('a.lightboxLink#librarianLink').ajaxyDialog("option", "width", 650);
127
- //And the email one too needs to be wider to fit the textarea
128
- $("a.lightboxLink#emailLink").ajaxyDialog("option", "width", 500);
129
- };
130
-
131
- //change form submit toggle to checkbox
132
- Blacklight.do_bookmark_toggle_behavior = function() {
133
- $(Blacklight.do_bookmark_toggle_behavior.selector).bl_checkbox_submit({
134
- checked_label: "In Bookmarks",
135
- unchecked_label: "Bookmark",
136
- progress_label: "Saving...",
137
- //css_class is added to elements added, plus used for id base
138
- css_class: "toggle_bookmark"
139
- });
140
- };
141
- Blacklight.do_bookmark_toggle_behavior.selector = "form.bookmark_toggle";
142
-
143
- Blacklight.do_folder_toggle_behavior = function() {
144
- $( Blacklight.do_folder_toggle_behavior.selector ).bl_checkbox_submit({
145
- checked_label: "Selected",
146
- unchecked_label: "Select",
147
- css_class: "toggle_folder",
148
- success: function(new_state) {
149
-
150
- if (new_state) {
151
- $("#folder_number").text(parseInt($("#folder_number").text()) + 1);
152
- }
153
- else {
154
- $("#folder_number").text(parseInt($("#folder_number").text()) - 1);
155
- }
156
- }
157
- });
158
- };
159
- Blacklight.do_folder_toggle_behavior.selector = "form.folder_toggle";
160
-
161
- Blacklight.do_facet_expand_contract_behavior = function() {
162
- $( Blacklight.do_facet_expand_contract_behavior.selector ).each (
163
- Blacklight.facet_expand_contract
164
- );
165
- }
166
- Blacklight.do_facet_expand_contract_behavior.selector = '#facets h3';
167
-
168
- /* Behavior that makes facet limit headings in sidebar expand/contract
169
- their contents. This is kind of fragile code targeted specifically
170
- at how we currently render facet HTML, which is why I put it in a function
171
- on Blacklight instead of in a jquery plugin. Perhaps in the future this
172
- could/should be expanded to a general purpose jquery plugin -- or
173
- we should just use one of the existing ones for expand/contract? */
174
- Blacklight.facet_expand_contract = function() {
175
- $(this).next("ul, div").each(function(){
176
- var f_content = $(this);
177
- $(f_content).prev('h3').addClass('twiddle');
178
- // find all f_content's that don't have any span descendants with a class of "selected"
179
- if($('span.selected', f_content).length == 0){
180
- // hide it
181
- f_content.hide();
182
- } else {
183
- $(this).prev('h3').addClass('twiddle-open');
184
- }
185
-
186
- // attach the toggle behavior to the h3 tag
187
- $('h3', f_content.parent()).click(function(){
188
- // toggle the content
189
- $(this).toggleClass('twiddle-open');
190
- $(f_content).slideToggle();
191
- });
192
- });
193
- };
194
-
195
- })(jQuery);
196
-
197
-
198
-
199
-
200
-
201
-
202
- /* A JQuery plugin (should this be implemented as a widget instead? not sure)
203
- that will convert a "toggle" form, with single submit button to add/remove
204
- something, like used for Bookmarks/Folder, into an AJAXy checkbox instead.
205
-
206
- Apply to a form. Does require certain assumption about the form:
207
- 1) The same form 'action' href must be used for both ADD and REMOVE
208
- actions, with the different being the hidden input name="_method"
209
- being set to "put" or "delete" -- that's the Rails method to pretend
210
- to be doing a certain HTTP verb. So same URL, PUT to add, DELETE
211
- to remove. This plugin assumes that.
212
-
213
- Plus, the form this is applied to should provide a data-doc-id
214
- attribute (HTML5-style doc-*) that contains the id/primary key
215
- of the object in question -- used by plugin for a unique value for
216
- DOM id's.
217
-
218
- Pass in options for your class name and labels:
219
- $("form.something").bl_checkbox_submit({
220
- checked_label: "Selected",
221
- unchecked_label: "Select",
222
- progress_label: "Saving...",
223
- //css_class is added to elements added, plus used for id base
224
- css_class: "toggle_my_kinda_form",
225
- success: function(after_success_check_state) {
226
- #optional callback
227
- }
228
- });
229
- */
230
- (function($) {
231
- $.fn.bl_checkbox_submit = function(arg_opts) {
232
-
233
- this.each(function() {
234
- var options = $.extend({}, $.fn.bl_checkbox_submit.defaults, arg_opts);
235
-
236
-
237
- var form = $(this);
238
- form.children().hide();
239
- //We're going to use the existing form to actually send our add/removes
240
- //This works conveneintly because the exact same action href is used
241
- //for both bookmarks/$doc_id. But let's take out the irrelevant parts
242
- //of the form to avoid any future confusion.
243
- form.find("input[type=submit]").remove();
244
-
245
- //View needs to set data-doc-id so we know a unique value
246
- //for making DOM id
247
- var unique_id = form.attr("data-doc-id") || Math.random();
248
- // if form is currently using method delete to change state,
249
- // then checkbox is currently checked
250
- var checked = (form.find("input[name=_method][value=delete]").size() != 0);
251
-
252
- var checkbox = $('<input type="checkbox">')
253
- .addClass( options.css_class )
254
- .attr("id", options.css_class + "_" + unique_id);
255
- var label = $('<label>')
256
- .addClass( options.css_class )
257
- .attr("for", options.css_class + '_' + unique_id)
258
- .attr("title", form.attr("title") || "");
259
-
260
-
261
- function update_state_for(state) {
262
- checkbox.attr("checked", state);
263
- label.toggleClass("checked", state);
264
- if (state) {
265
- //Set the Rails hidden field that fakes an HTTP verb
266
- //properly for current state action.
267
- form.find("input[name=_method]").val("delete");
268
- label.text(options.checked_label);
269
- } else {
270
- form.find("input[name=_method]").val("put");
271
- label.text(options.unchecked_label);
272
- }
273
- }
274
-
275
- form.append(checkbox).append(" ").append(label);
276
- update_state_for(checked);
277
-
278
- checkbox.click(function() {
279
- label.text(options.progress_label).attr("disabled", "disabled");
280
- checkbox.attr("disabled", "disabled");
281
-
282
- $.ajax({
283
- url: form.attr("action"),
284
- dataType: 'json',
285
- type: form.attr("method").toUpperCase(),
286
- data: form.serialize(),
287
- error: function() {
288
- alert("Error");
289
- update_state_for(checked);
290
- label.removeAttr("disabled");
291
- checkbox.removeAttr("disabled");
292
- },
293
- success: function(data, status, xhr) {
294
- //if app isn't running at all, xhr annoyingly
295
- //reports success with status 0.
296
- if (xhr.status != 0) {
297
- checked = ! checked;
298
- update_state_for(checked);
299
- label.removeAttr("disabled");
300
- checkbox.removeAttr("disabled");
301
- options.success.call(form, checked);
302
- } else {
303
- alert("Error");
304
- update_state_for(checked);
305
- label.removeAttr("disabled");
306
- checkbox.removeAttr("disabled");
307
- }
308
- }
309
- });
310
-
311
- return false;
312
- }); //checkbox.click
313
-
314
-
315
- }); //this.each
316
- return this;
317
- };
318
-
319
- $.fn.bl_checkbox_submit.defaults = {
320
- checked_label: "",
321
- unchecked_label: "",
322
- progress_label: "Saving...",
323
- //css_class is added to elements added, plus used for id base
324
- css_class: "bl_checkbox_submit",
325
- success: function() {} //callback
326
- };
327
-
328
- })(jQuery);
329
-
330
-
331
- /* A widget written by jrochkind to make a link or form result in
332
- an in-window ajaxy dialog, instead of page load, using JQuery UI
333
- Dialog widget.
334
-
335
- This widget is actually hosted at: https://github.com/jrochkind/jquery.uiExt.ajaxyDialog
336
-
337
-
338
- Included in this main file because I just couldn't bare to add yet
339
- another JS file to our app, until we figure out a good fix those too
340
- many JS files are serious page load speed problem. */
341
-
342
- (function($) {
343
- var widgetNamespace = "uiExt";
344
- var widgetName = "ajaxyDialog";
345
-
346
- $.widget(widgetNamespace + "." + widgetName, {
347
- options: {
348
- extractTitleSelector: "h1, h2, h3, h4, h5",
349
- chainAjaxySelector: "a:not([target]), form:not([target])",
350
- closeDialogSelector: "a.dialog-close"
351
- },
352
-
353
- _create: function() {
354
- var self = this;
355
- var element = self.element[0];
356
- if (element.tagName.toUpperCase() == "A") {
357
- $(element).bind("click."+self.widgetName, function(event, ui) {
358
- self._handleClick();
359
- return false;
360
- });
361
- }
362
- else if (element.tagName.toUpperCase() == "FORM") {
363
- $(element).bind("submit."+self.widgetName, function(event, ui) {
364
- self._handleSubmit();
365
- return false;
366
- });
367
- }
368
- },
369
-
370
- open: function() {
371
- var self = this;
372
- var element = self.element[0];
373
-
374
- if ( element.tagName.toUpperCase() == "A") {
375
- self._handleClick();
376
- } else if (element.tagName.toUpperCase() == "FORM") {
377
- self._handleSubmit();
378
- }
379
- },
380
-
381
- close: function() {
382
- this.dialogContainer().dialog("close");
383
- },
384
-
385
- _handleClick: function() {
386
- var self = this;
387
- var url = this.element.attr("href");
388
- var requestDialog = self.dialogContainer();
389
-
390
- $("body").css("cursor", "progress");
391
-
392
- $.ajax({
393
- url: url,
394
- dataType: "html",
395
- success: function(resp, status, xhr) {
396
- if (xhr.status != 0) {
397
- self._loadToDialog(resp);
398
- } else {
399
- //stupid jquery calling this 'success', it's
400
- //network unavailable.
401
- self._displayFailure(url, xhr, status);
402
- }
403
- },
404
- error: function(xhr, msg) {
405
- self._displayFailure(url, xhr, msg);
406
- }
407
- });
408
- },
409
-
410
- _handleSubmit: function() {
411
- var self = this;
412
- var form = self.element;
413
- var actionUri = form.attr("action");
414
- var serialized = form.serialize();
415
-
416
- $("body").css("cursor", "progress");
417
-
418
- $.ajax({
419
- url: actionUri,
420
- data: serialized,
421
- type: form.attr("method").toUpperCase(),
422
- dataType: "html",
423
- success: function(resp, status, xhr) {
424
- if (xhr.status != 0) {
425
- self._loadToDialog(resp);
426
- } else {
427
- //stupid jquery calling this 'success', it's
428
- //network unavailable.
429
- self._displayFailure(url, xhr, status);
430
- }
431
- },
432
- error: function(xhr, msg) {
433
- self._displayFailure(actionUri, xhr, msg);
434
- }
435
- });
436
- },
437
-
438
- _loadToDialog: function(html_content) {
439
- var self = this;
440
- var dialog = self.dialogContainer();
441
- //Cheesy way to restore it to it's default options, plus
442
- //our own local options, since its' a reuseable dialog.
443
- //for now we insist on modal:true.
444
- dialog.dialog($.extend({},
445
- $.ui.dialog.prototype.options,
446
- self.options,
447
- {autoOpen:false, modal:true}
448
- ));
449
-
450
- if (self._trigger('beforeDisplay', 0, html_content) !== false) {
451
- dialog.html( html_content );
452
-
453
- //extract and set title
454
- var title;
455
- self.options.extractTitleSelector &&
456
- (title = dialog.find(self.options.extractTitleSelector).first().remove().text());
457
- title = title ||
458
- self.element.attr("title")
459
- title && dialog.dialog("option", "title", title);
460
-
461
- //Make any hyperlinks or forms ajaxified, by applying
462
- //this very same plugin to em, and passing on our options.
463
- if (self.options.chainAjaxySelector) {
464
- dialog.find(self.options.chainAjaxySelector).ajaxyDialog(self.options);
465
- }
466
-
467
- //Make any links marked dialog-close do so
468
- if ( self.options.closeDialogSelector ) {
469
- dialog.find(self.options.closeDialogSelector).unbind("click." + widgetName);
470
- dialog.find(self.options.closeDialogSelector).bind("click." + widgetName, function() {
471
- dialog.dialog("close");
472
- return false;
473
- });
474
- }
475
-
476
- dialog.dialog("open");
477
- }
478
- $("body").css("cursor", "auto");
479
- },
480
-
481
- _displayFailure: function(uri, xhr, serverMsg) {
482
- if ( this._trigger("error", 0, {uri:uri, xhr: xhr, serverMsg: serverMsg}) !== false) {
483
- var dialog = this.dialogContainer();
484
-
485
- dialog.html("<div class='ui-state-error' style='padding: 1em;'><p><span style='float: left; margin-right: 0.3em;' class='ui-icon ui-icon-alert'></span>Sorry, a software error has occured.</p><p>" + uri + ": " + xhr.status + " " + serverMsg+"</p></div>");
486
- dialog.dialog("option", "title", "Sorry, an error has occured.");
487
- dialog.dialog("option", "buttons", {"OK": function() { dialog.dialog("close"); }});
488
- dialog.dialog("open");
489
- }
490
- $("body").css("cursor", "auto");
491
- },
492
-
493
- // The DOM element which has a ui dialog() called on it.
494
- // Right now we insist upon modal dialogs, and re-use the same
495
- // <div>.dialog() for all of them. It's lazily created here.
496
- // If client calls dialog("destroy") on it, no problem, it'll
497
- // be lazily created if it's needed again.
498
- dialogContainer: function() {
499
- var existing = $("#reusableModalDialog");
500
- if ( existing.size() > 0) {
501
- return existing.first();
502
- }
503
- else {
504
- //single shared element for modal dialogs
505
- var requestDialog = $('<div id="reusableModalDialog" style="display:none"></div>').appendTo('body').
506
- dialog({autoOpen: false});
507
- return requestDialog;
508
- }
509
- }
510
-
511
- });
512
- }(jQuery));
513
-