stepy-rails 1.1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
 - data/.gitignore +17 -0
 - data/.stepy-rails.gemspec.un~ +0 -0
 - data/Gemfile +4 -0
 - data/LICENSE.txt +22 -0
 - data/README.md +29 -0
 - data/Rakefile +1 -0
 - data/lib/stepy-rails +1 -0
 - data/lib/stepy/rails.rb +8 -0
 - data/lib/stepy/rails/engine.rb +6 -0
 - data/lib/stepy/rails/version.rb +5 -0
 - data/stepy-rails.gemspec +22 -0
 - data/stepy-test/.gitignore +15 -0
 - data/stepy-test/Gemfile +38 -0
 - data/stepy-test/README.rdoc +261 -0
 - data/stepy-test/Rakefile +7 -0
 - data/stepy-test/app/assets/images/rails.png +0 -0
 - data/stepy-test/app/assets/javascripts/application.js +15 -0
 - data/stepy-test/app/assets/stylesheets/application.css +13 -0
 - data/stepy-test/app/controllers/application_controller.rb +3 -0
 - data/stepy-test/app/helpers/application_helper.rb +2 -0
 - data/stepy-test/app/mailers/.gitkeep +0 -0
 - data/stepy-test/app/models/.gitkeep +0 -0
 - data/stepy-test/app/views/layouts/application.html.erb +14 -0
 - data/stepy-test/config.ru +4 -0
 - data/stepy-test/config/application.rb +62 -0
 - data/stepy-test/config/boot.rb +6 -0
 - data/stepy-test/config/database.yml +25 -0
 - data/stepy-test/config/environment.rb +5 -0
 - data/stepy-test/config/environments/development.rb +37 -0
 - data/stepy-test/config/environments/production.rb +67 -0
 - data/stepy-test/config/environments/test.rb +37 -0
 - data/stepy-test/config/initializers/backtrace_silencers.rb +7 -0
 - data/stepy-test/config/initializers/inflections.rb +15 -0
 - data/stepy-test/config/initializers/mime_types.rb +5 -0
 - data/stepy-test/config/initializers/secret_token.rb +7 -0
 - data/stepy-test/config/initializers/session_store.rb +8 -0
 - data/stepy-test/config/initializers/wrap_parameters.rb +14 -0
 - data/stepy-test/config/locales/en.yml +5 -0
 - data/stepy-test/config/routes.rb +58 -0
 - data/stepy-test/db/seeds.rb +7 -0
 - data/stepy-test/lib/assets/.gitkeep +0 -0
 - data/stepy-test/lib/tasks/.gitkeep +0 -0
 - data/stepy-test/log/.gitkeep +0 -0
 - data/stepy-test/public/404.html +26 -0
 - data/stepy-test/public/422.html +26 -0
 - data/stepy-test/public/500.html +25 -0
 - data/stepy-test/public/favicon.ico +0 -0
 - data/stepy-test/public/index.html +241 -0
 - data/stepy-test/public/robots.txt +5 -0
 - data/stepy-test/script/rails +6 -0
 - data/stepy-test/test/fixtures/.gitkeep +0 -0
 - data/stepy-test/test/functional/.gitkeep +0 -0
 - data/stepy-test/test/integration/.gitkeep +0 -0
 - data/stepy-test/test/performance/browsing_test.rb +12 -0
 - data/stepy-test/test/test_helper.rb +13 -0
 - data/stepy-test/test/unit/.gitkeep +0 -0
 - data/stepy-test/vendor/assets/javascripts/.gitkeep +0 -0
 - data/stepy-test/vendor/assets/stylesheets/.gitkeep +0 -0
 - data/stepy-test/vendor/plugins/.gitkeep +0 -0
 - data/vendor/assets/javascripts/jquery.stepy.js +408 -0
 - data/vendor/assets/stylesheets/jquery.stepy.css +39 -0
 - metadata +153 -0
 
| 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # This file should contain all the record creation needed to seed the database with its default values.
         
     | 
| 
      
 2 
     | 
    
         
            +
            # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
         
     | 
| 
      
 3 
     | 
    
         
            +
            #
         
     | 
| 
      
 4 
     | 
    
         
            +
            # Examples:
         
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            #   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
         
     | 
| 
      
 7 
     | 
    
         
            +
            #   Mayor.create(name: 'Emanuel', city: cities.first)
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <!DOCTYPE html>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 3 
     | 
    
         
            +
            <head>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <title>The page you were looking for doesn't exist (404)</title>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <style type="text/css">
         
     | 
| 
      
 6 
     | 
    
         
            +
                body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
         
     | 
| 
      
 7 
     | 
    
         
            +
                div.dialog {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  width: 25em;
         
     | 
| 
      
 9 
     | 
    
         
            +
                  padding: 0 4em;
         
     | 
| 
      
 10 
     | 
    
         
            +
                  margin: 4em auto 0 auto;
         
     | 
| 
      
 11 
     | 
    
         
            +
                  border: 1px solid #ccc;
         
     | 
| 
      
 12 
     | 
    
         
            +
                  border-right-color: #999;
         
     | 
| 
      
 13 
     | 
    
         
            +
                  border-bottom-color: #999;
         
     | 
| 
      
 14 
     | 
    
         
            +
                }
         
     | 
| 
      
 15 
     | 
    
         
            +
                h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
         
     | 
| 
      
 16 
     | 
    
         
            +
              </style>
         
     | 
| 
      
 17 
     | 
    
         
            +
            </head>
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            <body>
         
     | 
| 
      
 20 
     | 
    
         
            +
              <!-- This file lives in public/404.html -->
         
     | 
| 
      
 21 
     | 
    
         
            +
              <div class="dialog">
         
     | 
| 
      
 22 
     | 
    
         
            +
                <h1>The page you were looking for doesn't exist.</h1>
         
     | 
| 
      
 23 
     | 
    
         
            +
                <p>You may have mistyped the address or the page may have moved.</p>
         
     | 
| 
      
 24 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 25 
     | 
    
         
            +
            </body>
         
     | 
| 
      
 26 
     | 
    
         
            +
            </html>
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <!DOCTYPE html>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 3 
     | 
    
         
            +
            <head>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <title>The change you wanted was rejected (422)</title>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <style type="text/css">
         
     | 
| 
      
 6 
     | 
    
         
            +
                body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
         
     | 
| 
      
 7 
     | 
    
         
            +
                div.dialog {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  width: 25em;
         
     | 
| 
      
 9 
     | 
    
         
            +
                  padding: 0 4em;
         
     | 
| 
      
 10 
     | 
    
         
            +
                  margin: 4em auto 0 auto;
         
     | 
| 
      
 11 
     | 
    
         
            +
                  border: 1px solid #ccc;
         
     | 
| 
      
 12 
     | 
    
         
            +
                  border-right-color: #999;
         
     | 
| 
      
 13 
     | 
    
         
            +
                  border-bottom-color: #999;
         
     | 
| 
      
 14 
     | 
    
         
            +
                }
         
     | 
| 
      
 15 
     | 
    
         
            +
                h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
         
     | 
| 
      
 16 
     | 
    
         
            +
              </style>
         
     | 
| 
      
 17 
     | 
    
         
            +
            </head>
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            <body>
         
     | 
| 
      
 20 
     | 
    
         
            +
              <!-- This file lives in public/422.html -->
         
     | 
| 
      
 21 
     | 
    
         
            +
              <div class="dialog">
         
     | 
| 
      
 22 
     | 
    
         
            +
                <h1>The change you wanted was rejected.</h1>
         
     | 
| 
      
 23 
     | 
    
         
            +
                <p>Maybe you tried to change something you didn't have access to.</p>
         
     | 
| 
      
 24 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 25 
     | 
    
         
            +
            </body>
         
     | 
| 
      
 26 
     | 
    
         
            +
            </html>
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <!DOCTYPE html>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 3 
     | 
    
         
            +
            <head>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <title>We're sorry, but something went wrong (500)</title>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <style type="text/css">
         
     | 
| 
      
 6 
     | 
    
         
            +
                body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
         
     | 
| 
      
 7 
     | 
    
         
            +
                div.dialog {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  width: 25em;
         
     | 
| 
      
 9 
     | 
    
         
            +
                  padding: 0 4em;
         
     | 
| 
      
 10 
     | 
    
         
            +
                  margin: 4em auto 0 auto;
         
     | 
| 
      
 11 
     | 
    
         
            +
                  border: 1px solid #ccc;
         
     | 
| 
      
 12 
     | 
    
         
            +
                  border-right-color: #999;
         
     | 
| 
      
 13 
     | 
    
         
            +
                  border-bottom-color: #999;
         
     | 
| 
      
 14 
     | 
    
         
            +
                }
         
     | 
| 
      
 15 
     | 
    
         
            +
                h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
         
     | 
| 
      
 16 
     | 
    
         
            +
              </style>
         
     | 
| 
      
 17 
     | 
    
         
            +
            </head>
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            <body>
         
     | 
| 
      
 20 
     | 
    
         
            +
              <!-- This file lives in public/500.html -->
         
     | 
| 
      
 21 
     | 
    
         
            +
              <div class="dialog">
         
     | 
| 
      
 22 
     | 
    
         
            +
                <h1>We're sorry, but something went wrong.</h1>
         
     | 
| 
      
 23 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 24 
     | 
    
         
            +
            </body>
         
     | 
| 
      
 25 
     | 
    
         
            +
            </html>
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,241 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <!DOCTYPE html>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 3 
     | 
    
         
            +
              <head>
         
     | 
| 
      
 4 
     | 
    
         
            +
                <title>Ruby on Rails: Welcome aboard</title>
         
     | 
| 
      
 5 
     | 
    
         
            +
                <style type="text/css" media="screen">
         
     | 
| 
      
 6 
     | 
    
         
            +
                  body {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 8 
     | 
    
         
            +
                    margin-bottom: 25px;
         
     | 
| 
      
 9 
     | 
    
         
            +
                    padding: 0;
         
     | 
| 
      
 10 
     | 
    
         
            +
                    background-color: #f0f0f0;
         
     | 
| 
      
 11 
     | 
    
         
            +
                    font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
         
     | 
| 
      
 12 
     | 
    
         
            +
                    font-size: 13px;
         
     | 
| 
      
 13 
     | 
    
         
            +
                    color: #333;
         
     | 
| 
      
 14 
     | 
    
         
            +
                  }
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  h1 {
         
     | 
| 
      
 17 
     | 
    
         
            +
                    font-size: 28px;
         
     | 
| 
      
 18 
     | 
    
         
            +
                    color: #000;
         
     | 
| 
      
 19 
     | 
    
         
            +
                  }
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  a  {color: #03c}
         
     | 
| 
      
 22 
     | 
    
         
            +
                  a:hover {
         
     | 
| 
      
 23 
     | 
    
         
            +
                    background-color: #03c;
         
     | 
| 
      
 24 
     | 
    
         
            +
                    color: white;
         
     | 
| 
      
 25 
     | 
    
         
            +
                    text-decoration: none;
         
     | 
| 
      
 26 
     | 
    
         
            +
                  }
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  #page {
         
     | 
| 
      
 30 
     | 
    
         
            +
                    background-color: #f0f0f0;
         
     | 
| 
      
 31 
     | 
    
         
            +
                    width: 750px;
         
     | 
| 
      
 32 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 33 
     | 
    
         
            +
                    margin-left: auto;
         
     | 
| 
      
 34 
     | 
    
         
            +
                    margin-right: auto;
         
     | 
| 
      
 35 
     | 
    
         
            +
                  }
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  #content {
         
     | 
| 
      
 38 
     | 
    
         
            +
                    float: left;
         
     | 
| 
      
 39 
     | 
    
         
            +
                    background-color: white;
         
     | 
| 
      
 40 
     | 
    
         
            +
                    border: 3px solid #aaa;
         
     | 
| 
      
 41 
     | 
    
         
            +
                    border-top: none;
         
     | 
| 
      
 42 
     | 
    
         
            +
                    padding: 25px;
         
     | 
| 
      
 43 
     | 
    
         
            +
                    width: 500px;
         
     | 
| 
      
 44 
     | 
    
         
            +
                  }
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  #sidebar {
         
     | 
| 
      
 47 
     | 
    
         
            +
                    float: right;
         
     | 
| 
      
 48 
     | 
    
         
            +
                    width: 175px;
         
     | 
| 
      
 49 
     | 
    
         
            +
                  }
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  #footer {
         
     | 
| 
      
 52 
     | 
    
         
            +
                    clear: both;
         
     | 
| 
      
 53 
     | 
    
         
            +
                  }
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                  #header, #about, #getting-started {
         
     | 
| 
      
 56 
     | 
    
         
            +
                    padding-left: 75px;
         
     | 
| 
      
 57 
     | 
    
         
            +
                    padding-right: 30px;
         
     | 
| 
      
 58 
     | 
    
         
            +
                  }
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  #header {
         
     | 
| 
      
 62 
     | 
    
         
            +
                    background-image: url("assets/rails.png");
         
     | 
| 
      
 63 
     | 
    
         
            +
                    background-repeat: no-repeat;
         
     | 
| 
      
 64 
     | 
    
         
            +
                    background-position: top left;
         
     | 
| 
      
 65 
     | 
    
         
            +
                    height: 64px;
         
     | 
| 
      
 66 
     | 
    
         
            +
                  }
         
     | 
| 
      
 67 
     | 
    
         
            +
                  #header h1, #header h2 {margin: 0}
         
     | 
| 
      
 68 
     | 
    
         
            +
                  #header h2 {
         
     | 
| 
      
 69 
     | 
    
         
            +
                    color: #888;
         
     | 
| 
      
 70 
     | 
    
         
            +
                    font-weight: normal;
         
     | 
| 
      
 71 
     | 
    
         
            +
                    font-size: 16px;
         
     | 
| 
      
 72 
     | 
    
         
            +
                  }
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                  #about h3 {
         
     | 
| 
      
 76 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 77 
     | 
    
         
            +
                    margin-bottom: 10px;
         
     | 
| 
      
 78 
     | 
    
         
            +
                    font-size: 14px;
         
     | 
| 
      
 79 
     | 
    
         
            +
                  }
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                  #about-content {
         
     | 
| 
      
 82 
     | 
    
         
            +
                    background-color: #ffd;
         
     | 
| 
      
 83 
     | 
    
         
            +
                    border: 1px solid #fc0;
         
     | 
| 
      
 84 
     | 
    
         
            +
                    margin-left: -55px;
         
     | 
| 
      
 85 
     | 
    
         
            +
                    margin-right: -10px;
         
     | 
| 
      
 86 
     | 
    
         
            +
                  }
         
     | 
| 
      
 87 
     | 
    
         
            +
                  #about-content table {
         
     | 
| 
      
 88 
     | 
    
         
            +
                    margin-top: 10px;
         
     | 
| 
      
 89 
     | 
    
         
            +
                    margin-bottom: 10px;
         
     | 
| 
      
 90 
     | 
    
         
            +
                    font-size: 11px;
         
     | 
| 
      
 91 
     | 
    
         
            +
                    border-collapse: collapse;
         
     | 
| 
      
 92 
     | 
    
         
            +
                  }
         
     | 
| 
      
 93 
     | 
    
         
            +
                  #about-content td {
         
     | 
| 
      
 94 
     | 
    
         
            +
                    padding: 10px;
         
     | 
| 
      
 95 
     | 
    
         
            +
                    padding-top: 3px;
         
     | 
| 
      
 96 
     | 
    
         
            +
                    padding-bottom: 3px;
         
     | 
| 
      
 97 
     | 
    
         
            +
                  }
         
     | 
| 
      
 98 
     | 
    
         
            +
                  #about-content td.name  {color: #555}
         
     | 
| 
      
 99 
     | 
    
         
            +
                  #about-content td.value {color: #000}
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                  #about-content ul {
         
     | 
| 
      
 102 
     | 
    
         
            +
                    padding: 0;
         
     | 
| 
      
 103 
     | 
    
         
            +
                    list-style-type: none;
         
     | 
| 
      
 104 
     | 
    
         
            +
                  }
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                  #about-content.failure {
         
     | 
| 
      
 107 
     | 
    
         
            +
                    background-color: #fcc;
         
     | 
| 
      
 108 
     | 
    
         
            +
                    border: 1px solid #f00;
         
     | 
| 
      
 109 
     | 
    
         
            +
                  }
         
     | 
| 
      
 110 
     | 
    
         
            +
                  #about-content.failure p {
         
     | 
| 
      
 111 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 112 
     | 
    
         
            +
                    padding: 10px;
         
     | 
| 
      
 113 
     | 
    
         
            +
                  }
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                  #getting-started {
         
     | 
| 
      
 117 
     | 
    
         
            +
                    border-top: 1px solid #ccc;
         
     | 
| 
      
 118 
     | 
    
         
            +
                    margin-top: 25px;
         
     | 
| 
      
 119 
     | 
    
         
            +
                    padding-top: 15px;
         
     | 
| 
      
 120 
     | 
    
         
            +
                  }
         
     | 
| 
      
 121 
     | 
    
         
            +
                  #getting-started h1 {
         
     | 
| 
      
 122 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 123 
     | 
    
         
            +
                    font-size: 20px;
         
     | 
| 
      
 124 
     | 
    
         
            +
                  }
         
     | 
| 
      
 125 
     | 
    
         
            +
                  #getting-started h2 {
         
     | 
| 
      
 126 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 127 
     | 
    
         
            +
                    font-size: 14px;
         
     | 
| 
      
 128 
     | 
    
         
            +
                    font-weight: normal;
         
     | 
| 
      
 129 
     | 
    
         
            +
                    color: #333;
         
     | 
| 
      
 130 
     | 
    
         
            +
                    margin-bottom: 25px;
         
     | 
| 
      
 131 
     | 
    
         
            +
                  }
         
     | 
| 
      
 132 
     | 
    
         
            +
                  #getting-started ol {
         
     | 
| 
      
 133 
     | 
    
         
            +
                    margin-left: 0;
         
     | 
| 
      
 134 
     | 
    
         
            +
                    padding-left: 0;
         
     | 
| 
      
 135 
     | 
    
         
            +
                  }
         
     | 
| 
      
 136 
     | 
    
         
            +
                  #getting-started li {
         
     | 
| 
      
 137 
     | 
    
         
            +
                    font-size: 18px;
         
     | 
| 
      
 138 
     | 
    
         
            +
                    color: #888;
         
     | 
| 
      
 139 
     | 
    
         
            +
                    margin-bottom: 25px;
         
     | 
| 
      
 140 
     | 
    
         
            +
                  }
         
     | 
| 
      
 141 
     | 
    
         
            +
                  #getting-started li h2 {
         
     | 
| 
      
 142 
     | 
    
         
            +
                    margin: 0;
         
     | 
| 
      
 143 
     | 
    
         
            +
                    font-weight: normal;
         
     | 
| 
      
 144 
     | 
    
         
            +
                    font-size: 18px;
         
     | 
| 
      
 145 
     | 
    
         
            +
                    color: #333;
         
     | 
| 
      
 146 
     | 
    
         
            +
                  }
         
     | 
| 
      
 147 
     | 
    
         
            +
                  #getting-started li p {
         
     | 
| 
      
 148 
     | 
    
         
            +
                    color: #555;
         
     | 
| 
      
 149 
     | 
    
         
            +
                    font-size: 13px;
         
     | 
| 
      
 150 
     | 
    
         
            +
                  }
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
                  #sidebar ul {
         
     | 
| 
      
 154 
     | 
    
         
            +
                    margin-left: 0;
         
     | 
| 
      
 155 
     | 
    
         
            +
                    padding-left: 0;
         
     | 
| 
      
 156 
     | 
    
         
            +
                  }
         
     | 
| 
      
 157 
     | 
    
         
            +
                  #sidebar ul h3 {
         
     | 
| 
      
 158 
     | 
    
         
            +
                    margin-top: 25px;
         
     | 
| 
      
 159 
     | 
    
         
            +
                    font-size: 16px;
         
     | 
| 
      
 160 
     | 
    
         
            +
                    padding-bottom: 10px;
         
     | 
| 
      
 161 
     | 
    
         
            +
                    border-bottom: 1px solid #ccc;
         
     | 
| 
      
 162 
     | 
    
         
            +
                  }
         
     | 
| 
      
 163 
     | 
    
         
            +
                  #sidebar li {
         
     | 
| 
      
 164 
     | 
    
         
            +
                    list-style-type: none;
         
     | 
| 
      
 165 
     | 
    
         
            +
                  }
         
     | 
| 
      
 166 
     | 
    
         
            +
                  #sidebar ul.links li {
         
     | 
| 
      
 167 
     | 
    
         
            +
                    margin-bottom: 5px;
         
     | 
| 
      
 168 
     | 
    
         
            +
                  }
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
                  .filename {
         
     | 
| 
      
 171 
     | 
    
         
            +
                    font-style: italic;
         
     | 
| 
      
 172 
     | 
    
         
            +
                  }
         
     | 
| 
      
 173 
     | 
    
         
            +
                </style>
         
     | 
| 
      
 174 
     | 
    
         
            +
                <script type="text/javascript">
         
     | 
| 
      
 175 
     | 
    
         
            +
                  function about() {
         
     | 
| 
      
 176 
     | 
    
         
            +
                    info = document.getElementById('about-content');
         
     | 
| 
      
 177 
     | 
    
         
            +
                    if (window.XMLHttpRequest)
         
     | 
| 
      
 178 
     | 
    
         
            +
                      { xhr = new XMLHttpRequest(); }
         
     | 
| 
      
 179 
     | 
    
         
            +
                    else
         
     | 
| 
      
 180 
     | 
    
         
            +
                      { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
         
     | 
| 
      
 181 
     | 
    
         
            +
                    xhr.open("GET","rails/info/properties",false);
         
     | 
| 
      
 182 
     | 
    
         
            +
                    xhr.send("");
         
     | 
| 
      
 183 
     | 
    
         
            +
                    info.innerHTML = xhr.responseText;
         
     | 
| 
      
 184 
     | 
    
         
            +
                    info.style.display = 'block'
         
     | 
| 
      
 185 
     | 
    
         
            +
                  }
         
     | 
| 
      
 186 
     | 
    
         
            +
                </script>
         
     | 
| 
      
 187 
     | 
    
         
            +
              </head>
         
     | 
| 
      
 188 
     | 
    
         
            +
              <body>
         
     | 
| 
      
 189 
     | 
    
         
            +
                <div id="page">
         
     | 
| 
      
 190 
     | 
    
         
            +
                  <div id="sidebar">
         
     | 
| 
      
 191 
     | 
    
         
            +
                    <ul id="sidebar-items">
         
     | 
| 
      
 192 
     | 
    
         
            +
                      <li>
         
     | 
| 
      
 193 
     | 
    
         
            +
                        <h3>Browse the documentation</h3>
         
     | 
| 
      
 194 
     | 
    
         
            +
                        <ul class="links">
         
     | 
| 
      
 195 
     | 
    
         
            +
                          <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li>
         
     | 
| 
      
 196 
     | 
    
         
            +
                          <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
         
     | 
| 
      
 197 
     | 
    
         
            +
                          <li><a href="http://www.ruby-doc.org/core/">Ruby core</a></li>
         
     | 
| 
      
 198 
     | 
    
         
            +
                          <li><a href="http://www.ruby-doc.org/stdlib/">Ruby standard library</a></li>
         
     | 
| 
      
 199 
     | 
    
         
            +
                        </ul>
         
     | 
| 
      
 200 
     | 
    
         
            +
                      </li>
         
     | 
| 
      
 201 
     | 
    
         
            +
                    </ul>
         
     | 
| 
      
 202 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
                  <div id="content">
         
     | 
| 
      
 205 
     | 
    
         
            +
                    <div id="header">
         
     | 
| 
      
 206 
     | 
    
         
            +
                      <h1>Welcome aboard</h1>
         
     | 
| 
      
 207 
     | 
    
         
            +
                      <h2>You’re riding Ruby on Rails!</h2>
         
     | 
| 
      
 208 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                    <div id="about">
         
     | 
| 
      
 211 
     | 
    
         
            +
                      <h3><a href="rails/info/properties" onclick="about(); return false">About your application’s environment</a></h3>
         
     | 
| 
      
 212 
     | 
    
         
            +
                      <div id="about-content" style="display: none"></div>
         
     | 
| 
      
 213 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 214 
     | 
    
         
            +
             
     | 
| 
      
 215 
     | 
    
         
            +
                    <div id="getting-started">
         
     | 
| 
      
 216 
     | 
    
         
            +
                      <h1>Getting started</h1>
         
     | 
| 
      
 217 
     | 
    
         
            +
                      <h2>Here’s how to get rolling:</h2>
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
                      <ol>
         
     | 
| 
      
 220 
     | 
    
         
            +
                        <li>
         
     | 
| 
      
 221 
     | 
    
         
            +
                          <h2>Use <code>rails generate</code> to create your models and controllers</h2>
         
     | 
| 
      
 222 
     | 
    
         
            +
                          <p>To see all available options, run it without parameters.</p>
         
     | 
| 
      
 223 
     | 
    
         
            +
                        </li>
         
     | 
| 
      
 224 
     | 
    
         
            +
             
     | 
| 
      
 225 
     | 
    
         
            +
                        <li>
         
     | 
| 
      
 226 
     | 
    
         
            +
                          <h2>Set up a default route and remove <span class="filename">public/index.html</span></h2>
         
     | 
| 
      
 227 
     | 
    
         
            +
                          <p>Routes are set up in <span class="filename">config/routes.rb</span>.</p>
         
     | 
| 
      
 228 
     | 
    
         
            +
                        </li>
         
     | 
| 
      
 229 
     | 
    
         
            +
             
     | 
| 
      
 230 
     | 
    
         
            +
                        <li>
         
     | 
| 
      
 231 
     | 
    
         
            +
                          <h2>Create your database</h2>
         
     | 
| 
      
 232 
     | 
    
         
            +
                          <p>Run <code>rake db:create</code> to create your database. If you're not using SQLite (the default), edit <span class="filename">config/database.yml</span> with your username and password.</p>
         
     | 
| 
      
 233 
     | 
    
         
            +
                        </li>
         
     | 
| 
      
 234 
     | 
    
         
            +
                      </ol>
         
     | 
| 
      
 235 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 236 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
      
 238 
     | 
    
         
            +
                  <div id="footer"> </div>
         
     | 
| 
      
 239 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 240 
     | 
    
         
            +
              </body>
         
     | 
| 
      
 241 
     | 
    
         
            +
            </html>
         
     | 
| 
         @@ -0,0 +1,6 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            APP_PATH = File.expand_path('../../config/application',  __FILE__)
         
     | 
| 
      
 5 
     | 
    
         
            +
            require File.expand_path('../../config/boot',  __FILE__)
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'rails/commands'
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rails/performance_test_help'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            class BrowsingTest < ActionDispatch::PerformanceTest
         
     | 
| 
      
 5 
     | 
    
         
            +
              # Refer to the documentation for all available options
         
     | 
| 
      
 6 
     | 
    
         
            +
              # self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory]
         
     | 
| 
      
 7 
     | 
    
         
            +
              #                          :output => 'tmp/performance', :formats => [:flat] }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              def test_homepage
         
     | 
| 
      
 10 
     | 
    
         
            +
                get '/'
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ENV["RAILS_ENV"] = "test"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path('../../config/environment', __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rails/test_help'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            class ActiveSupport::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
         
     | 
| 
      
 7 
     | 
    
         
            +
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              # Note: You'll currently still have to declare fixtures explicitly in integration tests
         
     | 
| 
      
 9 
     | 
    
         
            +
              # -- they do not yet inherit this setting
         
     | 
| 
      
 10 
     | 
    
         
            +
              fixtures :all
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              # Add more helper methods to be used by all tests here...
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,408 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*!
         
     | 
| 
      
 2 
     | 
    
         
            +
             * jQuery Stepy - A Wizard Plugin
         
     | 
| 
      
 3 
     | 
    
         
            +
             * --------------------------------------------------------------
         
     | 
| 
      
 4 
     | 
    
         
            +
             *
         
     | 
| 
      
 5 
     | 
    
         
            +
             * jQuery Stepy is a plugin that generates a customizable wizard.
         
     | 
| 
      
 6 
     | 
    
         
            +
             *
         
     | 
| 
      
 7 
     | 
    
         
            +
             * Licensed under The MIT License
         
     | 
| 
      
 8 
     | 
    
         
            +
             *
         
     | 
| 
      
 9 
     | 
    
         
            +
             * @version        1.1.0
         
     | 
| 
      
 10 
     | 
    
         
            +
             * @since          2010-07-03
         
     | 
| 
      
 11 
     | 
    
         
            +
             * @author         Washington Botelho
         
     | 
| 
      
 12 
     | 
    
         
            +
             * @documentation  wbotelhos.com/stepy
         
     | 
| 
      
 13 
     | 
    
         
            +
             *
         
     | 
| 
      
 14 
     | 
    
         
            +
             * --------------------------------------------------------------
         
     | 
| 
      
 15 
     | 
    
         
            +
             *
         
     | 
| 
      
 16 
     | 
    
         
            +
             *  <form>
         
     | 
| 
      
 17 
     | 
    
         
            +
             *    <fieldset title="Step 1">
         
     | 
| 
      
 18 
     | 
    
         
            +
             *      <legend>description one</legend>
         
     | 
| 
      
 19 
     | 
    
         
            +
             *      <!-- inputs -->
         
     | 
| 
      
 20 
     | 
    
         
            +
             *    </fieldset>
         
     | 
| 
      
 21 
     | 
    
         
            +
             *
         
     | 
| 
      
 22 
     | 
    
         
            +
             *    <fieldset title="Step 2">
         
     | 
| 
      
 23 
     | 
    
         
            +
             *      <legend>description two</legend>
         
     | 
| 
      
 24 
     | 
    
         
            +
             *      <!-- inputs -->
         
     | 
| 
      
 25 
     | 
    
         
            +
             *    </fieldset>
         
     | 
| 
      
 26 
     | 
    
         
            +
             *
         
     | 
| 
      
 27 
     | 
    
         
            +
             *    <input type="submit" />
         
     | 
| 
      
 28 
     | 
    
         
            +
             *  </form>
         
     | 
| 
      
 29 
     | 
    
         
            +
             *
         
     | 
| 
      
 30 
     | 
    
         
            +
             *  $('form').stepy();
         
     | 
| 
      
 31 
     | 
    
         
            +
             *
         
     | 
| 
      
 32 
     | 
    
         
            +
             */
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            ;(function($) {
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              var methods = {
         
     | 
| 
      
 37 
     | 
    
         
            +
                init: function(settings) {
         
     | 
| 
      
 38 
     | 
    
         
            +
                  return this.each(function() {
         
     | 
| 
      
 39 
     | 
    
         
            +
                    methods.destroy.call(this);
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                    this.opt = $.extend({}, $.fn.stepy.defaults, settings);
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                    var self = this,
         
     | 
| 
      
 44 
     | 
    
         
            +
                        that = $(this),
         
     | 
| 
      
 45 
     | 
    
         
            +
                        id   = that.attr('id');
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                    if (id === undefined || id === '') {
         
     | 
| 
      
 48 
     | 
    
         
            +
                      var id = methods._hash.call(self);
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                      that.attr('id', id);
         
     | 
| 
      
 51 
     | 
    
         
            +
                    }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                    if (self.opt.validate) {
         
     | 
| 
      
 54 
     | 
    
         
            +
                      jQuery.validator.setDefaults({ ignore: self.opt.ignore });
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                      that.append('<div class="stepy-errors" />');
         
     | 
| 
      
 57 
     | 
    
         
            +
                    }
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                    self.header = methods._header.call(self);
         
     | 
| 
      
 60 
     | 
    
         
            +
                    self.steps  = that.children('fieldset');
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    self.steps.each(function(index) {
         
     | 
| 
      
 63 
     | 
    
         
            +
                      methods._createHead.call(self, this, index);
         
     | 
| 
      
 64 
     | 
    
         
            +
                      methods._createButtons.call(self, this, index);
         
     | 
| 
      
 65 
     | 
    
         
            +
                    });
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    self.heads = self.header.children('li');
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                    self.heads.first().addClass('stepy-active');
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                    if (self.opt.finishButton) {
         
     | 
| 
      
 72 
     | 
    
         
            +
                      methods._bindFinish.call(self);
         
     | 
| 
      
 73 
     | 
    
         
            +
                    }
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                        if (self.opt.titleClick) {
         
     | 
| 
      
 76 
     | 
    
         
            +
                          self.heads.click(function() {
         
     | 
| 
      
 77 
     | 
    
         
            +
                            var  array  = self.heads.filter('.stepy-active').attr('id').split('-'), // TODO: try keep the number in an attribute.
         
     | 
| 
      
 78 
     | 
    
         
            +
                              current  = parseInt(array[array.length - 1], 10),
         
     | 
| 
      
 79 
     | 
    
         
            +
                              clicked  = $(this).index();
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                            if (clicked > current) {
         
     | 
| 
      
 82 
     | 
    
         
            +
                          if (self.opt.next && !methods._execute.call(that, self.opt.next, clicked)) {
         
     | 
| 
      
 83 
     | 
    
         
            +
                            return false;
         
     | 
| 
      
 84 
     | 
    
         
            +
                          }
         
     | 
| 
      
 85 
     | 
    
         
            +
                        } else if (clicked < current) {
         
     | 
| 
      
 86 
     | 
    
         
            +
                          if (self.opt.back && !methods._execute.call(that, self.opt.back, clicked)) {
         
     | 
| 
      
 87 
     | 
    
         
            +
                            return false;
         
     | 
| 
      
 88 
     | 
    
         
            +
                          }
         
     | 
| 
      
 89 
     | 
    
         
            +
                        }
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                        if (clicked != current) {
         
     | 
| 
      
 92 
     | 
    
         
            +
                          methods.step.call(self, (clicked) + 1);
         
     | 
| 
      
 93 
     | 
    
         
            +
                        }
         
     | 
| 
      
 94 
     | 
    
         
            +
                          });
         
     | 
| 
      
 95 
     | 
    
         
            +
                      } else {
         
     | 
| 
      
 96 
     | 
    
         
            +
                        self.heads.css('cursor', 'default');
         
     | 
| 
      
 97 
     | 
    
         
            +
                      }
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                      if (self.opt.enter) {
         
     | 
| 
      
 100 
     | 
    
         
            +
                        methods._bindEnter.call(self);
         
     | 
| 
      
 101 
     | 
    
         
            +
                      }
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
                      self.steps.first().find(':input:visible:enabled').first().select().focus();
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                    that.data({ 'settings': this.opt, 'stepy': true });
         
     | 
| 
      
 106 
     | 
    
         
            +
                  });
         
     | 
| 
      
 107 
     | 
    
         
            +
                }, _bindEnter: function() {
         
     | 
| 
      
 108 
     | 
    
         
            +
                  var self = this;
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
                  self.steps.delegate('input[type="text"], input[type="password"]', 'keypress', function(evt) {
         
     | 
| 
      
 111 
     | 
    
         
            +
                    var key = (evt.keyCode ? evt.keyCode : evt.which);
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                    if (key == 13) {
         
     | 
| 
      
 114 
     | 
    
         
            +
                      evt.preventDefault();
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                      var buttons = $(this).closest('fieldset').find('.stepy-navigator');
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                      if (buttons.length) {
         
     | 
| 
      
 119 
     | 
    
         
            +
                        var next = buttons.children('.button-next');
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                        if (next.length) {
         
     | 
| 
      
 122 
     | 
    
         
            +
                          next.click();
         
     | 
| 
      
 123 
     | 
    
         
            +
                        } else if (self.finish) {
         
     | 
| 
      
 124 
     | 
    
         
            +
                          self.finish.click();
         
     | 
| 
      
 125 
     | 
    
         
            +
                        }
         
     | 
| 
      
 126 
     | 
    
         
            +
                      }
         
     | 
| 
      
 127 
     | 
    
         
            +
                    }
         
     | 
| 
      
 128 
     | 
    
         
            +
                  });
         
     | 
| 
      
 129 
     | 
    
         
            +
                }, _bindFinish: function() {
         
     | 
| 
      
 130 
     | 
    
         
            +
                  var self   = this,
         
     | 
| 
      
 131 
     | 
    
         
            +
                      that   = $(this),
         
     | 
| 
      
 132 
     | 
    
         
            +
                      finish = that.children('input[type="submit"]');
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                  self.finish = (finish.length === 1) ? finish : that.children('.stepy-finish');
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
                  if (self.finish.length) {
         
     | 
| 
      
 137 
     | 
    
         
            +
                    var isForm   = that.is('form'),
         
     | 
| 
      
 138 
     | 
    
         
            +
                        onSubmit = undefined;
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
                    if (isForm && self.opt.finish) {
         
     | 
| 
      
 141 
     | 
    
         
            +
                      onSubmit = that.attr('onsubmit');
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                      that.attr('onsubmit', 'return false;');
         
     | 
| 
      
 144 
     | 
    
         
            +
                    }
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                    self.finish.on('click.stepy', function(evt) {
         
     | 
| 
      
 147 
     | 
    
         
            +
                      if (self.opt.finish && !methods._execute.call(that, self.opt.finish, self.steps.length - 1)) {
         
     | 
| 
      
 148 
     | 
    
         
            +
                       evt.preventDefault();
         
     | 
| 
      
 149 
     | 
    
         
            +
                      } else if (isForm) {
         
     | 
| 
      
 150 
     | 
    
         
            +
                        if (onSubmit) {
         
     | 
| 
      
 151 
     | 
    
         
            +
                          that.attr('onsubmit', onSubmit);
         
     | 
| 
      
 152 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 153 
     | 
    
         
            +
                          that.removeAttr('onsubmit');
         
     | 
| 
      
 154 
     | 
    
         
            +
                        }
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
                        var isSubmit = self.finish.attr('type') === 'submit';
         
     | 
| 
      
 157 
     | 
    
         
            +
             
     | 
| 
      
 158 
     | 
    
         
            +
                        if (!isSubmit && (!self.opt.validate || methods.validate.call(that, self.steps.length - 1))) {
         
     | 
| 
      
 159 
     | 
    
         
            +
                          that.submit();
         
     | 
| 
      
 160 
     | 
    
         
            +
                        }
         
     | 
| 
      
 161 
     | 
    
         
            +
                      }
         
     | 
| 
      
 162 
     | 
    
         
            +
                    });
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
                    self.steps.last().children('.stepy-navigator').append(self.finish);
         
     | 
| 
      
 165 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 166 
     | 
    
         
            +
                    $.error('Submit button or element with class "stepy-finish" missing!');
         
     | 
| 
      
 167 
     | 
    
         
            +
                  }
         
     | 
| 
      
 168 
     | 
    
         
            +
                }, _createBackButton: function(nav, index) {
         
     | 
| 
      
 169 
     | 
    
         
            +
                  var self       = this,
         
     | 
| 
      
 170 
     | 
    
         
            +
                      that       = $(this),
         
     | 
| 
      
 171 
     | 
    
         
            +
                      attributes = { href: 'javascript:void(0);', 'class': 'button-back', html: self.opt.backLabel };
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
                  $('<a />', attributes).on('click.stepy', function() {
         
     | 
| 
      
 174 
     | 
    
         
            +
                    if (!self.opt.back || methods._execute.call(self, self.opt.back, index - 1)) {
         
     | 
| 
      
 175 
     | 
    
         
            +
                      methods.step.call(self, (index - 1) + 1);
         
     | 
| 
      
 176 
     | 
    
         
            +
                    }
         
     | 
| 
      
 177 
     | 
    
         
            +
                  }).appendTo(nav);
         
     | 
| 
      
 178 
     | 
    
         
            +
                }, _createButtons: function(step, index) {
         
     | 
| 
      
 179 
     | 
    
         
            +
                  var nav = methods._navigator.call(this).appendTo(step);
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
                  if (index === 0) {
         
     | 
| 
      
 182 
     | 
    
         
            +
                    if (this.steps.length > 1) {
         
     | 
| 
      
 183 
     | 
    
         
            +
                      methods._createNextButton.call(this, nav, index);
         
     | 
| 
      
 184 
     | 
    
         
            +
                    }
         
     | 
| 
      
 185 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 186 
     | 
    
         
            +
                    $(step).hide();
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
                    methods._createBackButton.call(this, nav, index);
         
     | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
      
 190 
     | 
    
         
            +
                    if (index < this.steps.length - 1) {
         
     | 
| 
      
 191 
     | 
    
         
            +
                      methods._createNextButton.call(this, nav, index);
         
     | 
| 
      
 192 
     | 
    
         
            +
                    }
         
     | 
| 
      
 193 
     | 
    
         
            +
                  }
         
     | 
| 
      
 194 
     | 
    
         
            +
                }, _createHead: function(step, index) {
         
     | 
| 
      
 195 
     | 
    
         
            +
                  var step = $(step).attr('id', $(this).attr('id') + '-step-' + index).addClass('stepy-step'),
         
     | 
| 
      
 196 
     | 
    
         
            +
                      head = methods._head.call(this, index);
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
                  head.append(methods._title.call(this, step));
         
     | 
| 
      
 199 
     | 
    
         
            +
             
     | 
| 
      
 200 
     | 
    
         
            +
                  if (this.opt.description) {
         
     | 
| 
      
 201 
     | 
    
         
            +
                    head.append(methods._description.call(this, step));
         
     | 
| 
      
 202 
     | 
    
         
            +
                  }
         
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
                  this.header.append(head);
         
     | 
| 
      
 205 
     | 
    
         
            +
                }, _createNextButton: function(nav, index) {
         
     | 
| 
      
 206 
     | 
    
         
            +
                  var self       = this,
         
     | 
| 
      
 207 
     | 
    
         
            +
                      that       = $(this),
         
     | 
| 
      
 208 
     | 
    
         
            +
                      attributes = { href: 'javascript:void(0);', 'class': 'button-next', html: self.opt.nextLabel };
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                  $('<a/>', attributes).on('click.stepy', function() {
         
     | 
| 
      
 211 
     | 
    
         
            +
                    if (!self.opt.next || methods._execute.call(that, self.opt.next, index + 1)) {
         
     | 
| 
      
 212 
     | 
    
         
            +
                      methods.step.call(self, (index + 1) + 1);
         
     | 
| 
      
 213 
     | 
    
         
            +
                    }
         
     | 
| 
      
 214 
     | 
    
         
            +
                  }).appendTo(nav);
         
     | 
| 
      
 215 
     | 
    
         
            +
                }, _description: function(step) {
         
     | 
| 
      
 216 
     | 
    
         
            +
                  var legend = step.children('legend');
         
     | 
| 
      
 217 
     | 
    
         
            +
             
     | 
| 
      
 218 
     | 
    
         
            +
                  if (!this.opt.legend) {
         
     | 
| 
      
 219 
     | 
    
         
            +
                    legend.hide();
         
     | 
| 
      
 220 
     | 
    
         
            +
                  }
         
     | 
| 
      
 221 
     | 
    
         
            +
             
     | 
| 
      
 222 
     | 
    
         
            +
                  if (legend.length) {
         
     | 
| 
      
 223 
     | 
    
         
            +
                    return $('<span />', { html: legend.html() });
         
     | 
| 
      
 224 
     | 
    
         
            +
                  }
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
                  methods._error.call(this, '<legend /> element missing!');
         
     | 
| 
      
 227 
     | 
    
         
            +
                }, _error: function(message) {
         
     | 
| 
      
 228 
     | 
    
         
            +
                  $(this).html(message);
         
     | 
| 
      
 229 
     | 
    
         
            +
             
     | 
| 
      
 230 
     | 
    
         
            +
                  $.error(message);
         
     | 
| 
      
 231 
     | 
    
         
            +
                }, _execute: function(callback, index) {
         
     | 
| 
      
 232 
     | 
    
         
            +
                  var isValid = callback.call(this, index + 1);
         
     | 
| 
      
 233 
     | 
    
         
            +
             
     | 
| 
      
 234 
     | 
    
         
            +
                  return isValid || isValid === undefined;
         
     | 
| 
      
 235 
     | 
    
         
            +
                }, _hash: function() {
         
     | 
| 
      
 236 
     | 
    
         
            +
                  this.hash = 'stepy-' + Math.random().toString().substring(2)
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
      
 238 
     | 
    
         
            +
                  return this.hash;
         
     | 
| 
      
 239 
     | 
    
         
            +
                }, _head: function(index) {
         
     | 
| 
      
 240 
     | 
    
         
            +
                  return $('<li />', { id: $(this).attr('id') + '-head-' + index });
         
     | 
| 
      
 241 
     | 
    
         
            +
                }, _header: function() {
         
     | 
| 
      
 242 
     | 
    
         
            +
                  var header = $('<ul />', { id: $(this).attr('id') + '-header', 'class': 'stepy-header' });
         
     | 
| 
      
 243 
     | 
    
         
            +
             
     | 
| 
      
 244 
     | 
    
         
            +
                  if (this.opt.titleTarget) {
         
     | 
| 
      
 245 
     | 
    
         
            +
                    header.appendTo(this.opt.titleTarget);
         
     | 
| 
      
 246 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 247 
     | 
    
         
            +
                    header.insertBefore(this);
         
     | 
| 
      
 248 
     | 
    
         
            +
                  }
         
     | 
| 
      
 249 
     | 
    
         
            +
             
     | 
| 
      
 250 
     | 
    
         
            +
                  return header;
         
     | 
| 
      
 251 
     | 
    
         
            +
                }, _navigator: function(index) {
         
     | 
| 
      
 252 
     | 
    
         
            +
                  return $('<p class="stepy-navigator" />');
         
     | 
| 
      
 253 
     | 
    
         
            +
                }, _title: function(step) {
         
     | 
| 
      
 254 
     | 
    
         
            +
                  return $('<div />', { html: step.attr('title') || '--' });
         
     | 
| 
      
 255 
     | 
    
         
            +
                }, destroy: function() {
         
     | 
| 
      
 256 
     | 
    
         
            +
                  return $(this).each(function() {
         
     | 
| 
      
 257 
     | 
    
         
            +
                    var that = $(this);
         
     | 
| 
      
 258 
     | 
    
         
            +
             
     | 
| 
      
 259 
     | 
    
         
            +
                    if (that.data('stepy')) {
         
     | 
| 
      
 260 
     | 
    
         
            +
                      var steps = that.data('stepy', false).children('fieldset').css('display', '');
         
     | 
| 
      
 261 
     | 
    
         
            +
             
     | 
| 
      
 262 
     | 
    
         
            +
                      that.children('.stepy-errors').remove();
         
     | 
| 
      
 263 
     | 
    
         
            +
                      this.finish.appendTo(steps.last());
         
     | 
| 
      
 264 
     | 
    
         
            +
                      steps.find('p.stepy-navigator').remove();
         
     | 
| 
      
 265 
     | 
    
         
            +
                    }
         
     | 
| 
      
 266 
     | 
    
         
            +
                  });
         
     | 
| 
      
 267 
     | 
    
         
            +
                }, step: function(index) {
         
     | 
| 
      
 268 
     | 
    
         
            +
                  var self = this
         
     | 
| 
      
 269 
     | 
    
         
            +
                      that = $(this),
         
     | 
| 
      
 270 
     | 
    
         
            +
                      opt  = that[0].opt;
         
     | 
| 
      
 271 
     | 
    
         
            +
             
     | 
| 
      
 272 
     | 
    
         
            +
                  index--;
         
     | 
| 
      
 273 
     | 
    
         
            +
             
     | 
| 
      
 274 
     | 
    
         
            +
                  var steps = that.children('fieldset');
         
     | 
| 
      
 275 
     | 
    
         
            +
             
     | 
| 
      
 276 
     | 
    
         
            +
                  if (index > steps.length - 1) {
         
     | 
| 
      
 277 
     | 
    
         
            +
                    index = steps.length - 1;
         
     | 
| 
      
 278 
     | 
    
         
            +
                  }
         
     | 
| 
      
 279 
     | 
    
         
            +
             
     | 
| 
      
 280 
     | 
    
         
            +
                  var max = index;
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
      
 282 
     | 
    
         
            +
                  if (opt.validate) {
         
     | 
| 
      
 283 
     | 
    
         
            +
                    var isValid = true;
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
                    for (var i = 0; i < index; i++) {
         
     | 
| 
      
 286 
     | 
    
         
            +
                      isValid &= methods.validate.call(this, i);
         
     | 
| 
      
 287 
     | 
    
         
            +
             
     | 
| 
      
 288 
     | 
    
         
            +
                      if (opt.block && !isValid) {
         
     | 
| 
      
 289 
     | 
    
         
            +
                        max = i;
         
     | 
| 
      
 290 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 291 
     | 
    
         
            +
                      }
         
     | 
| 
      
 292 
     | 
    
         
            +
                    }
         
     | 
| 
      
 293 
     | 
    
         
            +
                  }
         
     | 
| 
      
 294 
     | 
    
         
            +
             
     | 
| 
      
 295 
     | 
    
         
            +
                    if (opt.transition == 'fade') {
         
     | 
| 
      
 296 
     | 
    
         
            +
                      var stepsCount = steps.length;
         
     | 
| 
      
 297 
     | 
    
         
            +
             
     | 
| 
      
 298 
     | 
    
         
            +
                      steps.fadeOut(opt.duration, function(){
         
     | 
| 
      
 299 
     | 
    
         
            +
                        if (--stepsCount > 0) {
         
     | 
| 
      
 300 
     | 
    
         
            +
                          return;
         
     | 
| 
      
 301 
     | 
    
         
            +
                        }
         
     | 
| 
      
 302 
     | 
    
         
            +
             
     | 
| 
      
 303 
     | 
    
         
            +
                        steps.eq(max).fadeIn(opt.duration);
         
     | 
| 
      
 304 
     | 
    
         
            +
                      });
         
     | 
| 
      
 305 
     | 
    
         
            +
                    } else if (opt.transition == 'slide') {
         
     | 
| 
      
 306 
     | 
    
         
            +
                      var stepsCount = steps.length;
         
     | 
| 
      
 307 
     | 
    
         
            +
             
     | 
| 
      
 308 
     | 
    
         
            +
                      steps.slideUp(opt.duration, function(){
         
     | 
| 
      
 309 
     | 
    
         
            +
                        if (--stepsCount > 0) {
         
     | 
| 
      
 310 
     | 
    
         
            +
                          return;
         
     | 
| 
      
 311 
     | 
    
         
            +
                        }
         
     | 
| 
      
 312 
     | 
    
         
            +
             
     | 
| 
      
 313 
     | 
    
         
            +
                        steps.eq(max).slideDown(opt.duration);
         
     | 
| 
      
 314 
     | 
    
         
            +
                      });
         
     | 
| 
      
 315 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 316 
     | 
    
         
            +
                      steps.hide(opt.duration).eq(max).show(opt.duration);
         
     | 
| 
      
 317 
     | 
    
         
            +
                    }
         
     | 
| 
      
 318 
     | 
    
         
            +
             
     | 
| 
      
 319 
     | 
    
         
            +
                  that[0].heads.removeClass('stepy-active').eq(max).addClass('stepy-active');
         
     | 
| 
      
 320 
     | 
    
         
            +
             
     | 
| 
      
 321 
     | 
    
         
            +
                  if (that.is('form')) {
         
     | 
| 
      
 322 
     | 
    
         
            +
                    var $fields = undefined;
         
     | 
| 
      
 323 
     | 
    
         
            +
             
     | 
| 
      
 324 
     | 
    
         
            +
                        if (max == index) {
         
     | 
| 
      
 325 
     | 
    
         
            +
                          $fields = steps.eq(max).find(':input:enabled:visible');
         
     | 
| 
      
 326 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 327 
     | 
    
         
            +
                          $fields = steps.eq(max).find('.error').select().focus();
         
     | 
| 
      
 328 
     | 
    
         
            +
                        }
         
     | 
| 
      
 329 
     | 
    
         
            +
             
     | 
| 
      
 330 
     | 
    
         
            +
                        $fields.first().select().focus();
         
     | 
| 
      
 331 
     | 
    
         
            +
                      }
         
     | 
| 
      
 332 
     | 
    
         
            +
             
     | 
| 
      
 333 
     | 
    
         
            +
                      if (opt.select) {
         
     | 
| 
      
 334 
     | 
    
         
            +
                    opt.select.call(this, max + 1);
         
     | 
| 
      
 335 
     | 
    
         
            +
                  }
         
     | 
| 
      
 336 
     | 
    
         
            +
             
     | 
| 
      
 337 
     | 
    
         
            +
                      return that;
         
     | 
| 
      
 338 
     | 
    
         
            +
                }, validate: function(index) {
         
     | 
| 
      
 339 
     | 
    
         
            +
                  var that = $(this);
         
     | 
| 
      
 340 
     | 
    
         
            +
             
     | 
| 
      
 341 
     | 
    
         
            +
                  if (!that.is('form')) {
         
     | 
| 
      
 342 
     | 
    
         
            +
                    return true;
         
     | 
| 
      
 343 
     | 
    
         
            +
                  }
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                  var self = this,
         
     | 
| 
      
 346 
     | 
    
         
            +
                    step    = that.children('fieldset').eq(index),
         
     | 
| 
      
 347 
     | 
    
         
            +
                    isValid    = true,
         
     | 
| 
      
 348 
     | 
    
         
            +
                    $title    = $('#' + that.attr('id') + '-header').children().eq(index),
         
     | 
| 
      
 349 
     | 
    
         
            +
                    $validate  = that.validate();
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
      
 351 
     | 
    
         
            +
                  $(step.find(':input:enabled').get().reverse()).each(function() {
         
     | 
| 
      
 352 
     | 
    
         
            +
                    var fieldIsValid = $validate.element($(this));
         
     | 
| 
      
 353 
     | 
    
         
            +
             
     | 
| 
      
 354 
     | 
    
         
            +
                    if (fieldIsValid === undefined) {
         
     | 
| 
      
 355 
     | 
    
         
            +
                      fieldIsValid = true;
         
     | 
| 
      
 356 
     | 
    
         
            +
                    }
         
     | 
| 
      
 357 
     | 
    
         
            +
             
     | 
| 
      
 358 
     | 
    
         
            +
                    isValid &= fieldIsValid;
         
     | 
| 
      
 359 
     | 
    
         
            +
             
     | 
| 
      
 360 
     | 
    
         
            +
                    if (isValid) {
         
     | 
| 
      
 361 
     | 
    
         
            +
                      if (self.opt.errorImage) {
         
     | 
| 
      
 362 
     | 
    
         
            +
                        $title.removeClass('stepy-error');
         
     | 
| 
      
 363 
     | 
    
         
            +
                      }
         
     | 
| 
      
 364 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 365 
     | 
    
         
            +
                      if (self.opt.errorImage) {
         
     | 
| 
      
 366 
     | 
    
         
            +
                        $title.addClass('stepy-error');
         
     | 
| 
      
 367 
     | 
    
         
            +
                      }
         
     | 
| 
      
 368 
     | 
    
         
            +
             
     | 
| 
      
 369 
     | 
    
         
            +
                      $validate.focusInvalid();
         
     | 
| 
      
 370 
     | 
    
         
            +
                    }
         
     | 
| 
      
 371 
     | 
    
         
            +
                  });
         
     | 
| 
      
 372 
     | 
    
         
            +
             
     | 
| 
      
 373 
     | 
    
         
            +
                  return isValid;
         
     | 
| 
      
 374 
     | 
    
         
            +
                }
         
     | 
| 
      
 375 
     | 
    
         
            +
              };
         
     | 
| 
      
 376 
     | 
    
         
            +
             
     | 
| 
      
 377 
     | 
    
         
            +
              $.fn.stepy = function(method) {
         
     | 
| 
      
 378 
     | 
    
         
            +
                if (methods[method]) {
         
     | 
| 
      
 379 
     | 
    
         
            +
                  return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
         
     | 
| 
      
 380 
     | 
    
         
            +
                } else if (typeof method === 'object' || !method) {
         
     | 
| 
      
 381 
     | 
    
         
            +
                  return methods.init.apply(this, arguments);
         
     | 
| 
      
 382 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 383 
     | 
    
         
            +
                  $.error('Method ' + method + ' does not exist!');
         
     | 
| 
      
 384 
     | 
    
         
            +
                }
         
     | 
| 
      
 385 
     | 
    
         
            +
              };
         
     | 
| 
      
 386 
     | 
    
         
            +
             
     | 
| 
      
 387 
     | 
    
         
            +
              $.fn.stepy.defaults = {
         
     | 
| 
      
 388 
     | 
    
         
            +
                  back         : undefined,
         
     | 
| 
      
 389 
     | 
    
         
            +
                  backLabel    : '< Back',
         
     | 
| 
      
 390 
     | 
    
         
            +
                block        : false,
         
     | 
| 
      
 391 
     | 
    
         
            +
                  description  : true,
         
     | 
| 
      
 392 
     | 
    
         
            +
                duration     : 0,
         
     | 
| 
      
 393 
     | 
    
         
            +
                  enter        : true,
         
     | 
| 
      
 394 
     | 
    
         
            +
                errorImage   : false,
         
     | 
| 
      
 395 
     | 
    
         
            +
                finish       : undefined,
         
     | 
| 
      
 396 
     | 
    
         
            +
                finishButton : true,
         
     | 
| 
      
 397 
     | 
    
         
            +
                ignore       : '',
         
     | 
| 
      
 398 
     | 
    
         
            +
                legend       : true,
         
     | 
| 
      
 399 
     | 
    
         
            +
                next         : undefined,
         
     | 
| 
      
 400 
     | 
    
         
            +
                nextLabel    : 'Next >',
         
     | 
| 
      
 401 
     | 
    
         
            +
                select       : undefined,
         
     | 
| 
      
 402 
     | 
    
         
            +
                titleClick   : false,
         
     | 
| 
      
 403 
     | 
    
         
            +
                titleTarget  : undefined,
         
     | 
| 
      
 404 
     | 
    
         
            +
                transition   : 'hide',
         
     | 
| 
      
 405 
     | 
    
         
            +
                validate     : false
         
     | 
| 
      
 406 
     | 
    
         
            +
              };
         
     | 
| 
      
 407 
     | 
    
         
            +
             
     | 
| 
      
 408 
     | 
    
         
            +
            })(jQuery);
         
     |