From 28d5bbcfa1e362451c7e720630c84334c278bb80 Mon Sep 17 00:00:00 2001 From: Chris Malin Date: Thu, 9 May 2013 09:25:14 -0700 Subject: [PATCH 1/2] frontend prototype working --- Gemfile | 1 + Gemfile.lock | 4 + app/assets/javascripts/application.js | 7 +- app/assets/javascripts/timeSlider.js | 18 + app/assets/stylesheets/iThing-min.css | 1 + app/assets/stylesheets/iThing.css | 193 +++++ .../stylesheets/icons-classic/label.png | Bin 0 -> 9343 bytes .../icons-classic/resultset_next.png | Bin 0 -> 3022 bytes .../icons-classic/resultset_previous.png | Bin 0 -> 3023 bytes app/models/sexual_offender.rb | 19 + app/views/layouts/application.html.erb | 2 + app/views/session/index.html.erb | 1 + .../20130508000429_create_sexual_offenders.rb | 8 + spec/models/sexual_offender_spec.rb | 5 + .../rangeslider/jQRangeSlider-min.js | 2 + .../rangeslider/jquery-1.7.1.min.js | 4 + .../jquery-ui-1.8.16.custom.min.js | 791 ++++++++++++++++++ .../rangeslider/jquery.mousewheel.min.js | 12 + 18 files changed, 1067 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/timeSlider.js create mode 100644 app/assets/stylesheets/iThing-min.css create mode 100644 app/assets/stylesheets/iThing.css create mode 100644 app/assets/stylesheets/icons-classic/label.png create mode 100644 app/assets/stylesheets/icons-classic/resultset_next.png create mode 100644 app/assets/stylesheets/icons-classic/resultset_previous.png create mode 100644 app/models/sexual_offender.rb create mode 100644 db/migrate/20130508000429_create_sexual_offenders.rb create mode 100644 spec/models/sexual_offender_spec.rb create mode 100644 vendor/assets/javascripts/rangeslider/jQRangeSlider-min.js create mode 100644 vendor/assets/javascripts/rangeslider/jquery-1.7.1.min.js create mode 100644 vendor/assets/javascripts/rangeslider/jquery-ui-1.8.16.custom.min.js create mode 100644 vendor/assets/javascripts/rangeslider/jquery.mousewheel.min.js diff --git a/Gemfile b/Gemfile index fe1b1e9..8a038ee 100644 --- a/Gemfile +++ b/Gemfile @@ -22,6 +22,7 @@ group :assets do end gem 'jquery-rails' +# gem 'jquery-ui-rails' group :development do gem 'better_errors' diff --git a/Gemfile.lock b/Gemfile.lock index fe558d2..2f86ccd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -74,6 +74,9 @@ GEM jquery-rails (2.2.1) railties (>= 3.0, < 5.0) thor (>= 0.14, < 2.0) + jquery-ui-rails (4.0.2) + jquery-rails + railties (>= 3.1.0) json (1.7.7) kgio (2.8.0) listen (1.0.3) @@ -198,6 +201,7 @@ DEPENDENCIES geocoder guard-rspec jquery-rails + jquery-ui-rails meta_request nyan-cat-formatter pg diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 9097d83..14ac5b4 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -11,5 +11,10 @@ // GO AFTER THE REQUIRES BELOW. // //= require jquery -//= require jquery_ujs +//= require rangeslider/jquery-1.7.1.min +//= require rangeslider/jquery-ui-1.8.16.custom.min + //= require_tree . +//= require rangeslider/jquery.mousewheel.min +//= require rangeslider/jQRangeSlider-min + diff --git a/app/assets/javascripts/timeSlider.js b/app/assets/javascripts/timeSlider.js new file mode 100644 index 0000000..b1b28c0 --- /dev/null +++ b/app/assets/javascripts/timeSlider.js @@ -0,0 +1,18 @@ +$("#slider").rangeSlider({ + range: {min: 60, max: false }, + bounds: {min: 0, max: 1439}, + step: 1, + formatter:function(val){ + var hour = (val/60 < 1) ? 12 : Math.floor(val/60) + var meridiem = hour < 13 ? "AM" : "PM" + var minutes = val % 60 + var time = ((hour > 12 ) ? hour - 12 : hour) + ":" + ((minutes < 10) ? (minutes + "0") : minutes) + " " + meridiem + return time + } +}); + + +$("#slider").bind("valuesChanging", function(e, data){ + console.log("Max:" + data.values.max); + console.log("Min: " + data.values.min); +}); \ No newline at end of file diff --git a/app/assets/stylesheets/iThing-min.css b/app/assets/stylesheets/iThing-min.css new file mode 100644 index 0000000..2b8648e --- /dev/null +++ b/app/assets/stylesheets/iThing-min.css @@ -0,0 +1 @@ +.ui-rangeSlider-withArrows .ui-rangeSlider-container{margin:0 15px;-webkit-box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);-moz-box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5)}.ui-rangeSlider-noArrow .ui-rangeSlider-container{-moz-border-radius:4px;border-radius:4px;border-left:solid 1px #515862;border-right:solid 1px #515862;-webkit-box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);-moz-box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5)}.ui-rangeSlider-container{height:30px;border-top:solid 1px #232a32;border-bottom:solid 1px #6a7179;background:#67707F;background:-moz-linear-gradient(top,#67707F 0,#888DA0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#67707F),color-stop(100%,#888DA0))}.ui-rangeSlider-arrow{width:14px;height:30px;border-top:solid 1px #232a32;border-bottom:solid 1px #6a7179;background:#67707F;cursor:pointer;box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);-webkit-box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);-moz-box-shadow:inset 0 4px 6px -2px RGBA(0,0,0,.5);background:-moz-linear-gradient(top,#67707F 0,#888DA0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#67707F),color-stop(100%,#888DA0))}.ui-rangeSlider-leftArrow{border-radius:4px 0 0 4px;border-left:solid 1px #515862}.ui-rangeSlider-rightArrow{border-radius:0 4px 4px 0;border-right:solid 1px #515862}.ui-rangeSlider-arrow-inner{position:absolute;top:50%;border:10px solid transparent;width:0;height:0;margin-top:-10px}.ui-rangeSlider-leftArrow .ui-rangeSlider-arrow-inner{border-right:10px solid #a4a8b7;left:0;margin-left:-8px}.ui-rangeSlider-leftArrow:hover .ui-rangeSlider-arrow-inner{border-right:10px solid #b3b6c2}.ui-rangeSlider-rightArrow .ui-rangeSlider-arrow-inner{border-left:10px solid #a4a8b7;right:0;margin-right:-8px}.ui-rangeSlider-rightArrow:hover .ui-rangeSlider-arrow-inner{border-left:10px solid #b3b6c2}.ui-rangeSlider-innerBar{width:110%;height:100%;left:-10px;overflow:hidden}.ui-rangeSlider-bar{background:#68a1d6;height:29px;margin:1px 0;-moz-border-radius:4px;border-radius:4px;cursor:move;cursor:grab;cursor:-moz-grab;-webkit-box-shadow:inset 0 2px 6px RGBA(0,0,0,.5);-moz-box-shadow:inset 0 2px 6px RGBA(0,0,0,.5);box-shadow:inset 0 2px 6px RGBA(0,0,0,.5)}.ui-rangeSlider-handle{width:10px;height:30px;background:transparent;cursor:col-resize}.ui-rangeSlider-label{background:#888DA0;background:-moz-linear-gradient(top,#67707F 0,#888DA0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#67707F),color-stop(100%,#888DA0));padding:5px 10px;bottom:10px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 0 #c2c5d6;-moz-box-shadow:0 1px 0 #c2c5d6;box-shadow:0 1px 0 #c2c5d6;color:#fff;font-size:15px;cursor:col-resize}.ui-editRangeSlider .ui-rangeSlider-label{}.ui-rangeSlider-label-inner{position:absolute;top:100%;left:50%;display:block;z-index:99;border-left:10px solid transparent;border-right:10px solid transparent;margin-left:-10px;border-top:10px solid #888DA0}.ui-editRangeSlider-inputValue{width:2em;text-align:center;font-size:15px}.ui-rangeSlider .ui-ruler-scale{position:absolute;top:0;left:0;bottom:0;right:10px}.ui-rangeSlider .ui-ruler-tick{float:left}.ui-rangeSlider .ui-ruler-scale0 .ui-ruler-tick-inner{color:#fff;margin-top:1px;border-left:1px solid white;height:29px;padding-left:2px;position:relative}.ui-rangeSlider .ui-ruler-scale0 .ui-ruler-tick-label{position:absolute;bottom:6px}.ui-rangeSlider .ui-ruler-scale1 .ui-ruler-tick-inner{border-left:1px solid white;margin-top:25px;height:5px} \ No newline at end of file diff --git a/app/assets/stylesheets/iThing.css b/app/assets/stylesheets/iThing.css new file mode 100644 index 0000000..40f1136 --- /dev/null +++ b/app/assets/stylesheets/iThing.css @@ -0,0 +1,193 @@ +/** + * Theme for jQRangeSlider + * Inspired by http://cssdeck.com/item/381/itunes-10-storage-bar + * and http://cssdeck.com/item/276/pure-css-arrow-with-border-tooltip + */ + +.ui-rangeSlider-withArrows .ui-rangeSlider-container{ + margin: 0 15px; + -webkit-box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + -moz-box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); +} + +.ui-rangeSlider-noArrow .ui-rangeSlider-container{ + -moz-border-radius: 4px; + border-radius: 4px; + border-left: solid 1px #515862; + border-right: solid 1px #515862; + + -webkit-box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + -moz-box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); +} + +.ui-rangeSlider-container{ + height: 30px; + border-top: solid 1px #232a32; + border-bottom: solid 1px #6a7179; + background: #67707F; + background: -moz-linear-gradient(top, #67707F 0%, #888DA0 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#67707F), color-stop(100%,#888DA0)); +} + + +.ui-rangeSlider-arrow{ + width:14px; + height:30px; + border-top: solid 1px #232a32; + border-bottom: solid 1px #6a7179; + background: #67707F; + cursor:pointer; + + box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + -webkit-box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + -moz-box-shadow: inset 0px 4px 6px -2px RGBA(0,0,0,0.5); + background: -moz-linear-gradient(top, #67707F 0%, #888DA0 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#67707F), color-stop(100%,#888DA0)); +} + +.ui-rangeSlider-leftArrow{ + border-radius:4px 0 0 4px; + border-left: solid 1px #515862; +} + +.ui-rangeSlider-rightArrow{ + border-radius:0 4px 4px 0; + border-right: solid 1px #515862; +} + +.ui-rangeSlider-arrow-inner{ + position: absolute; + top: 50%; + border: 10px solid transparent; + width:0; + height:0; + + margin-top: -10px; +} + +.ui-rangeSlider-leftArrow .ui-rangeSlider-arrow-inner{ + border-right:10px solid #a4a8b7; + left: 0; + margin-left: -8px; +} + +.ui-rangeSlider-leftArrow:hover .ui-rangeSlider-arrow-inner{ + border-right:10px solid #b3b6c2; +} + +.ui-rangeSlider-rightArrow .ui-rangeSlider-arrow-inner{ + border-left:10px solid #a4a8b7; + right: 0; + margin-right: -8px; +} + +.ui-rangeSlider-rightArrow:hover .ui-rangeSlider-arrow-inner{ + border-left:10px solid #b3b6c2; +} + +.ui-rangeSlider-innerBar{ + width: 110%; + height: 100%; + left: -10px; + overflow: hidden; +} + +.ui-rangeSlider-bar{ + background: #68a1d6; + height: 29px; + margin:1px 0; + -moz-border-radius: 4px; + border-radius: 4px; + cursor:move; + cursor:grab; + cursor: -moz-grab; + + -webkit-box-shadow: inset 0 2px 6px RGBA(0,0,0,0.5); + -moz-box-shadow: inset 0 2px 6px RGBA(0,0,0,0.5); + box-shadow: inset 0 2px 6px RGBA(0,0,0,0.5);; + } + +.ui-rangeSlider-handle{ + width:10px; + height:30px; + background: transparent; + cursor:col-resize; +} + +.ui-rangeSlider-label{ + background: #888DA0; + background: -moz-linear-gradient(top, #67707F 0%, #888DA0 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#67707F), color-stop(100%,#888DA0)); + padding: 5px 10px; + bottom:10px; + + -moz-border-radius: 4px; + border-radius: 4px; + + -webkit-box-shadow: 0px 1px 0px #c2c5d6; + -moz-box-shadow: 0px 1px 0px #c2c5d6; + box-shadow: 0px 1px 0px #c2c5d6; + + color:white; + font-size:15px; + + cursor:col-resize; +} + +.ui-editRangeSlider .ui-rangeSlider-label{ +} + +.ui-rangeSlider-label-inner{ + + position: absolute; + top: 100%; + left: 50%; + display: block; + z-index:99; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + + margin-left: -10px; + border-top: 10px solid #888DA0; +} + +.ui-editRangeSlider-inputValue{ + width:2em; + text-align:center; + font-size:15px; +} + +.ui-rangeSlider .ui-ruler-scale{ + position:absolute; + top:0; + left:0; + bottom:0; + /* Handle width */ + right:10px; +} + +.ui-rangeSlider .ui-ruler-tick { + float: left; +} + +.ui-rangeSlider .ui-ruler-scale0 .ui-ruler-tick-inner{ + color:white; + margin-top:1px; + border-left: 1px solid white; + height:29px; + padding-left:2px; + position:relative; +} + +.ui-rangeSlider .ui-ruler-scale0 .ui-ruler-tick-label{ + position:absolute; + bottom: 6px; +} + +.ui-rangeSlider .ui-ruler-scale1 .ui-ruler-tick-inner{ + border-left:1px solid white; + margin-top: 25px; + height: 5px; +} \ No newline at end of file diff --git a/app/assets/stylesheets/icons-classic/label.png b/app/assets/stylesheets/icons-classic/label.png new file mode 100644 index 0000000000000000000000000000000000000000..faa370defce22b92098bc59d533e5e4acaceeccf GIT binary patch literal 9343 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 literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/icons-classic/resultset_next.png b/app/assets/stylesheets/icons-classic/resultset_next.png new file mode 100644 index 0000000000000000000000000000000000000000..ce9e413e577e7326241d5d02a048c1d6773e2997 GIT binary patch literal 3022 zcmV;<3o-PGP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002_Nkl5Q03KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002`Nkl`6or6f9n0D_YsvSc!$$Xrbs+M0}vA1Y-Bu> literal 0 HcmV?d00001 diff --git a/app/models/sexual_offender.rb b/app/models/sexual_offender.rb new file mode 100644 index 0000000..0820c25 --- /dev/null +++ b/app/models/sexual_offender.rb @@ -0,0 +1,19 @@ +class SexualOffender < ActiveRecord::Base + # attr_accessible :title, :body + + def self.getRecords() + scraper = Mechanize.new + scraper.user_agent_alias = 'Mac Safari' + page1 = scraper.get('http://www.meganslaw.ca.gov/cgi/prosoma.dll?City2=San%20Francisco&searchDistance2=.75&distacross=107211¢erlat=38409907¢erlon=-121514242&searchBy=citylist&docountycitylist=2&W6=137583%0D%0A&lang=ENGLISH&W6=137583') + # page = scraper.get('http://www.meganslaw.ca.gov/disclaimer.aspx?lang=ENGLISH') + # form = page.form_with(:id => '_ctl0') + # form.checkbox_with(:name => 'cbAgree').check + # page = scraper.submit(form) + # page = page.link_with(:id => img_zipcode).click + # page = page.link_with(:text => "City Search").click + # form = page.form_with(:name => 'form1') + # form.field_with(:name => 'City2').value = "San Francisco" + + # scraper.get('http://www.meganslaw.ca.gov/cgi/prosoma.dll?w6=547735&searchby=CountyList&SelectCounty=SAN%20FRANCISCO&SB=0&PageNo=1') + end +end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index ffd8b50..397f138 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -12,6 +12,8 @@ <%= yield %> + <%= javascript_include_tag "application" %> + diff --git a/app/views/session/index.html.erb b/app/views/session/index.html.erb index 6b83a9f..4a412d4 100644 --- a/app/views/session/index.html.erb +++ b/app/views/session/index.html.erb @@ -1,4 +1,5 @@
+