From df2990ad8aa6da5db35aed162cc15bac6376a529 Mon Sep 17 00:00:00 2001 From: BenjaminRichter Date: Sat, 23 Jun 2012 22:33:39 +0200 Subject: [PATCH] init --- .gitattributes | 22 ++ .gitignore | 15 + .project | 24 ++ .settings/org.eclipse.core.resources.prefs | 2 + Gemfile | 41 +++ Gemfile.lock | 113 ++++++++ README.rdoc | 261 ++++++++++++++++++ Rakefile | 7 + app/assets/javascripts/application.js | 15 + app/assets/javascripts/event_calendar.js | 37 +++ app/assets/stylesheets/application.css | 13 + app/assets/stylesheets/event_calendar.css | 237 ++++++++++++++++ app/assets/stylesheets/scaffolds.css.scss.bak | 0 app/assets/stylesheets/style.css.scss | 85 ++++++ app/controllers/application_controller.rb | 3 + app/controllers/calendar_controller.rb | 13 + app/controllers/categories_controller.rb | 83 ++++++ .../event_categories_controller.rb | 83 ++++++ app/controllers/event_helpers_controller.rb | 83 ++++++ app/controllers/event_orgas_controller.rb | 83 ++++++ app/controllers/events_controller.rb | 93 +++++++ app/controllers/users_controller.rb | 83 ++++++ app/helpers/application_helper.rb | 2 + app/helpers/calendar_helper.rb | 40 +++ app/helpers/categories_helper.rb | 2 + app/helpers/categroys_helper.rb | 2 + app/helpers/event_categories_helper.rb | 2 + app/helpers/event_helpers_helper.rb | 2 + app/helpers/event_orgas_helper.rb | 2 + app/helpers/events_helper.rb | 46 +++ app/helpers/users_helper.rb | 2 + app/mailers/.gitkeep | 0 app/models/.gitkeep | 0 app/models/category.rb | 6 + app/models/event.rb | 7 + app/models/event_category.rb | 5 + app/models/event_helper.rb | 6 + app/models/event_orga.rb | 6 + app/models/user.rb | 5 + app/views/calendar/index.html.erb | 5 + app/views/categories/_form.html.erb | 25 ++ app/views/categories/edit.html.erb | 6 + app/views/categories/index.html.erb | 25 ++ app/views/categories/new.html.erb | 5 + app/views/categories/show.html.erb | 15 + app/views/event_categories/_form.html.erb | 29 ++ app/views/event_categories/edit.html.erb | 6 + app/views/event_categories/index.html.erb | 27 ++ app/views/event_categories/new.html.erb | 5 + app/views/event_categories/show.html.erb | 20 ++ app/views/event_helpers/_form.html.erb | 29 ++ app/views/event_helpers/edit.html.erb | 6 + app/views/event_helpers/index.html.erb | 27 ++ app/views/event_helpers/new.html.erb | 5 + app/views/event_helpers/show.html.erb | 20 ++ app/views/event_orgas/_form.html.erb | 29 ++ app/views/event_orgas/edit.html.erb | 6 + app/views/event_orgas/index.html.erb | 27 ++ app/views/event_orgas/new.html.erb | 5 + app/views/event_orgas/show.html.erb | 20 ++ app/views/events/_form.html.erb | 41 +++ app/views/events/_list.html.erb | 6 + app/views/events/edit.html.erb | 6 + app/views/events/index.html.erb | 10 + app/views/events/new.html.erb | 5 + app/views/events/show.html.erb | 24 ++ app/views/layouts/application.html.erb | 18 ++ app/views/shared/_menu.html.erb | 15 + app/views/users/_form.html.erb | 37 +++ app/views/users/edit.html.erb | 6 + app/views/users/index.html.erb | 31 +++ app/views/users/new.html.erb | 5 + app/views/users/show.html.erb | 30 ++ config.ru | 4 + config/application.rb | 62 +++++ config/boot.rb | 6 + config/database.yml | 25 ++ config/environment.rb | 5 + config/environments/development.rb | 37 +++ config/environments/production.rb | 67 +++++ config/environments/test.rb | 37 +++ config/initializers/backtrace_silencers.rb | 7 + config/initializers/inflections.rb | 15 + config/initializers/mime_types.rb | 5 + config/initializers/secret_token.rb | 7 + config/initializers/session_store.rb | 8 + config/initializers/wrap_parameters.rb | 14 + config/locales/de.yml | 160 +++++++++++ config/locales/en.yml | 5 + config/routes.rb | 76 +++++ db/migrate/20120621113156_create_users.rb | 13 + .../20120621113817_create_event_orgas.rb | 14 + .../20120621113929_create_event_helpers.rb | 14 + .../20120621114234_create_event_categories.rb | 13 + db/migrate/20120621120104_create_events.rb | 14 + .../20120621150105_create_categories.rb | 10 + db/schema.rb | 79 ++++++ db/seeds.rb | 7 + doc/README_FOR_APP | 2 + lib/assets/.gitkeep | 0 lib/tasks/.gitkeep | 0 log/.gitkeep | 0 public/404.html | 26 ++ public/422.html | 26 ++ public/500.html | 25 ++ public/favicon.ico | 0 public/robots.txt | 5 + script/rails | 6 + test/fixtures/.gitkeep | 0 test/fixtures/categories.yml | 9 + test/fixtures/categroys.yml | 9 + test/fixtures/event_categories.yml | 11 + test/fixtures/event_helpers.yml | 11 + test/fixtures/event_orgas.yml | 11 + test/fixtures/events.yml | 17 ++ test/fixtures/users.yml | 15 + test/functional/.gitkeep | 0 test/functional/categories_controller_test.rb | 49 ++++ test/functional/categroys_controller_test.rb | 49 ++++ .../event_categories_controller_test.rb | 49 ++++ .../event_helpers_controller_test.rb | 49 ++++ .../functional/event_orgas_controller_test.rb | 49 ++++ test/functional/events_controller_test.rb | 49 ++++ test/functional/users_controller_test.rb | 49 ++++ test/integration/.gitkeep | 0 test/performance/browsing_test.rb | 12 + test/test_helper.rb | 13 + test/unit/.gitkeep | 0 test/unit/category_test.rb | 7 + test/unit/categroy_test.rb | 7 + test/unit/event_category_test.rb | 7 + test/unit/event_helper_test.rb | 7 + test/unit/event_orga_test.rb | 7 + test/unit/event_test.rb | 7 + test/unit/helpers/categories_helper_test.rb | 4 + test/unit/helpers/categroys_helper_test.rb | 4 + .../helpers/event_categories_helper_test.rb | 4 + .../unit/helpers/event_helpers_helper_test.rb | 4 + test/unit/helpers/event_orgas_helper_test.rb | 4 + test/unit/helpers/events_helper_test.rb | 4 + test/unit/helpers/users_helper_test.rb | 4 + test/unit/user_test.rb | 7 + vendor/assets/javascripts/.gitkeep | 0 vendor/assets/stylesheets/.gitkeep | 0 144 files changed, 3429 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 README.rdoc create mode 100644 Rakefile create mode 100644 app/assets/javascripts/application.js create mode 100644 app/assets/javascripts/event_calendar.js create mode 100644 app/assets/stylesheets/application.css create mode 100644 app/assets/stylesheets/event_calendar.css create mode 100644 app/assets/stylesheets/scaffolds.css.scss.bak create mode 100644 app/assets/stylesheets/style.css.scss create mode 100644 app/controllers/application_controller.rb create mode 100644 app/controllers/calendar_controller.rb create mode 100644 app/controllers/categories_controller.rb create mode 100644 app/controllers/event_categories_controller.rb create mode 100644 app/controllers/event_helpers_controller.rb create mode 100644 app/controllers/event_orgas_controller.rb create mode 100644 app/controllers/events_controller.rb create mode 100644 app/controllers/users_controller.rb create mode 100644 app/helpers/application_helper.rb create mode 100644 app/helpers/calendar_helper.rb create mode 100644 app/helpers/categories_helper.rb create mode 100644 app/helpers/categroys_helper.rb create mode 100644 app/helpers/event_categories_helper.rb create mode 100644 app/helpers/event_helpers_helper.rb create mode 100644 app/helpers/event_orgas_helper.rb create mode 100644 app/helpers/events_helper.rb create mode 100644 app/helpers/users_helper.rb create mode 100644 app/mailers/.gitkeep create mode 100644 app/models/.gitkeep create mode 100644 app/models/category.rb create mode 100644 app/models/event.rb create mode 100644 app/models/event_category.rb create mode 100644 app/models/event_helper.rb create mode 100644 app/models/event_orga.rb create mode 100644 app/models/user.rb create mode 100644 app/views/calendar/index.html.erb create mode 100644 app/views/categories/_form.html.erb create mode 100644 app/views/categories/edit.html.erb create mode 100644 app/views/categories/index.html.erb create mode 100644 app/views/categories/new.html.erb create mode 100644 app/views/categories/show.html.erb create mode 100644 app/views/event_categories/_form.html.erb create mode 100644 app/views/event_categories/edit.html.erb create mode 100644 app/views/event_categories/index.html.erb create mode 100644 app/views/event_categories/new.html.erb create mode 100644 app/views/event_categories/show.html.erb create mode 100644 app/views/event_helpers/_form.html.erb create mode 100644 app/views/event_helpers/edit.html.erb create mode 100644 app/views/event_helpers/index.html.erb create mode 100644 app/views/event_helpers/new.html.erb create mode 100644 app/views/event_helpers/show.html.erb create mode 100644 app/views/event_orgas/_form.html.erb create mode 100644 app/views/event_orgas/edit.html.erb create mode 100644 app/views/event_orgas/index.html.erb create mode 100644 app/views/event_orgas/new.html.erb create mode 100644 app/views/event_orgas/show.html.erb create mode 100644 app/views/events/_form.html.erb create mode 100644 app/views/events/_list.html.erb create mode 100644 app/views/events/edit.html.erb create mode 100644 app/views/events/index.html.erb create mode 100644 app/views/events/new.html.erb create mode 100644 app/views/events/show.html.erb create mode 100644 app/views/layouts/application.html.erb create mode 100644 app/views/shared/_menu.html.erb create mode 100644 app/views/users/_form.html.erb create mode 100644 app/views/users/edit.html.erb create mode 100644 app/views/users/index.html.erb create mode 100644 app/views/users/new.html.erb create mode 100644 app/views/users/show.html.erb create mode 100644 config.ru create mode 100644 config/application.rb create mode 100644 config/boot.rb create mode 100644 config/database.yml create mode 100644 config/environment.rb create mode 100644 config/environments/development.rb create mode 100644 config/environments/production.rb create mode 100644 config/environments/test.rb create mode 100644 config/initializers/backtrace_silencers.rb create mode 100644 config/initializers/inflections.rb create mode 100644 config/initializers/mime_types.rb create mode 100644 config/initializers/secret_token.rb create mode 100644 config/initializers/session_store.rb create mode 100644 config/initializers/wrap_parameters.rb create mode 100644 config/locales/de.yml create mode 100644 config/locales/en.yml create mode 100644 config/routes.rb create mode 100644 db/migrate/20120621113156_create_users.rb create mode 100644 db/migrate/20120621113817_create_event_orgas.rb create mode 100644 db/migrate/20120621113929_create_event_helpers.rb create mode 100644 db/migrate/20120621114234_create_event_categories.rb create mode 100644 db/migrate/20120621120104_create_events.rb create mode 100644 db/migrate/20120621150105_create_categories.rb create mode 100644 db/schema.rb create mode 100644 db/seeds.rb create mode 100644 doc/README_FOR_APP create mode 100644 lib/assets/.gitkeep create mode 100644 lib/tasks/.gitkeep create mode 100644 log/.gitkeep create mode 100644 public/404.html create mode 100644 public/422.html create mode 100644 public/500.html create mode 100644 public/favicon.ico create mode 100644 public/robots.txt create mode 100644 script/rails create mode 100644 test/fixtures/.gitkeep create mode 100644 test/fixtures/categories.yml create mode 100644 test/fixtures/categroys.yml create mode 100644 test/fixtures/event_categories.yml create mode 100644 test/fixtures/event_helpers.yml create mode 100644 test/fixtures/event_orgas.yml create mode 100644 test/fixtures/events.yml create mode 100644 test/fixtures/users.yml create mode 100644 test/functional/.gitkeep create mode 100644 test/functional/categories_controller_test.rb create mode 100644 test/functional/categroys_controller_test.rb create mode 100644 test/functional/event_categories_controller_test.rb create mode 100644 test/functional/event_helpers_controller_test.rb create mode 100644 test/functional/event_orgas_controller_test.rb create mode 100644 test/functional/events_controller_test.rb create mode 100644 test/functional/users_controller_test.rb create mode 100644 test/integration/.gitkeep create mode 100644 test/performance/browsing_test.rb create mode 100644 test/test_helper.rb create mode 100644 test/unit/.gitkeep create mode 100644 test/unit/category_test.rb create mode 100644 test/unit/categroy_test.rb create mode 100644 test/unit/event_category_test.rb create mode 100644 test/unit/event_helper_test.rb create mode 100644 test/unit/event_orga_test.rb create mode 100644 test/unit/event_test.rb create mode 100644 test/unit/helpers/categories_helper_test.rb create mode 100644 test/unit/helpers/categroys_helper_test.rb create mode 100644 test/unit/helpers/event_categories_helper_test.rb create mode 100644 test/unit/helpers/event_helpers_helper_test.rb create mode 100644 test/unit/helpers/event_orgas_helper_test.rb create mode 100644 test/unit/helpers/events_helper_test.rb create mode 100644 test/unit/helpers/users_helper_test.rb create mode 100644 test/unit/user_test.rb create mode 100644 vendor/assets/javascripts/.gitkeep create mode 100644 vendor/assets/stylesheets/.gitkeep diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb3489a --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile ~/.gitignore_global + +# Ignore bundler config +/.bundle + +# Ignore the default SQLite database. +/db/*.sqlite3 + +# Ignore all logfiles and tempfiles. +/log/*.log +/tmp diff --git a/.project b/.project new file mode 100644 index 0000000..848819d --- /dev/null +++ b/.project @@ -0,0 +1,24 @@ + + + reisebuero + + + + + + org.rubypeople.rdt.core.rubybuilder + + + + + com.aptana.ide.core.unifiedBuilder + + + + + + com.aptana.ide.project.nature.web + org.rubypeople.rdt.core.rubynature + org.radrails.rails.core.railsnature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..7e4fec9 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//config/locales/de.yml=UTF-8 diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..4fa4707 --- /dev/null +++ b/Gemfile @@ -0,0 +1,41 @@ +source 'https://rubygems.org' + +gem 'rails', '3.2.6' + +# Bundle edge Rails instead: +# gem 'rails', :git => 'git://github.com/rails/rails.git' + +gem 'sqlite3' + + +# Gems used only for assets and not required +# in production environments by default. +group :assets do + gem 'sass-rails', '~> 3.2.3' + gem 'coffee-rails', '~> 3.2.1' + + # See https://github.com/sstephenson/execjs#readme for more supported runtimes + # gem 'therubyracer', :platforms => :ruby + + gem 'uglifier', '>= 1.0.3' +end + +gem 'jquery-rails' + +# To use ActiveModel has_secure_password +# gem 'bcrypt-ruby', '~> 3.0.0' + +# To use Jbuilder templates for JSON +# gem 'jbuilder' + +# Use unicorn as the app server +# gem 'unicorn' + +# Deploy with Capistrano +# gem 'capistrano' + +# To use debugger +# gem 'debugger' + +gem 'event-calendar', :require => 'event_calendar' +gem 'jquery-rails' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..34ac5d3 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,113 @@ +GEM + remote: https://rubygems.org/ + specs: + actionmailer (3.2.6) + actionpack (= 3.2.6) + mail (~> 2.4.4) + actionpack (3.2.6) + activemodel (= 3.2.6) + activesupport (= 3.2.6) + builder (~> 3.0.0) + erubis (~> 2.7.0) + journey (~> 1.0.1) + rack (~> 1.4.0) + rack-cache (~> 1.2) + rack-test (~> 0.6.1) + sprockets (~> 2.1.3) + activemodel (3.2.6) + activesupport (= 3.2.6) + builder (~> 3.0.0) + activerecord (3.2.6) + activemodel (= 3.2.6) + activesupport (= 3.2.6) + arel (~> 3.0.2) + tzinfo (~> 0.3.29) + activeresource (3.2.6) + activemodel (= 3.2.6) + activesupport (= 3.2.6) + activesupport (3.2.6) + i18n (~> 0.6) + multi_json (~> 1.0) + arel (3.0.2) + builder (3.0.0) + coffee-rails (3.2.2) + coffee-script (>= 2.2.0) + railties (~> 3.2.0) + coffee-script (2.2.0) + coffee-script-source + execjs + coffee-script-source (1.3.3) + erubis (2.7.0) + event-calendar (2.3.3) + execjs (1.4.0) + multi_json (~> 1.0) + hike (1.2.1) + i18n (0.6.0) + journey (1.0.4) + jquery-rails (2.0.2) + railties (>= 3.2.0, < 5.0) + thor (~> 0.14) + json (1.7.3) + mail (2.4.4) + i18n (>= 0.4.0) + mime-types (~> 1.16) + treetop (~> 1.4.8) + mime-types (1.18) + multi_json (1.3.6) + polyglot (0.3.3) + rack (1.4.1) + rack-cache (1.2) + rack (>= 0.4) + rack-ssl (1.3.2) + rack + rack-test (0.6.1) + rack (>= 1.0) + rails (3.2.6) + actionmailer (= 3.2.6) + actionpack (= 3.2.6) + activerecord (= 3.2.6) + activeresource (= 3.2.6) + activesupport (= 3.2.6) + bundler (~> 1.0) + railties (= 3.2.6) + railties (3.2.6) + actionpack (= 3.2.6) + activesupport (= 3.2.6) + rack-ssl (~> 1.3.2) + rake (>= 0.8.7) + rdoc (~> 3.4) + thor (>= 0.14.6, < 2.0) + rake (0.9.2.2) + rdoc (3.12) + json (~> 1.4) + sass (3.1.19) + sass-rails (3.2.5) + railties (~> 3.2.0) + sass (>= 3.1.10) + tilt (~> 1.3) + sprockets (2.1.3) + hike (~> 1.2) + rack (~> 1.0) + tilt (~> 1.1, != 1.3.0) + sqlite3 (1.3.6-x86-mingw32) + thor (0.15.3) + tilt (1.3.3) + treetop (1.4.10) + polyglot + polyglot (>= 0.3.1) + tzinfo (0.3.33) + uglifier (1.2.5) + execjs (>= 0.3.0) + multi_json (~> 1.3) + +PLATFORMS + x86-mingw32 + +DEPENDENCIES + coffee-rails (~> 3.2.1) + event-calendar + jquery-rails + rails (= 3.2.6) + sass-rails (~> 3.2.3) + sqlite3 + uglifier (>= 1.0.3) diff --git a/README.rdoc b/README.rdoc new file mode 100644 index 0000000..7c36f23 --- /dev/null +++ b/README.rdoc @@ -0,0 +1,261 @@ +== Welcome to Rails + +Rails is a web-application framework that includes everything needed to create +database-backed web applications according to the Model-View-Control pattern. + +This pattern splits the view (also called the presentation) into "dumb" +templates that are primarily responsible for inserting pre-built data in between +HTML tags. The model contains the "smart" domain objects (such as Account, +Product, Person, Post) that holds all the business logic and knows how to +persist themselves to a database. The controller handles the incoming requests +(such as Save New Account, Update Product, Show Post) by manipulating the model +and directing data to the view. + +In Rails, the model is handled by what's called an object-relational mapping +layer entitled Active Record. This layer allows you to present the data from +database rows as objects and embellish these data objects with business logic +methods. You can read more about Active Record in +link:files/vendor/rails/activerecord/README.html. + +The controller and view are handled by the Action Pack, which handles both +layers by its two parts: Action View and Action Controller. These two layers +are bundled in a single package due to their heavy interdependence. This is +unlike the relationship between the Active Record and Action Pack that is much +more separate. Each of these packages can be used independently outside of +Rails. You can read more about Action Pack in +link:files/vendor/rails/actionpack/README.html. + + +== Getting Started + +1. At the command prompt, create a new Rails application: + rails new myapp (where myapp is the application name) + +2. Change directory to myapp and start the web server: + cd myapp; rails server (run with --help for options) + +3. Go to http://localhost:3000/ and you'll see: + "Welcome aboard: You're riding Ruby on Rails!" + +4. Follow the guidelines to start developing your application. You can find +the following resources handy: + +* The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html +* Ruby on Rails Tutorial Book: http://www.railstutorial.org/ + + +== Debugging Rails + +Sometimes your application goes wrong. Fortunately there are a lot of tools that +will help you debug it and get it back on the rails. + +First area to check is the application log files. Have "tail -f" commands +running on the server.log and development.log. Rails will automatically display +debugging and runtime information to these files. Debugging info will also be +shown in the browser on requests from 127.0.0.1. + +You can also log your own messages directly into the log file from your code +using the Ruby logger class from inside your controllers. Example: + + class WeblogController < ActionController::Base + def destroy + @weblog = Weblog.find(params[:id]) + @weblog.destroy + logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") + end + end + +The result will be a message in your log file along the lines of: + + Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! + +More information on how to use the logger is at http://www.ruby-doc.org/core/ + +Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are +several books available online as well: + +* Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) +* Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) + +These two books will bring you up to speed on the Ruby language and also on +programming in general. + + +== Debugger + +Debugger support is available through the debugger command when you start your +Mongrel or WEBrick server with --debugger. This means that you can break out of +execution at any point in the code, investigate and change the model, and then, +resume execution! You need to install ruby-debug to run the server in debugging +mode. With gems, use sudo gem install ruby-debug. Example: + + class WeblogController < ActionController::Base + def index + @posts = Post.all + debugger + end + end + +So the controller will accept the action, run the first line, then present you +with a IRB prompt in the server window. Here you can do things like: + + >> @posts.inspect + => "[#nil, "body"=>nil, "id"=>"1"}>, + #"Rails", "body"=>"Only ten..", "id"=>"2"}>]" + >> @posts.first.title = "hello from a debugger" + => "hello from a debugger" + +...and even better, you can examine how your runtime objects actually work: + + >> f = @posts.first + => #nil, "body"=>nil, "id"=>"1"}> + >> f. + Display all 152 possibilities? (y or n) + +Finally, when you're ready to resume execution, you can enter "cont". + + +== Console + +The console is a Ruby shell, which allows you to interact with your +application's domain model. Here you'll have all parts of the application +configured, just like it is when the application is running. You can inspect +domain models, change values, and save to the database. Starting the script +without arguments will launch it in the development environment. + +To start the console, run rails console from the application +directory. + +Options: + +* Passing the -s, --sandbox argument will rollback any modifications + made to the database. +* Passing an environment name as an argument will load the corresponding + environment. Example: rails console production. + +To reload your controllers and models after launching the console run +reload! + +More information about irb can be found at: +link:http://www.rubycentral.org/pickaxe/irb.html + + +== dbconsole + +You can go to the command line of your database directly through rails +dbconsole. You would be connected to the database with the credentials +defined in database.yml. Starting the script without arguments will connect you +to the development database. Passing an argument will connect you to a different +database, like rails dbconsole production. Currently works for MySQL, +PostgreSQL and SQLite 3. + +== Description of Contents + +The default directory structure of a generated Ruby on Rails application: + + |-- app + | |-- assets + | |-- images + | |-- javascripts + | `-- stylesheets + | |-- controllers + | |-- helpers + | |-- mailers + | |-- models + | `-- views + | `-- layouts + |-- config + | |-- environments + | |-- initializers + | `-- locales + |-- db + |-- doc + |-- lib + | `-- tasks + |-- log + |-- public + |-- script + |-- test + | |-- fixtures + | |-- functional + | |-- integration + | |-- performance + | `-- unit + |-- tmp + | |-- cache + | |-- pids + | |-- sessions + | `-- sockets + `-- vendor + |-- assets + `-- stylesheets + `-- plugins + +app + Holds all the code that's specific to this particular application. + +app/assets + Contains subdirectories for images, stylesheets, and JavaScript files. + +app/controllers + Holds controllers that should be named like weblogs_controller.rb for + automated URL mapping. All controllers should descend from + ApplicationController which itself descends from ActionController::Base. + +app/models + Holds models that should be named like post.rb. Models descend from + ActiveRecord::Base by default. + +app/views + Holds the template files for the view that should be named like + weblogs/index.html.erb for the WeblogsController#index action. All views use + eRuby syntax by default. + +app/views/layouts + Holds the template files for layouts to be used with views. This models the + common header/footer method of wrapping views. In your views, define a layout + using the layout :default and create a file named default.html.erb. + Inside default.html.erb, call <% yield %> to render the view using this + layout. + +app/helpers + Holds view helpers that should be named like weblogs_helper.rb. These are + generated for you automatically when using generators for controllers. + Helpers can be used to wrap functionality for your views into methods. + +config + Configuration files for the Rails environment, the routing map, the database, + and other dependencies. + +db + Contains the database schema in schema.rb. db/migrate contains all the + sequence of Migrations for your schema. + +doc + This directory is where your application documentation will be stored when + generated using rake doc:app + +lib + Application specific libraries. Basically, any kind of custom code that + doesn't belong under controllers, models, or helpers. This directory is in + the load path. + +public + The directory available for the web server. Also contains the dispatchers and the + default HTML files. This should be set as the DOCUMENT_ROOT of your web + server. + +script + Helper scripts for automation and generation. + +test + Unit and functional tests along with fixtures. When using the rails generate + command, template test files will be generated for you and placed in this + directory. + +vendor + External libraries that the application depends on. Also includes the plugins + subdirectory. If the app has frozen rails, those gems also go here, under + vendor/rails/. This directory is in the load path. diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..fd43380 --- /dev/null +++ b/Rakefile @@ -0,0 +1,7 @@ +#!/usr/bin/env rake +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require File.expand_path('../config/application', __FILE__) + +Reisebuero::Application.load_tasks diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js new file mode 100644 index 0000000..9097d83 --- /dev/null +++ b/app/assets/javascripts/application.js @@ -0,0 +1,15 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// +// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD +// GO AFTER THE REQUIRES BELOW. +// +//= require jquery +//= require jquery_ujs +//= require_tree . diff --git a/app/assets/javascripts/event_calendar.js b/app/assets/javascripts/event_calendar.js new file mode 100644 index 0000000..e3b2885 --- /dev/null +++ b/app/assets/javascripts/event_calendar.js @@ -0,0 +1,37 @@ +/* + * Smart event highlighting + * Handles when events span rows, or don't have a background color + */ +jQuery(document).ready(function($) { + var highlight_color = "#2EAC6A"; + + // highlight events that have a background color + $(".ec-event-bg").live("mouseover", function() { + event_id = $(this).attr("data-event-id"); + event_class_name = $(this).attr("data-event-class"); + $(".ec-"+event_class_name+"-"+event_id).css("background-color", highlight_color); + }); + $(".ec-event-bg").live("mouseout", function() { + event_id = $(this).attr("data-event-id"); + event_class_name = $(this).attr("data-event-class"); + event_color = $(this).attr("data-color"); + $(".ec-"+event_class_name+"-"+event_id).css("background-color", event_color); + }); + + // highlight events that don't have a background color + $(".ec-event-no-bg").live("mouseover", function() { + ele = $(this); + ele.css("color", "white"); + ele.find("a").css("color", "white"); + ele.find(".ec-bullet").css("background-color", "white"); + ele.css("background-color", highlight_color); + }); + $(".ec-event-no-bg").live("mouseout", function() { + ele = $(this); + event_color = $(this).attr("data-color"); + ele.css("color", event_color); + ele.find("a").css("color", event_color); + ele.find(".ec-bullet").css("background-color", event_color); + ele.css("background-color", "transparent"); + }); +}); \ No newline at end of file diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css new file mode 100644 index 0000000..3192ec8 --- /dev/null +++ b/app/assets/stylesheets/application.css @@ -0,0 +1,13 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, + * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the top of the + * compiled file, but it's generally better to create a new file per style scope. + * + *= require_self + *= require_tree . + */ diff --git a/app/assets/stylesheets/event_calendar.css b/app/assets/stylesheets/event_calendar.css new file mode 100644 index 0000000..e821653 --- /dev/null +++ b/app/assets/stylesheets/event_calendar.css @@ -0,0 +1,237 @@ +/* + Event Calendar stylesheet + + Colors: + #d5d5d5 - border (gray) + #303030 - day names bg (gray) + #444 - number (gray) + #ecede2 - day header bg (light tan) + ##d7d7ba - today header bg (tan) + #ffffdd - today bg light (yellow) + #777 - other month number (gray) + #efefef - other month day header (gray) + #2eac6a - hover (green) +*/ + +/* Outer most container */ +.ec-calendar { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 11px; + line-height: 14px; + margin: 0; + padding: 0; + border-bottom: 1px solid #d5d5d5; +} + +/* Month name header & links */ +.ec-calendar-header { + padding: 5px 0; + width: 100%; + table-layout: fixed; +} + +.ec-month-name { + font-size: 16px; + font-weight: bold; +} + +.ec-month-nav { + +} + +/* Containers */ +.ec-body { + position: relative; + border-right: 1px solid #303030; + white-space: nowrap; +} + +/* Day names */ +.ec-day-names { + position: absolute; + top: 0; + left: 0; + width: 100%; + table-layout: fixed; + padding: 2px 0; + background: #303030; + color: white; +} + +.ec-day-name { + font-weight: normal; +} + +/* Rows container and Row */ +.ec-rows { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + background: white; + overflow: hidden; + border-right: 1px solid #d5d5d5; +} + +.ec-row { + position: absolute; + left: 0; + width: 100%; + overflow: hidden; +} + +/* Background */ +.ec-row-bg { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + table-layout: fixed; +} + +.ec-day-bg { + border-left: 1px solid #d5d5d5; +} + +.ec-today-bg { + background-color: #ffffdd; +} + +.ec-row-table { + position: relative; + width: 100%; + table-layout: fixed; +} + +/* Day header */ +.ec-day-header { + color: #444; + text-align: right; + padding: 0 5px; + line-height: 16px; + border-top: 1px solid #d5d5d5; + border-left: 1px solid #d5d5d5; + border-bottom: 1px dotted #bbbbbb; + background-color: #ecede2; + overflow: hidden; +} + +a.ec-day-link { + color: #444; +} + +.ec-today-header { + background-color: #d7d7ba; +} + +.ec-weekend-day-header { + +} + +.ec-other-month-header { + background-color: #efefef; + color: #777; +} + +.ec-other-month-bg { + +} + + +/* Event cell and container */ +.ec-event-cell { + cursor: pointer; + vertical-align: top; + padding-right: 1px; + padding-left: 2px; +} + +.ec-event-cell a { + text-decoration: none; + display: block; + width: 100%; + height: 100%; +} + +.ec-no-event-cell { + cursor: default; +} + +.ec-event { + color: white; + padding-right: 1px; + padding-left: 11px; + -webkit-border-radius: 3px; + -khtml-border-radius: 3px; + -moz-border-radius: 3px; + overflow: hidden; + white-space: nowrap; +} + +.ec-event :hover { + /* doesn't look as good as js highlighting */ + /* background-color: #2eac6a; */ +} + +.ec-event-bg a { + color: white; +} + +/* used to distinguish non-all_day events */ +.ec-event-no-bg { + position: relative; + /* padding-left: 5px; */ +} + +.ec-event-no-bg a { + /* isn't implemented in all browsers */ + color: inherit; +} + +.ec-event-time { + font-size: 85%; + font-weight: bold; + padding-right: 3px; +} + + +/* Left and right arrows */ +/* Doesn't work in IE6, use bg images instead */ +.ec-left-arrow, .ec-right-arrow { + position: relative; + top: 3px; + width: 0; + height: 0; + font-size: 0; + line-height: 0; + margin-bottom: -8px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; +} + +.ec-left-arrow { + margin-left: -7px; + margin-right: auto; + border-right: 4px solid white; +} + +.ec-right-arrow { + margin-left: auto; + margin-right: 3px; + border-left: 4px solid white; +} + +/* remove this to not have a bullet */ +/* don't look as good in ie */ +.ec-bullet { + position: absolute; + top: 7px; + width: 4px; + height: 4px; + margin-left: -7px; + margin-right: auto; + -webkit-border-radius: 2px; + -khtml-border-radius: 2px; + -moz-border-radius: 2px; +} \ No newline at end of file diff --git a/app/assets/stylesheets/scaffolds.css.scss.bak b/app/assets/stylesheets/scaffolds.css.scss.bak new file mode 100644 index 0000000..e69de29 diff --git a/app/assets/stylesheets/style.css.scss b/app/assets/stylesheets/style.css.scss new file mode 100644 index 0000000..482d2d6 --- /dev/null +++ b/app/assets/stylesheets/style.css.scss @@ -0,0 +1,85 @@ + +$main-color: #FF8800; +$background: #e3e8e8; +$dark: #272828; + +body { + background-color: $background; + color: $dark; + font-family: verdana, arial, helvetica, sans-serif; + font-size: 13px; + line-height: 18px; } + +h1 { + text-align: center; +} + +p, ol, ul, td { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 13px; + line-height: 18px; } + +pre { + background-color: #eee; + padding: 10px; + font-size: 11px; } + +a { + color: #000; + &:visited { + color: #666; } + &:hover { + color: #fff; } } + +div { + &.field, &.actions { + margin-bottom: 10px; } } + +#notice { + color: green; } + +.field_with_errors { + padding: 2px; + background-color: red; + display: table; } + +#error_explanation { + width: 450px; + border: 2px solid red; + padding: 7px; + padding-bottom: 0; + margin-bottom: 20px; + background-color: #f0f0f0; + h2 { + text-align: left; + font-weight: bold; + padding: 5px 5px 5px 15px; + font-size: 12px; + margin: -7px; + margin-bottom: 0px; + background-color: #c00; + color: #fff; } + ul li { + font-size: 12px; + list-style: square; } } + +.menu_top { + height: 20px; + padding-left: 0; + li { + text-decoration: none; + display: block; + float: left; + a { + font-weight:bold; + text-decoration: none; + margin: 2px; + background-color: $main-color; + padding: 3px 5px; + &:hover { + background-color: + darken($main-color, 10%); + } + } + } +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb new file mode 100644 index 0000000..e8065d9 --- /dev/null +++ b/app/controllers/application_controller.rb @@ -0,0 +1,3 @@ +class ApplicationController < ActionController::Base + protect_from_forgery +end diff --git a/app/controllers/calendar_controller.rb b/app/controllers/calendar_controller.rb new file mode 100644 index 0000000..5a62642 --- /dev/null +++ b/app/controllers/calendar_controller.rb @@ -0,0 +1,13 @@ +class CalendarController < ApplicationController + + def index + @first_day_of_week = 1 + @month = (params[:month] || (Time.zone || Time).now.month).to_i + @year = (params[:year] || (Time.zone || Time).now.year).to_i + + @shown_month = Date.civil(@year, @month) + + @event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week) + end + +end diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb new file mode 100644 index 0000000..869cd27 --- /dev/null +++ b/app/controllers/categories_controller.rb @@ -0,0 +1,83 @@ +class CategoriesController < ApplicationController + # GET /categories + # GET /categories.json + def index + @categories = Category.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @categories } + end + end + + # GET /categories/1 + # GET /categories/1.json + def show + @category = Category.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @category } + end + end + + # GET /categories/new + # GET /categories/new.json + def new + @category = Category.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @category } + end + end + + # GET /categories/1/edit + def edit + @category = Category.find(params[:id]) + end + + # POST /categories + # POST /categories.json + def create + @category = Category.new(params[:category]) + + respond_to do |format| + if @category.save + format.html { redirect_to @category, notice: 'Category was successfully created.' } + format.json { render json: @category, status: :created, location: @category } + else + format.html { render action: "new" } + format.json { render json: @category.errors, status: :unprocessable_entity } + end + end + end + + # PUT /categories/1 + # PUT /categories/1.json + def update + @category = Category.find(params[:id]) + + respond_to do |format| + if @category.update_attributes(params[:category]) + format.html { redirect_to @category, notice: 'Category was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @category.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /categories/1 + # DELETE /categories/1.json + def destroy + @category = Category.find(params[:id]) + @category.destroy + + respond_to do |format| + format.html { redirect_to categories_url } + format.json { head :no_content } + end + end +end diff --git a/app/controllers/event_categories_controller.rb b/app/controllers/event_categories_controller.rb new file mode 100644 index 0000000..c23cc8c --- /dev/null +++ b/app/controllers/event_categories_controller.rb @@ -0,0 +1,83 @@ +class EventCategoriesController < ApplicationController + # GET /event_categories + # GET /event_categories.json + def index + @event_categories = EventCategory.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @event_categories } + end + end + + # GET /event_categories/1 + # GET /event_categories/1.json + def show + @event_category = EventCategory.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @event_category } + end + end + + # GET /event_categories/new + # GET /event_categories/new.json + def new + @event_category = EventCategory.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @event_category } + end + end + + # GET /event_categories/1/edit + def edit + @event_category = EventCategory.find(params[:id]) + end + + # POST /event_categories + # POST /event_categories.json + def create + @event_category = EventCategory.new(params[:event_category]) + + respond_to do |format| + if @event_category.save + format.html { redirect_to @event_category, notice: 'Event category was successfully created.' } + format.json { render json: @event_category, status: :created, location: @event_category } + else + format.html { render action: "new" } + format.json { render json: @event_category.errors, status: :unprocessable_entity } + end + end + end + + # PUT /event_categories/1 + # PUT /event_categories/1.json + def update + @event_category = EventCategory.find(params[:id]) + + respond_to do |format| + if @event_category.update_attributes(params[:event_category]) + format.html { redirect_to @event_category, notice: 'Event category was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @event_category.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /event_categories/1 + # DELETE /event_categories/1.json + def destroy + @event_category = EventCategory.find(params[:id]) + @event_category.destroy + + respond_to do |format| + format.html { redirect_to event_categories_url } + format.json { head :no_content } + end + end +end diff --git a/app/controllers/event_helpers_controller.rb b/app/controllers/event_helpers_controller.rb new file mode 100644 index 0000000..3fa2a59 --- /dev/null +++ b/app/controllers/event_helpers_controller.rb @@ -0,0 +1,83 @@ +class EventHelpersController < ApplicationController + # GET /event_helpers + # GET /event_helpers.json + def index + @event_helpers = EventHelper.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @event_helpers } + end + end + + # GET /event_helpers/1 + # GET /event_helpers/1.json + def show + @event_helper = EventHelper.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @event_helper } + end + end + + # GET /event_helpers/new + # GET /event_helpers/new.json + def new + @event_helper = EventHelper.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @event_helper } + end + end + + # GET /event_helpers/1/edit + def edit + @event_helper = EventHelper.find(params[:id]) + end + + # POST /event_helpers + # POST /event_helpers.json + def create + @event_helper = EventHelper.new(params[:event_helper]) + + respond_to do |format| + if @event_helper.save + format.html { redirect_to @event_helper, notice: 'Event helper was successfully created.' } + format.json { render json: @event_helper, status: :created, location: @event_helper } + else + format.html { render action: "new" } + format.json { render json: @event_helper.errors, status: :unprocessable_entity } + end + end + end + + # PUT /event_helpers/1 + # PUT /event_helpers/1.json + def update + @event_helper = EventHelper.find(params[:id]) + + respond_to do |format| + if @event_helper.update_attributes(params[:event_helper]) + format.html { redirect_to @event_helper, notice: 'Event helper was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @event_helper.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /event_helpers/1 + # DELETE /event_helpers/1.json + def destroy + @event_helper = EventHelper.find(params[:id]) + @event_helper.destroy + + respond_to do |format| + format.html { redirect_to event_helpers_url } + format.json { head :no_content } + end + end +end diff --git a/app/controllers/event_orgas_controller.rb b/app/controllers/event_orgas_controller.rb new file mode 100644 index 0000000..52e6fbd --- /dev/null +++ b/app/controllers/event_orgas_controller.rb @@ -0,0 +1,83 @@ +class EventOrgasController < ApplicationController + # GET /event_orgas + # GET /event_orgas.json + def index + @event_orgas = EventOrga.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @event_orgas } + end + end + + # GET /event_orgas/1 + # GET /event_orgas/1.json + def show + @event_orga = EventOrga.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @event_orga } + end + end + + # GET /event_orgas/new + # GET /event_orgas/new.json + def new + @event_orga = EventOrga.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @event_orga } + end + end + + # GET /event_orgas/1/edit + def edit + @event_orga = EventOrga.find(params[:id]) + end + + # POST /event_orgas + # POST /event_orgas.json + def create + @event_orga = EventOrga.new(params[:event_orga]) + + respond_to do |format| + if @event_orga.save + format.html { redirect_to @event_orga, notice: 'Event orga was successfully created.' } + format.json { render json: @event_orga, status: :created, location: @event_orga } + else + format.html { render action: "new" } + format.json { render json: @event_orga.errors, status: :unprocessable_entity } + end + end + end + + # PUT /event_orgas/1 + # PUT /event_orgas/1.json + def update + @event_orga = EventOrga.find(params[:id]) + + respond_to do |format| + if @event_orga.update_attributes(params[:event_orga]) + format.html { redirect_to @event_orga, notice: 'Event orga was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @event_orga.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /event_orgas/1 + # DELETE /event_orgas/1.json + def destroy + @event_orga = EventOrga.find(params[:id]) + @event_orga.destroy + + respond_to do |format| + format.html { redirect_to event_orgas_url } + format.json { head :no_content } + end + end +end diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb new file mode 100644 index 0000000..136043c --- /dev/null +++ b/app/controllers/events_controller.rb @@ -0,0 +1,93 @@ +class EventsController < ApplicationController + # GET /events + # GET /events.json + def index + @month = (params[:month] || (Time.zone || Time).now.month).to_i + @year = (params[:year] || (Time.zone || Time).now.year).to_i + @day = (params[:day] || (Time.zone || Time).now.day).to_i + @month_start = Date.new(@year, @month).to_time + @month_end = Date.new(@year, @month+1).to_time + + @shown_month = Date.civil(@year, @month) + +# @events = Event.all +# @events = Event.where("start_at >= :month_start", :month_start).order("start_at") + @events = Event.where(:end_at => (@month_start)..(@month_end)) + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @events } + end + end + + # GET /events/1 + # GET /events/1.json + def show + @event = Event.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @event } + end + end + + # GET /events/new + # GET /events/new.json + def new + @event = Event.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @event } + end + end + + # GET /events/1/edit + def edit + @event = Event.find(params[:id]) + end + + # POST /events + # POST /events.json + def create + @event = Event.new(params[:event]) + + respond_to do |format| + if @event.save + format.html { redirect_to @event, notice: 'Event was successfully created.' } + format.json { render json: @event, status: :created, location: @event } + else + format.html { render action: "new" } + format.json { render json: @event.errors, status: :unprocessable_entity } + end + end + end + + # PUT /events/1 + # PUT /events/1.json + def update + @event = Event.find(params[:id]) + + respond_to do |format| + if @event.update_attributes(params[:event]) + format.html { redirect_to @event, notice: 'Event was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @event.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /events/1 + # DELETE /events/1.json + def destroy + @event = Event.find(params[:id]) + @event.destroy + + respond_to do |format| + format.html { redirect_to events_url } + format.json { head :no_content } + end + end +end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb new file mode 100644 index 0000000..dcf538d --- /dev/null +++ b/app/controllers/users_controller.rb @@ -0,0 +1,83 @@ +class UsersController < ApplicationController + # GET /users + # GET /users.json + def index + @users = User.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @users } + end + end + + # GET /users/1 + # GET /users/1.json + def show + @user = User.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @user } + end + end + + # GET /users/new + # GET /users/new.json + def new + @user = User.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @user } + end + end + + # GET /users/1/edit + def edit + @user = User.find(params[:id]) + end + + # POST /users + # POST /users.json + def create + @user = User.new(params[:user]) + + respond_to do |format| + if @user.save + format.html { redirect_to @user, notice: 'User was successfully created.' } + format.json { render json: @user, status: :created, location: @user } + else + format.html { render action: "new" } + format.json { render json: @user.errors, status: :unprocessable_entity } + end + end + end + + # PUT /users/1 + # PUT /users/1.json + def update + @user = User.find(params[:id]) + + respond_to do |format| + if @user.update_attributes(params[:user]) + format.html { redirect_to @user, notice: 'User was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @user.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /users/1 + # DELETE /users/1.json + def destroy + @user = User.find(params[:id]) + @user.destroy + + respond_to do |format| + format.html { redirect_to users_url } + format.json { head :no_content } + end + end +end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb new file mode 100644 index 0000000..de6be79 --- /dev/null +++ b/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/app/helpers/calendar_helper.rb b/app/helpers/calendar_helper.rb new file mode 100644 index 0000000..44eac7a --- /dev/null +++ b/app/helpers/calendar_helper.rb @@ -0,0 +1,40 @@ +module CalendarHelper + def month_link(month_date) + link_to(I18n.localize(month_date, :format => "%B"), {:month => month_date.month, :year => month_date.year}) + end + + # custom options for this calendar + def event_calendar_opts + { + :first_day_of_week => @first_day_of_week, + :year => @year, + :month => @month, + :event_strips => @event_strips, + :month_name_text => I18n.localize(@shown_month, :format => "%B %Y"), + :previous_month_text => "<< " + month_link(@shown_month.prev_month), + :next_month_text => month_link(@shown_month.next_month) + " >>", + :use_all_day => true + } + end + + def event_calendar + # args is an argument hash containing :event, :day, and :options + calendar event_calendar_opts do |args| + event, day = args[:event], args[:day] + html = %() + html << display_event_time(event, day) + html << %(#{h(event.name)}) + html + end + end + + def display_event_time(event, day) + time = event.start_at + if !event.all_day + t = I18n.localize(time, :format => :"calendar.hour_and_minute") + %(#{t}) + else + "" + end + end +end \ No newline at end of file diff --git a/app/helpers/categories_helper.rb b/app/helpers/categories_helper.rb new file mode 100644 index 0000000..e06f315 --- /dev/null +++ b/app/helpers/categories_helper.rb @@ -0,0 +1,2 @@ +module CategoriesHelper +end diff --git a/app/helpers/categroys_helper.rb b/app/helpers/categroys_helper.rb new file mode 100644 index 0000000..8d9dad9 --- /dev/null +++ b/app/helpers/categroys_helper.rb @@ -0,0 +1,2 @@ +module CategroysHelper +end diff --git a/app/helpers/event_categories_helper.rb b/app/helpers/event_categories_helper.rb new file mode 100644 index 0000000..d7ac8ff --- /dev/null +++ b/app/helpers/event_categories_helper.rb @@ -0,0 +1,2 @@ +module EventCategoriesHelper +end diff --git a/app/helpers/event_helpers_helper.rb b/app/helpers/event_helpers_helper.rb new file mode 100644 index 0000000..4ee1da8 --- /dev/null +++ b/app/helpers/event_helpers_helper.rb @@ -0,0 +1,2 @@ +module EventHelpersHelper +end diff --git a/app/helpers/event_orgas_helper.rb b/app/helpers/event_orgas_helper.rb new file mode 100644 index 0000000..de46a47 --- /dev/null +++ b/app/helpers/event_orgas_helper.rb @@ -0,0 +1,2 @@ +module EventOrgasHelper +end diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb new file mode 100644 index 0000000..49d5197 --- /dev/null +++ b/app/helpers/events_helper.rb @@ -0,0 +1,46 @@ +module EventsHelper + def display_time(event) + +# start_at = event.start_at + # end_at = event.end_at + day1 = event.start_at.to_date + day2 = event.end_at.to_date + time1 = event.start_at - day1.to_time + time2 = event.end_at - day2.to_time + seperator = " bis " + + if event.all_day + if day1 == day2 + # all-day + format_display_time(event,"event.all-day") + else + # all-day - all-day + format_display_time(event,"event.all-day",seperator,"event.all-day") + end + else + if day1 == day2 + if time1 == time2 + #default + format_display_time(event,"default") + else + # default - one-day-end + format_display_time(event,"default",seperator,"event.one-day-end") + end + else + # default - default + format_display_time(event,"default",seperator,"default") + end + end + end +end + +def format_display_time(event, format_start, seperator = "", format_end = "") + t_start = I18n.localize(event.start_at, :format => :"#{format_start}") + if format_end != "" + t_end = I18n.localize(event.end_at, :format => :"#{format_end}") + else + t_end = "" + end + + %(#{t_start}#{seperator}#{t_end}) +end \ No newline at end of file diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb new file mode 100644 index 0000000..2310a24 --- /dev/null +++ b/app/helpers/users_helper.rb @@ -0,0 +1,2 @@ +module UsersHelper +end diff --git a/app/mailers/.gitkeep b/app/mailers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/models/.gitkeep b/app/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/models/category.rb b/app/models/category.rb new file mode 100644 index 0000000..3360046 --- /dev/null +++ b/app/models/category.rb @@ -0,0 +1,6 @@ +class Category < ActiveRecord::Base + attr_accessible :description, :name + has_many :event_categories + has_many :event_helpers + has_many :event_orgas +end diff --git a/app/models/event.rb b/app/models/event.rb new file mode 100644 index 0000000..126cd4a --- /dev/null +++ b/app/models/event.rb @@ -0,0 +1,7 @@ +class Event < ActiveRecord::Base + has_event_calendar + attr_accessible :all_day, :description, :end_at, :location, :name, :start_at + has_many :event_categories + has_many :event_orgas + has_many :event_helpers +end diff --git a/app/models/event_category.rb b/app/models/event_category.rb new file mode 100644 index 0000000..d0a1fca --- /dev/null +++ b/app/models/event_category.rb @@ -0,0 +1,5 @@ +class EventCategory < ActiveRecord::Base + belongs_to :event + belongs_to :category + attr_accessible :number_required +end diff --git a/app/models/event_helper.rb b/app/models/event_helper.rb new file mode 100644 index 0000000..5502176 --- /dev/null +++ b/app/models/event_helper.rb @@ -0,0 +1,6 @@ +class EventHelper < ActiveRecord::Base + belongs_to :event + belongs_to :user + belongs_to :category + # attr_accessible :title, :body +end diff --git a/app/models/event_orga.rb b/app/models/event_orga.rb new file mode 100644 index 0000000..5ff3165 --- /dev/null +++ b/app/models/event_orga.rb @@ -0,0 +1,6 @@ +class EventOrga < ActiveRecord::Base + belongs_to :event + belongs_to :user + belongs_to :category + # attr_accessible :title, :body +end diff --git a/app/models/user.rb b/app/models/user.rb new file mode 100644 index 0000000..67623f7 --- /dev/null +++ b/app/models/user.rb @@ -0,0 +1,5 @@ +class User < ActiveRecord::Base + attr_accessible :email, :first_name, :login, :name, :password + has_many :event_helpers + has_many :event_orgas +end diff --git a/app/views/calendar/index.html.erb b/app/views/calendar/index.html.erb new file mode 100644 index 0000000..bb03136 --- /dev/null +++ b/app/views/calendar/index.html.erb @@ -0,0 +1,5 @@ + + +

<%=t("calendar")%>

+ +<%= raw(event_calendar) %> diff --git a/app/views/categories/_form.html.erb b/app/views/categories/_form.html.erb new file mode 100644 index 0000000..581425a --- /dev/null +++ b/app/views/categories/_form.html.erb @@ -0,0 +1,25 @@ +<%= form_for(@category) do |f| %> + <% if @category.errors.any? %> +
+

<%= pluralize(@category.errors.count, "error") %> prohibited this category from being saved:

+ +
    + <% @category.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%= f.label :name %>
+ <%= f.text_field :name %> +
+
+ <%= f.label :description %>
+ <%= f.text_area :description %> +
+
+ <%= f.submit %> +
+<% end %> diff --git a/app/views/categories/edit.html.erb b/app/views/categories/edit.html.erb new file mode 100644 index 0000000..fce22f7 --- /dev/null +++ b/app/views/categories/edit.html.erb @@ -0,0 +1,6 @@ +

Editing category

+ +<%= render 'form' %> + +<%= link_to 'Show', @category %> | +<%= link_to 'Back', categories_path %> diff --git a/app/views/categories/index.html.erb b/app/views/categories/index.html.erb new file mode 100644 index 0000000..d58f338 --- /dev/null +++ b/app/views/categories/index.html.erb @@ -0,0 +1,25 @@ +

Listing categories

+ + + + + + + + + + +<% @categories.each do |category| %> + + + + + + + +<% end %> +
NameDescription
<%= category.name %><%= category.description %><%= link_to 'Show', category %><%= link_to 'Edit', edit_category_path(category) %><%= link_to 'Destroy', category, method: :delete, data: { confirm: 'Are you sure?' } %>
+ +
+ +<%= link_to 'New Category', new_category_path %> diff --git a/app/views/categories/new.html.erb b/app/views/categories/new.html.erb new file mode 100644 index 0000000..a84b5d3 --- /dev/null +++ b/app/views/categories/new.html.erb @@ -0,0 +1,5 @@ +

New category

+ +<%= render 'form' %> + +<%= link_to 'Back', categories_path %> diff --git a/app/views/categories/show.html.erb b/app/views/categories/show.html.erb new file mode 100644 index 0000000..afa090e --- /dev/null +++ b/app/views/categories/show.html.erb @@ -0,0 +1,15 @@ +

<%= notice %>

+ +

+ Name: + <%= @category.name %> +

+ +

+ Description: + <%= @category.description %> +

+ + +<%= link_to 'Edit', edit_category_path(@category) %> | +<%= link_to 'Back', categories_path %> diff --git a/app/views/event_categories/_form.html.erb b/app/views/event_categories/_form.html.erb new file mode 100644 index 0000000..9e4bf66 --- /dev/null +++ b/app/views/event_categories/_form.html.erb @@ -0,0 +1,29 @@ +<%= form_for(@event_category) do |f| %> + <% if @event_category.errors.any? %> +
+

<%= pluralize(@event_category.errors.count, "error") %> prohibited this event_category from being saved:

+ +
    + <% @event_category.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%= f.label :event %>
+ <%= f.text_field :event %> +
+
+ <%= f.label :category %>
+ <%= f.text_field :category %> +
+
+ <%= f.label :number_required %>
+ <%= f.number_field :number_required %> +
+
+ <%= f.submit %> +
+<% end %> diff --git a/app/views/event_categories/edit.html.erb b/app/views/event_categories/edit.html.erb new file mode 100644 index 0000000..d2903b3 --- /dev/null +++ b/app/views/event_categories/edit.html.erb @@ -0,0 +1,6 @@ +

Editing event_category

+ +<%= render 'form' %> + +<%= link_to 'Show', @event_category %> | +<%= link_to 'Back', event_categories_path %> diff --git a/app/views/event_categories/index.html.erb b/app/views/event_categories/index.html.erb new file mode 100644 index 0000000..098c2dc --- /dev/null +++ b/app/views/event_categories/index.html.erb @@ -0,0 +1,27 @@ +

Listing event_categories

+ + + + + + + + + + + +<% @event_categories.each do |event_category| %> + + + + + + + + +<% end %> +
EventCategoryNumber required
<%= event_category.event %><%= event_category.category %><%= event_category.number_required %><%= link_to 'Show', event_category %><%= link_to 'Edit', edit_event_category_path(event_category) %><%= link_to 'Destroy', event_category, method: :delete, data: { confirm: 'Are you sure?' } %>
+ +
+ +<%= link_to 'New Event category', new_event_category_path %> diff --git a/app/views/event_categories/new.html.erb b/app/views/event_categories/new.html.erb new file mode 100644 index 0000000..b1c6749 --- /dev/null +++ b/app/views/event_categories/new.html.erb @@ -0,0 +1,5 @@ +

New event_category

+ +<%= render 'form' %> + +<%= link_to 'Back', event_categories_path %> diff --git a/app/views/event_categories/show.html.erb b/app/views/event_categories/show.html.erb new file mode 100644 index 0000000..6d0e7c0 --- /dev/null +++ b/app/views/event_categories/show.html.erb @@ -0,0 +1,20 @@ +

<%= notice %>

+ +

+ Event: + <%= @event_category.event %> +

+ +

+ Category: + <%= @event_category.category %> +

+ +

+ Number required: + <%= @event_category.number_required %> +

+ + +<%= link_to 'Edit', edit_event_category_path(@event_category) %> | +<%= link_to 'Back', event_categories_path %> diff --git a/app/views/event_helpers/_form.html.erb b/app/views/event_helpers/_form.html.erb new file mode 100644 index 0000000..bf57c3d --- /dev/null +++ b/app/views/event_helpers/_form.html.erb @@ -0,0 +1,29 @@ +<%= form_for(@event_helper) do |f| %> + <% if @event_helper.errors.any? %> +
+

<%= pluralize(@event_helper.errors.count, "error") %> prohibited this event_helper from being saved:

+ +
    + <% @event_helper.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%= f.label :event %>
+ <%= f.text_field :event %> +
+
+ <%= f.label :user %>
+ <%= f.text_field :user %> +
+
+ <%= f.label :category %>
+ <%= f.text_field :category %> +
+
+ <%= f.submit %> +
+<% end %> diff --git a/app/views/event_helpers/edit.html.erb b/app/views/event_helpers/edit.html.erb new file mode 100644 index 0000000..46a556f --- /dev/null +++ b/app/views/event_helpers/edit.html.erb @@ -0,0 +1,6 @@ +

Editing event_helper

+ +<%= render 'form' %> + +<%= link_to 'Show', @event_helper %> | +<%= link_to 'Back', event_helpers_path %> diff --git a/app/views/event_helpers/index.html.erb b/app/views/event_helpers/index.html.erb new file mode 100644 index 0000000..4347cb1 --- /dev/null +++ b/app/views/event_helpers/index.html.erb @@ -0,0 +1,27 @@ +

Listing event_helpers

+ + + + + + + + + + + +<% @event_helpers.each do |event_helper| %> + + + + + + + + +<% end %> +
EventUserCategory
<%= event_helper.event %><%= event_helper.user %><%= event_helper.category %><%= link_to 'Show', event_helper %><%= link_to 'Edit', edit_event_helper_path(event_helper) %><%= link_to 'Destroy', event_helper, method: :delete, data: { confirm: 'Are you sure?' } %>
+ +
+ +<%= link_to 'New Event helper', new_event_helper_path %> diff --git a/app/views/event_helpers/new.html.erb b/app/views/event_helpers/new.html.erb new file mode 100644 index 0000000..3936c46 --- /dev/null +++ b/app/views/event_helpers/new.html.erb @@ -0,0 +1,5 @@ +

New event_helper

+ +<%= render 'form' %> + +<%= link_to 'Back', event_helpers_path %> diff --git a/app/views/event_helpers/show.html.erb b/app/views/event_helpers/show.html.erb new file mode 100644 index 0000000..8a00dee --- /dev/null +++ b/app/views/event_helpers/show.html.erb @@ -0,0 +1,20 @@ +

<%= notice %>

+ +

+ Event: + <%= @event_helper.event %> +

+ +

+ User: + <%= @event_helper.user %> +

+ +

+ Category: + <%= @event_helper.category %> +

+ + +<%= link_to 'Edit', edit_event_helper_path(@event_helper) %> | +<%= link_to 'Back', event_helpers_path %> diff --git a/app/views/event_orgas/_form.html.erb b/app/views/event_orgas/_form.html.erb new file mode 100644 index 0000000..caf629e --- /dev/null +++ b/app/views/event_orgas/_form.html.erb @@ -0,0 +1,29 @@ +<%= form_for(@event_orga) do |f| %> + <% if @event_orga.errors.any? %> +
+

<%= pluralize(@event_orga.errors.count, "error") %> prohibited this event_orga from being saved:

+ +
    + <% @event_orga.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%= f.label :event %>
+ <%= f.text_field :event %> +
+
+ <%= f.label :user %>
+ <%= f.text_field :user %> +
+
+ <%= f.label :category %>
+ <%= f.text_field :category %> +
+
+ <%= f.submit %> +
+<% end %> diff --git a/app/views/event_orgas/edit.html.erb b/app/views/event_orgas/edit.html.erb new file mode 100644 index 0000000..4f32982 --- /dev/null +++ b/app/views/event_orgas/edit.html.erb @@ -0,0 +1,6 @@ +

Editing event_orga

+ +<%= render 'form' %> + +<%= link_to 'Show', @event_orga %> | +<%= link_to 'Back', event_orgas_path %> diff --git a/app/views/event_orgas/index.html.erb b/app/views/event_orgas/index.html.erb new file mode 100644 index 0000000..47b60f9 --- /dev/null +++ b/app/views/event_orgas/index.html.erb @@ -0,0 +1,27 @@ +

Listing event_orgas

+ + + + + + + + + + + +<% @event_orgas.each do |event_orga| %> + + + + + + + + +<% end %> +
EventUserCategory
<%= event_orga.event %><%= event_orga.user %><%= event_orga.category %><%= link_to 'Show', event_orga %><%= link_to 'Edit', edit_event_orga_path(event_orga) %><%= link_to 'Destroy', event_orga, method: :delete, data: { confirm: 'Are you sure?' } %>
+ +
+ +<%= link_to 'New Event orga', new_event_orga_path %> diff --git a/app/views/event_orgas/new.html.erb b/app/views/event_orgas/new.html.erb new file mode 100644 index 0000000..834fad8 --- /dev/null +++ b/app/views/event_orgas/new.html.erb @@ -0,0 +1,5 @@ +

New event_orga

+ +<%= render 'form' %> + +<%= link_to 'Back', event_orgas_path %> diff --git a/app/views/event_orgas/show.html.erb b/app/views/event_orgas/show.html.erb new file mode 100644 index 0000000..841f45c --- /dev/null +++ b/app/views/event_orgas/show.html.erb @@ -0,0 +1,20 @@ +

<%= notice %>

+ +

+ Event: + <%= @event_orga.event %> +

+ +

+ User: + <%= @event_orga.user %> +

+ +

+ Category: + <%= @event_orga.category %> +

+ + +<%= link_to 'Edit', edit_event_orga_path(@event_orga) %> | +<%= link_to 'Back', event_orgas_path %> diff --git a/app/views/events/_form.html.erb b/app/views/events/_form.html.erb new file mode 100644 index 0000000..351dd9c --- /dev/null +++ b/app/views/events/_form.html.erb @@ -0,0 +1,41 @@ +<%= form_for(@event) do |f| %> + <% if @event.errors.any? %> +
+

<%= pluralize(@event.errors.count, "error") %> prohibited this event from being saved:

+ +
    + <% @event.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%= f.label :name %>
+ <%= f.text_field :name %> +
+
+ <%= f.label :start_at %>
+ <%= f.datetime_select :start_at %> +
+
+ <%= f.label :end_at %>
+ <%= f.datetime_select :end_at %> +
+
+ <%= f.label :location %>
+ <%= f.text_area :location %> +
+
+ <%= f.label :description %>
+ <%= f.text_area :description %> +
+
+ <%= f.label :all_day %>
+ <%= f.check_box :all_day %> +
+
+ <%= f.submit %> +
+<% end %> diff --git a/app/views/events/_list.html.erb b/app/views/events/_list.html.erb new file mode 100644 index 0000000..e3f5f89 --- /dev/null +++ b/app/views/events/_list.html.erb @@ -0,0 +1,6 @@ +
  • + <%= link_to event.name, event %>, + <%= raw(display_time(event)) %> + <%= link_to t('edit'), edit_event_path(event) %> - + <%= link_to t('destroy'), event, method: :delete, data: { confirm: 'Are you sure?' } %> +
  • \ No newline at end of file diff --git a/app/views/events/edit.html.erb b/app/views/events/edit.html.erb new file mode 100644 index 0000000..d7d4525 --- /dev/null +++ b/app/views/events/edit.html.erb @@ -0,0 +1,6 @@ +

    Editing event

    + +<%= render 'form' %> + +<%= link_to 'Show', @event %> | +<%= link_to 'Back', events_path %> diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb new file mode 100644 index 0000000..c844e32 --- /dev/null +++ b/app/views/events/index.html.erb @@ -0,0 +1,10 @@ +

    <%=t('events')%>

    + +
      + +<%= render :partial => "list", :collection => @events, :as => :event %> + +
    +
    + +<%= link_to t('new_event'), new_event_path %> diff --git a/app/views/events/new.html.erb b/app/views/events/new.html.erb new file mode 100644 index 0000000..6119978 --- /dev/null +++ b/app/views/events/new.html.erb @@ -0,0 +1,5 @@ +

    New event

    + +<%= render 'form' %> + +<%= link_to 'Back', events_path %> diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb new file mode 100644 index 0000000..ae38dbb --- /dev/null +++ b/app/views/events/show.html.erb @@ -0,0 +1,24 @@ +

    <%= notice %>

    + +

    <%=t('event') %>

    + +

    <%= @event.name %>

    +

    + <%= raw(display_time(@event)) %> + <% if @event.all_day %> + (<%=t('all_day')%>) + <% end %> +

    + +

    + <%=t('location')%>: + <%= @event.location %> +

    + +

    + <%=t('description')%>: + <%= @event.description %> +

    + +<%= link_to t('edit'), edit_event_path(@event) %> | +<%= link_to t('back'), events_path %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb new file mode 100644 index 0000000..2d2cac1 --- /dev/null +++ b/app/views/layouts/application.html.erb @@ -0,0 +1,18 @@ + + + + Reisebuero + <%= stylesheet_link_tag "application", :media => "all" %> + <%= javascript_include_tag "application" %> + <%= csrf_meta_tags %> + + + +<%= render 'shared/menu' %> + +
    + <%= yield %> +
    + + + diff --git a/app/views/shared/_menu.html.erb b/app/views/shared/_menu.html.erb new file mode 100644 index 0000000..9cc944b --- /dev/null +++ b/app/views/shared/_menu.html.erb @@ -0,0 +1,15 @@ + + diff --git a/app/views/users/_form.html.erb b/app/views/users/_form.html.erb new file mode 100644 index 0000000..2114adf --- /dev/null +++ b/app/views/users/_form.html.erb @@ -0,0 +1,37 @@ +<%= form_for(@user) do |f| %> + <% if @user.errors.any? %> +
    +

    <%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:

    + +
      + <% @user.errors.full_messages.each do |msg| %> +
    • <%= msg %>
    • + <% end %> +
    +
    + <% end %> + +
    + <%= f.label :name %>
    + <%= f.text_field :name %> +
    +
    + <%= f.label :first_name %>
    + <%= f.text_field :first_name %> +
    +
    + <%= f.label :login %>
    + <%= f.text_field :login %> +
    +
    + <%= f.label :password %>
    + <%= f.text_field :password %> +
    +
    + <%= f.label :email %>
    + <%= f.text_field :email %> +
    +
    + <%= f.submit %> +
    +<% end %> diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb new file mode 100644 index 0000000..99bd4cc --- /dev/null +++ b/app/views/users/edit.html.erb @@ -0,0 +1,6 @@ +

    Editing user

    + +<%= render 'form' %> + +<%= link_to 'Show', @user %> | +<%= link_to 'Back', users_path %> diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb new file mode 100644 index 0000000..127906c --- /dev/null +++ b/app/views/users/index.html.erb @@ -0,0 +1,31 @@ +

    Listing users

    + + + + + + + + + + + + + +<% @users.each do |user| %> + + + + + + + + + + +<% end %> +
    NameFirst nameLoginPasswordEmail
    <%= user.name %><%= user.first_name %><%= user.login %><%= user.password %><%= user.email %><%= link_to 'Show', user %><%= link_to 'Edit', edit_user_path(user) %><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %>
    + +
    + +<%= link_to 'New User', new_user_path %> diff --git a/app/views/users/new.html.erb b/app/views/users/new.html.erb new file mode 100644 index 0000000..efc0404 --- /dev/null +++ b/app/views/users/new.html.erb @@ -0,0 +1,5 @@ +

    New user

    + +<%= render 'form' %> + +<%= link_to 'Back', users_path %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb new file mode 100644 index 0000000..6be8d44 --- /dev/null +++ b/app/views/users/show.html.erb @@ -0,0 +1,30 @@ +

    <%= notice %>

    + +

    + Name: + <%= @user.name %> +

    + +

    + First name: + <%= @user.first_name %> +

    + +

    + Login: + <%= @user.login %> +

    + +

    + Password: + <%= @user.password %> +

    + +

    + Email: + <%= @user.email %> +

    + + +<%= link_to 'Edit', edit_user_path(@user) %> | +<%= link_to 'Back', users_path %> diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..e1cee27 --- /dev/null +++ b/config.ru @@ -0,0 +1,4 @@ +# This file is used by Rack-based servers to start the application. + +require ::File.expand_path('../config/environment', __FILE__) +run Reisebuero::Application diff --git a/config/application.rb b/config/application.rb new file mode 100644 index 0000000..d8de4d1 --- /dev/null +++ b/config/application.rb @@ -0,0 +1,62 @@ +require File.expand_path('../boot', __FILE__) + +require 'rails/all' + +if defined?(Bundler) + # If you precompile assets before deploying to production, use this line + Bundler.require(*Rails.groups(:assets => %w(development test))) + # If you want your assets lazily compiled in production, use this line + # Bundler.require(:default, :assets, Rails.env) +end + +module Reisebuero + class Application < Rails::Application + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + + # Custom directories with classes and modules you want to be autoloadable. + # config.autoload_paths += %W(#{config.root}/extras) + + # Only load the plugins named here, in the order given (default is alphabetical). + # :all can be used as a placeholder for all plugins not explicitly named. + # config.plugins = [ :exception_notification, :ssl_requirement, :all ] + + # Activate observers that should always be running. + # config.active_record.observers = :cacher, :garbage_collector, :forum_observer + + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. + config.time_zone = 'Berlin' + + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] + config.i18n.default_locale = :de + + # Configure the default encoding used in templates for Ruby 1.9. + config.encoding = "utf-8" + + # Configure sensitive parameters which will be filtered from the log file. + config.filter_parameters += [:password] + + # Enable escaping HTML in JSON. + config.active_support.escape_html_entities_in_json = true + + # Use SQL instead of Active Record's schema dumper when creating the database. + # This is necessary if your schema can't be completely dumped by the schema dumper, + # like if you have constraints or database-specific column types + # config.active_record.schema_format = :sql + + # Enforce whitelist mode for mass assignment. + # This will create an empty whitelist of attributes available for mass-assignment for all models + # in your app. As such, your models will need to explicitly whitelist or blacklist accessible + # parameters by using an attr_accessible or attr_protected declaration. + config.active_record.whitelist_attributes = true + + # Enable the asset pipeline + config.assets.enabled = true + + # Version of your assets, change this if you want to expire all your assets + config.assets.version = '1.0' + end +end diff --git a/config/boot.rb b/config/boot.rb new file mode 100644 index 0000000..4489e58 --- /dev/null +++ b/config/boot.rb @@ -0,0 +1,6 @@ +require 'rubygems' + +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) + +require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) diff --git a/config/database.yml b/config/database.yml new file mode 100644 index 0000000..51a4dd4 --- /dev/null +++ b/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +development: + adapter: sqlite3 + database: db/development.sqlite3 + pool: 5 + timeout: 5000 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + adapter: sqlite3 + database: db/test.sqlite3 + pool: 5 + timeout: 5000 + +production: + adapter: sqlite3 + database: db/production.sqlite3 + pool: 5 + timeout: 5000 diff --git a/config/environment.rb b/config/environment.rb new file mode 100644 index 0000000..3953918 --- /dev/null +++ b/config/environment.rb @@ -0,0 +1,5 @@ +# Load the rails application +require File.expand_path('../application', __FILE__) + +# Initialize the rails application +Reisebuero::Application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb new file mode 100644 index 0000000..d7c1a13 --- /dev/null +++ b/config/environments/development.rb @@ -0,0 +1,37 @@ +Reisebuero::Application.configure do + # Settings specified here will take precedence over those in config/application.rb + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Log error messages when you accidentally call methods on nil. + config.whiny_nils = true + + # Show full error reports and disable caching + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Don't care if the mailer can't send + config.action_mailer.raise_delivery_errors = false + + # Print deprecation notices to the Rails logger + config.active_support.deprecation = :log + + # Only use best-standards-support built into browsers + config.action_dispatch.best_standards_support = :builtin + + # Raise exception on mass assignment protection for Active Record models + config.active_record.mass_assignment_sanitizer = :strict + + # Log the query plan for queries taking more than this (works + # with SQLite, MySQL, and PostgreSQL) + config.active_record.auto_explain_threshold_in_seconds = 0.5 + + # Do not compress assets + config.assets.compress = false + + # Expands the lines which load the assets + config.assets.debug = true +end diff --git a/config/environments/production.rb b/config/environments/production.rb new file mode 100644 index 0000000..80c1da0 --- /dev/null +++ b/config/environments/production.rb @@ -0,0 +1,67 @@ +Reisebuero::Application.configure do + # Settings specified here will take precedence over those in config/application.rb + + # Code is not reloaded between requests + config.cache_classes = true + + # Full error reports are disabled and caching is turned on + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Disable Rails's static asset server (Apache or nginx will already do this) + config.serve_static_assets = false + + # Compress JavaScripts and CSS + config.assets.compress = true + + # Don't fallback to assets pipeline if a precompiled asset is missed + config.assets.compile = false + + # Generate digests for assets URLs + config.assets.digest = true + + # Defaults to nil and saved in location specified by config.assets.prefix + # config.assets.manifest = YOUR_PATH + + # Specifies the header that your server uses for sending files + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # See everything in the log (default is :info) + # config.log_level = :debug + + # Prepend all log lines with the following tags + # config.log_tags = [ :subdomain, :uuid ] + + # Use a different logger for distributed setups + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) + + # Use a different cache store in production + # config.cache_store = :mem_cache_store + + # Enable serving of images, stylesheets, and JavaScripts from an asset server + # config.action_controller.asset_host = "http://assets.example.com" + + # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) + # config.assets.precompile += %w( search.js ) + + # Disable delivery errors, bad email addresses will be ignored + # config.action_mailer.raise_delivery_errors = false + + # Enable threaded mode + # config.threadsafe! + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation can not be found) + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners + config.active_support.deprecation = :notify + + # Log the query plan for queries taking more than this (works + # with SQLite, MySQL, and PostgreSQL) + # config.active_record.auto_explain_threshold_in_seconds = 0.5 +end diff --git a/config/environments/test.rb b/config/environments/test.rb new file mode 100644 index 0000000..e082687 --- /dev/null +++ b/config/environments/test.rb @@ -0,0 +1,37 @@ +Reisebuero::Application.configure do + # Settings specified here will take precedence over those in config/application.rb + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Configure static asset server for tests with Cache-Control for performance + config.serve_static_assets = true + config.static_cache_control = "public, max-age=3600" + + # Log error messages when you accidentally call methods on nil + config.whiny_nils = true + + # Show full error reports and disable caching + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment + config.action_controller.allow_forgery_protection = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Raise exception on mass assignment protection for Active Record models + config.active_record.mass_assignment_sanitizer = :strict + + # Print deprecation notices to the stderr + config.active_support.deprecation = :stderr +end diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..59385cd --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb new file mode 100644 index 0000000..5d8d9be --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,15 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format +# (all these examples are active by default): +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end +# +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb new file mode 100644 index 0000000..72aca7e --- /dev/null +++ b/config/initializers/mime_types.rb @@ -0,0 +1,5 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf +# Mime::Type.register_alias "text/html", :iphone diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb new file mode 100644 index 0000000..3cb20fb --- /dev/null +++ b/config/initializers/secret_token.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +Reisebuero::Application.config.secret_token = '22241d78d8fa930c4dc46ab06cf54d65416fbf7cd6177a65fdd234218cb783b130dd294d456e4b17a939e5d552cb1496a3a7c0c2925fb8979e4fa24dac11b5b1' diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb new file mode 100644 index 0000000..a547edd --- /dev/null +++ b/config/initializers/session_store.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +Reisebuero::Application.config.session_store :cookie_store, key: '_reisebuero_session' + +# Use the database for sessions instead of the cookie-based default, +# which shouldn't be used to store highly confidential information +# (create the session table with "rails generate session_migration") +# Reisebuero::Application.config.session_store :active_record_store diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb new file mode 100644 index 0000000..999df20 --- /dev/null +++ b/config/initializers/wrap_parameters.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. +# +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] +end + +# Disable root element in JSON by default. +ActiveSupport.on_load(:active_record) do + self.include_root_in_json = false +end diff --git a/config/locales/de.yml b/config/locales/de.yml new file mode 100644 index 0000000..8252e50 --- /dev/null +++ b/config/locales/de.yml @@ -0,0 +1,160 @@ +# Sample localization file for German. Add more files in this directory for other locales. +# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +de: + date: + formats: + # Use the strftime parameters for formats. + # When no format has been given, it uses default. + # You can provide other formats here if you like! + default: "%d.%m.%Y" + short: "%d. %b" + long: "%d. %B %Y" + + day_names: [Montat, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag] + abbr_day_names: [Mo, Di, Mi, Do, Fr, Sa, So] + + # Don't forget the nil at the beginning; there's no such thing as a 0th month + month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember] + abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez] + order: + - :year + - :month + - :day + + time: + formats: + default: "%A, %d.%m.%Y %H:%M" + short: "%d %b %H:%M" + long: "%B %d, %Y %H:%M" + + event: + all-day: "%A, %d.%m.%Y" + one-day-end: "%H:%M" + + calendar: + hour: "%k" + hour_and_minute: "%k:%M" + + # Used in array.to_sentence. + support: + array: + words_connector: ", " + two_words_connector: " und " + last_word_connector: ", und " + number: + # Used in NumberHelper.number_to_delimited() + # These are also the defaults for 'currency', 'percentage', 'precision', and 'human' + format: + # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5) + separator: "," + # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three) + delimiter: "." + # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00) + precision: 3 + # If set to true, precision will mean the number of significant digits instead + # of the number of decimal digits (1234 with precision 2 becomes 1200, 1.23543 becomes 1.2) + significant: false + # If set, the zeros after the decimal separator will always be stripped (eg.: 1.200 will be 1.2) + strip_insignificant_zeros: false + + # Used in NumberHelper.number_to_currency() + currency: + format: + # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00) + format: "%u%n" + unit: "€" + # These five are to override number.format and are optional + separator: "," + delimiter: "." + precision: 2 + significant: false + strip_insignificant_zeros: false + + # Used in NumberHelper.number_to_percentage() + percentage: + format: + # These five are to override number.format and are optional + # separator: + delimiter: "" + # precision: + # significant: false + # strip_insignificant_zeros: false + format: "%n%" + + # Used in NumberHelper.number_to_rounded() + precision: + format: + # These five are to override number.format and are optional + # separator: + delimiter: "" + # precision: + # significant: false + # strip_insignificant_zeros: false + + # Used in NumberHelper.number_to_human_size() and NumberHelper.number_to_human() + human: + format: + # These five are to override number.format and are optional + # separator: + delimiter: "" + precision: 3 + significant: true + strip_insignificant_zeros: true + # Used in number_to_human_size() + storage_units: + # Storage units output formatting. + # %u is the storage unit, %n is the number (default: 2 MB) + format: "%n %u" + units: + byte: + one: "Byte" + other: "Bytes" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" + # Used in NumberHelper.number_to_human() + decimal_units: + format: "%n %u" + # Decimal units output formatting + # By default we will only quantify some of the exponents + # but the commented ones might be defined or overridden + # by the user. + units: + # femto: Billiardstel + # pico: Billionstel + # nano: Milliardstel + # micro: Millionstel + # mili: Tausendstel + # centi: Huntdertstel + # deci: Zehntel + unit: "" + # ten: + # one: Ten + # other: Tens + # hundred: Hundred + thousand: Tausend + million: Million(en) + billion: Milliarde(n) + trillion: Billion(en) + quadrillion: Billiarde(n) + + + + + + calendar: Kalender + events: Events + categories: Kategorien + users: Benutzer + new_event: "Neues Event" + edit: Bearbeiten + destroy: Löschen + back: Zurück + all_day: ganztägig + location: Ort + description: Beschreibung + name: Name + first_nmae: Vorname + \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 0000000..179c14c --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,5 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +en: + hello: "Hello world" diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 0000000..d55d39f --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,76 @@ +Reisebuero::Application.routes.draw do + resources :categories + + resources :events do + resources :event_orgas + resources :event_categories do + resources :event_helpers + end + end + + resources :users do + resources :event_orgas + resources :event_helpers + end + + match '/calendar(/:year(/:month))' => 'calendar#index', :as => :calendar, :constraints => {:year => /\d{4}/, :month => /\d{1,2}/} + + # match '/events(/:year(/:month(/:day)))' => 'event#index', :as => :event, :constraints => {:year => /\d{4}/, :month => /\d{1,2}/, :day => /\d{1,2}/} + + # The priority is based upon order of creation: + # first created -> highest priority. + + # Sample of regular route: + # match 'products/:id' => 'catalog#view' + # Keep in mind you can assign values other than :controller and :action + + # Sample of named route: + # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase + # This route can be invoked with purchase_url(:id => product.id) + + # Sample resource route (maps HTTP verbs to controller actions automatically): + # resources :products + + # Sample resource route with options: + # resources :products do + # member do + # get 'short' + # post 'toggle' + # end + # + # collection do + # get 'sold' + # end + # end + + # Sample resource route with sub-resources: + # resources :products do + # resources :comments, :sales + # resource :seller + # end + + # Sample resource route with more complex sub-resources + # resources :products do + # resources :comments + # resources :sales do + # get 'recent', :on => :collection + # end + # end + + # Sample resource route within a namespace: + # namespace :admin do + # # Directs /admin/products/* to Admin::ProductsController + # # (app/controllers/admin/products_controller.rb) + # resources :products + # end + + # You can have the root of your site routed with "root" + # just remember to delete public/index.html. + root :to => 'calendar#index' + + # See how all your routes lay out with "rake routes" + + # This is a legacy wild controller route that's not recommended for RESTful applications. + # Note: This route will make all actions in every controller accessible via GET requests. + # match ':controller(/:action(/:id))(.:format)' +end diff --git a/db/migrate/20120621113156_create_users.rb b/db/migrate/20120621113156_create_users.rb new file mode 100644 index 0000000..fb4bab3 --- /dev/null +++ b/db/migrate/20120621113156_create_users.rb @@ -0,0 +1,13 @@ +class CreateUsers < ActiveRecord::Migration + def change + create_table :users do |t| + t.string :name + t.string :first_name + t.string :login + t.string :password + t.string :email + + t.timestamps + end + end +end diff --git a/db/migrate/20120621113817_create_event_orgas.rb b/db/migrate/20120621113817_create_event_orgas.rb new file mode 100644 index 0000000..e89efe8 --- /dev/null +++ b/db/migrate/20120621113817_create_event_orgas.rb @@ -0,0 +1,14 @@ +class CreateEventOrgas < ActiveRecord::Migration + def change + create_table :event_orgas do |t| + t.references :event + t.references :user + t.references :category + + t.timestamps + end + add_index :event_orgas, :event_id + add_index :event_orgas, :user_id + add_index :event_orgas, :category_id + end +end diff --git a/db/migrate/20120621113929_create_event_helpers.rb b/db/migrate/20120621113929_create_event_helpers.rb new file mode 100644 index 0000000..db49357 --- /dev/null +++ b/db/migrate/20120621113929_create_event_helpers.rb @@ -0,0 +1,14 @@ +class CreateEventHelpers < ActiveRecord::Migration + def change + create_table :event_helpers do |t| + t.references :event + t.references :user + t.references :category + + t.timestamps + end + add_index :event_helpers, :event_id + add_index :event_helpers, :user_id + add_index :event_helpers, :category_id + end +end diff --git a/db/migrate/20120621114234_create_event_categories.rb b/db/migrate/20120621114234_create_event_categories.rb new file mode 100644 index 0000000..de752e1 --- /dev/null +++ b/db/migrate/20120621114234_create_event_categories.rb @@ -0,0 +1,13 @@ +class CreateEventCategories < ActiveRecord::Migration + def change + create_table :event_categories do |t| + t.references :event + t.references :category + t.integer :number_required + + t.timestamps + end + add_index :event_categories, :event_id + add_index :event_categories, :category_id + end +end diff --git a/db/migrate/20120621120104_create_events.rb b/db/migrate/20120621120104_create_events.rb new file mode 100644 index 0000000..f098129 --- /dev/null +++ b/db/migrate/20120621120104_create_events.rb @@ -0,0 +1,14 @@ +class CreateEvents < ActiveRecord::Migration + def change + create_table :events do |t| + t.string :name + t.datetime :start_at + t.datetime :end_at + t.text :location + t.text :description + t.boolean :all_day + + t.timestamps + end + end +end diff --git a/db/migrate/20120621150105_create_categories.rb b/db/migrate/20120621150105_create_categories.rb new file mode 100644 index 0000000..218bb1f --- /dev/null +++ b/db/migrate/20120621150105_create_categories.rb @@ -0,0 +1,10 @@ +class CreateCategories < ActiveRecord::Migration + def change + create_table :categories do |t| + t.string :name + t.text :description + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 0000000..6a86863 --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,79 @@ +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended to check this file into your version control system. + +ActiveRecord::Schema.define(:version => 20120621150105) do + + create_table "categories", :force => true do |t| + t.string "name" + t.text "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "event_categories", :force => true do |t| + t.integer "event_id" + t.integer "category_id" + t.integer "number_required" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "event_categories", ["category_id"], :name => "index_event_categories_on_category_id" + add_index "event_categories", ["event_id"], :name => "index_event_categories_on_event_id" + + create_table "event_helpers", :force => true do |t| + t.integer "event_id" + t.integer "user_id" + t.integer "category_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "event_helpers", ["category_id"], :name => "index_event_helpers_on_category_id" + add_index "event_helpers", ["event_id"], :name => "index_event_helpers_on_event_id" + add_index "event_helpers", ["user_id"], :name => "index_event_helpers_on_user_id" + + create_table "event_orgas", :force => true do |t| + t.integer "event_id" + t.integer "user_id" + t.integer "category_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "event_orgas", ["category_id"], :name => "index_event_orgas_on_category_id" + add_index "event_orgas", ["event_id"], :name => "index_event_orgas_on_event_id" + add_index "event_orgas", ["user_id"], :name => "index_event_orgas_on_user_id" + + create_table "events", :force => true do |t| + t.string "name" + t.datetime "start_at" + t.datetime "end_at" + t.text "location" + t.text "description" + t.boolean "all_day" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "users", :force => true do |t| + t.string "name" + t.string "first_name" + t.string "login" + t.string "password" + t.string "email" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + +end diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 0000000..4edb1e8 --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,7 @@ +# This file should contain all the record creation needed to seed the database with its default values. +# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). +# +# Examples: +# +# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }]) +# Mayor.create(name: 'Emanuel', city: cities.first) diff --git a/doc/README_FOR_APP b/doc/README_FOR_APP new file mode 100644 index 0000000..fe41f5c --- /dev/null +++ b/doc/README_FOR_APP @@ -0,0 +1,2 @@ +Use this README file to introduce your application and point to useful places in the API for learning more. +Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. diff --git a/lib/assets/.gitkeep b/lib/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lib/tasks/.gitkeep b/lib/tasks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/log/.gitkeep b/log/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..9a48320 --- /dev/null +++ b/public/404.html @@ -0,0 +1,26 @@ + + + + The page you were looking for doesn't exist (404) + + + + + +
    +

    The page you were looking for doesn't exist.

    +

    You may have mistyped the address or the page may have moved.

    +
    + + diff --git a/public/422.html b/public/422.html new file mode 100644 index 0000000..83660ab --- /dev/null +++ b/public/422.html @@ -0,0 +1,26 @@ + + + + The change you wanted was rejected (422) + + + + + +
    +

    The change you wanted was rejected.

    +

    Maybe you tried to change something you didn't have access to.

    +
    + + diff --git a/public/500.html b/public/500.html new file mode 100644 index 0000000..f3648a0 --- /dev/null +++ b/public/500.html @@ -0,0 +1,25 @@ + + + + We're sorry, but something went wrong (500) + + + + + +
    +

    We're sorry, but something went wrong.

    +
    + + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..085187f --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,5 @@ +# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file +# +# To ban all spiders from the entire site uncomment the next two lines: +# User-Agent: * +# Disallow: / diff --git a/script/rails b/script/rails new file mode 100644 index 0000000..81eab02 --- /dev/null +++ b/script/rails @@ -0,0 +1,6 @@ +#!/usr/bin/env ruby.exe +# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. + +APP_PATH = File.expand_path('../../config/application', __FILE__) +require File.expand_path('../../config/boot', __FILE__) +require 'rails/commands' diff --git a/test/fixtures/.gitkeep b/test/fixtures/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/fixtures/categories.yml b/test/fixtures/categories.yml new file mode 100644 index 0000000..53b2c6a --- /dev/null +++ b/test/fixtures/categories.yml @@ -0,0 +1,9 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + name: MyString + description: MyText + +two: + name: MyString + description: MyText diff --git a/test/fixtures/categroys.yml b/test/fixtures/categroys.yml new file mode 100644 index 0000000..53b2c6a --- /dev/null +++ b/test/fixtures/categroys.yml @@ -0,0 +1,9 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + name: MyString + description: MyText + +two: + name: MyString + description: MyText diff --git a/test/fixtures/event_categories.yml b/test/fixtures/event_categories.yml new file mode 100644 index 0000000..af843a2 --- /dev/null +++ b/test/fixtures/event_categories.yml @@ -0,0 +1,11 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + event: + category: + number_required: 1 + +two: + event: + category: + number_required: 1 diff --git a/test/fixtures/event_helpers.yml b/test/fixtures/event_helpers.yml new file mode 100644 index 0000000..17489d1 --- /dev/null +++ b/test/fixtures/event_helpers.yml @@ -0,0 +1,11 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + event: + user: + category: + +two: + event: + user: + category: diff --git a/test/fixtures/event_orgas.yml b/test/fixtures/event_orgas.yml new file mode 100644 index 0000000..17489d1 --- /dev/null +++ b/test/fixtures/event_orgas.yml @@ -0,0 +1,11 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + event: + user: + category: + +two: + event: + user: + category: diff --git a/test/fixtures/events.yml b/test/fixtures/events.yml new file mode 100644 index 0000000..98a85dd --- /dev/null +++ b/test/fixtures/events.yml @@ -0,0 +1,17 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + name: MyString + start_at: 2012-06-21 14:01:09 + end_at: 2012-06-21 14:01:09 + location: MyText + description: MyText + all_day: false + +two: + name: MyString + start_at: 2012-06-21 14:01:09 + end_at: 2012-06-21 14:01:09 + location: MyText + description: MyText + all_day: false diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml new file mode 100644 index 0000000..8c47f43 --- /dev/null +++ b/test/fixtures/users.yml @@ -0,0 +1,15 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + name: MyString + first_name: MyString + login: MyString + password: MyString + email: MyString + +two: + name: MyString + first_name: MyString + login: MyString + password: MyString + email: MyString diff --git a/test/functional/.gitkeep b/test/functional/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/functional/categories_controller_test.rb b/test/functional/categories_controller_test.rb new file mode 100644 index 0000000..f957aa1 --- /dev/null +++ b/test/functional/categories_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class CategoriesControllerTest < ActionController::TestCase + setup do + @category = categories(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:categories) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create category" do + assert_difference('Category.count') do + post :create, category: { description: @category.description, name: @category.name } + end + + assert_redirected_to category_path(assigns(:category)) + end + + test "should show category" do + get :show, id: @category + assert_response :success + end + + test "should get edit" do + get :edit, id: @category + assert_response :success + end + + test "should update category" do + put :update, id: @category, category: { description: @category.description, name: @category.name } + assert_redirected_to category_path(assigns(:category)) + end + + test "should destroy category" do + assert_difference('Category.count', -1) do + delete :destroy, id: @category + end + + assert_redirected_to categories_path + end +end diff --git a/test/functional/categroys_controller_test.rb b/test/functional/categroys_controller_test.rb new file mode 100644 index 0000000..236dfcb --- /dev/null +++ b/test/functional/categroys_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class CategroysControllerTest < ActionController::TestCase + setup do + @categroy = categroys(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:categroys) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create categroy" do + assert_difference('Categroy.count') do + post :create, categroy: { description: @categroy.description, name: @categroy.name } + end + + assert_redirected_to categroy_path(assigns(:categroy)) + end + + test "should show categroy" do + get :show, id: @categroy + assert_response :success + end + + test "should get edit" do + get :edit, id: @categroy + assert_response :success + end + + test "should update categroy" do + put :update, id: @categroy, categroy: { description: @categroy.description, name: @categroy.name } + assert_redirected_to categroy_path(assigns(:categroy)) + end + + test "should destroy categroy" do + assert_difference('Categroy.count', -1) do + delete :destroy, id: @categroy + end + + assert_redirected_to categroys_path + end +end diff --git a/test/functional/event_categories_controller_test.rb b/test/functional/event_categories_controller_test.rb new file mode 100644 index 0000000..a316d8c --- /dev/null +++ b/test/functional/event_categories_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class EventCategoriesControllerTest < ActionController::TestCase + setup do + @event_category = event_categories(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:event_categories) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create event_category" do + assert_difference('EventCategory.count') do + post :create, event_category: { number_required: @event_category.number_required } + end + + assert_redirected_to event_category_path(assigns(:event_category)) + end + + test "should show event_category" do + get :show, id: @event_category + assert_response :success + end + + test "should get edit" do + get :edit, id: @event_category + assert_response :success + end + + test "should update event_category" do + put :update, id: @event_category, event_category: { number_required: @event_category.number_required } + assert_redirected_to event_category_path(assigns(:event_category)) + end + + test "should destroy event_category" do + assert_difference('EventCategory.count', -1) do + delete :destroy, id: @event_category + end + + assert_redirected_to event_categories_path + end +end diff --git a/test/functional/event_helpers_controller_test.rb b/test/functional/event_helpers_controller_test.rb new file mode 100644 index 0000000..ddddb00 --- /dev/null +++ b/test/functional/event_helpers_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class EventHelpersControllerTest < ActionController::TestCase + setup do + @event_helper = event_helpers(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:event_helpers) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create event_helper" do + assert_difference('EventHelper.count') do + post :create, event_helper: { } + end + + assert_redirected_to event_helper_path(assigns(:event_helper)) + end + + test "should show event_helper" do + get :show, id: @event_helper + assert_response :success + end + + test "should get edit" do + get :edit, id: @event_helper + assert_response :success + end + + test "should update event_helper" do + put :update, id: @event_helper, event_helper: { } + assert_redirected_to event_helper_path(assigns(:event_helper)) + end + + test "should destroy event_helper" do + assert_difference('EventHelper.count', -1) do + delete :destroy, id: @event_helper + end + + assert_redirected_to event_helpers_path + end +end diff --git a/test/functional/event_orgas_controller_test.rb b/test/functional/event_orgas_controller_test.rb new file mode 100644 index 0000000..22e52cb --- /dev/null +++ b/test/functional/event_orgas_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class EventOrgasControllerTest < ActionController::TestCase + setup do + @event_orga = event_orgas(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:event_orgas) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create event_orga" do + assert_difference('EventOrga.count') do + post :create, event_orga: { } + end + + assert_redirected_to event_orga_path(assigns(:event_orga)) + end + + test "should show event_orga" do + get :show, id: @event_orga + assert_response :success + end + + test "should get edit" do + get :edit, id: @event_orga + assert_response :success + end + + test "should update event_orga" do + put :update, id: @event_orga, event_orga: { } + assert_redirected_to event_orga_path(assigns(:event_orga)) + end + + test "should destroy event_orga" do + assert_difference('EventOrga.count', -1) do + delete :destroy, id: @event_orga + end + + assert_redirected_to event_orgas_path + end +end diff --git a/test/functional/events_controller_test.rb b/test/functional/events_controller_test.rb new file mode 100644 index 0000000..d0ec03a --- /dev/null +++ b/test/functional/events_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class EventsControllerTest < ActionController::TestCase + setup do + @event = events(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:events) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create event" do + assert_difference('Event.count') do + post :create, event: { all_day: @event.all_day, description: @event.description, end_at: @event.end_at, location: @event.location, name: @event.name, start_at: @event.start_at } + end + + assert_redirected_to event_path(assigns(:event)) + end + + test "should show event" do + get :show, id: @event + assert_response :success + end + + test "should get edit" do + get :edit, id: @event + assert_response :success + end + + test "should update event" do + put :update, id: @event, event: { all_day: @event.all_day, description: @event.description, end_at: @event.end_at, location: @event.location, name: @event.name, start_at: @event.start_at } + assert_redirected_to event_path(assigns(:event)) + end + + test "should destroy event" do + assert_difference('Event.count', -1) do + delete :destroy, id: @event + end + + assert_redirected_to events_path + end +end diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb new file mode 100644 index 0000000..603b966 --- /dev/null +++ b/test/functional/users_controller_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class UsersControllerTest < ActionController::TestCase + setup do + @user = users(:one) + end + + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:users) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create user" do + assert_difference('User.count') do + post :create, user: { email: @user.email, first_name: @user.first_name, login: @user.login, name: @user.name, password: @user.password } + end + + assert_redirected_to user_path(assigns(:user)) + end + + test "should show user" do + get :show, id: @user + assert_response :success + end + + test "should get edit" do + get :edit, id: @user + assert_response :success + end + + test "should update user" do + put :update, id: @user, user: { email: @user.email, first_name: @user.first_name, login: @user.login, name: @user.name, password: @user.password } + assert_redirected_to user_path(assigns(:user)) + end + + test "should destroy user" do + assert_difference('User.count', -1) do + delete :destroy, id: @user + end + + assert_redirected_to users_path + end +end diff --git a/test/integration/.gitkeep b/test/integration/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/performance/browsing_test.rb b/test/performance/browsing_test.rb new file mode 100644 index 0000000..3fea27b --- /dev/null +++ b/test/performance/browsing_test.rb @@ -0,0 +1,12 @@ +require 'test_helper' +require 'rails/performance_test_help' + +class BrowsingTest < ActionDispatch::PerformanceTest + # Refer to the documentation for all available options + # self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory] + # :output => 'tmp/performance', :formats => [:flat] } + + def test_homepage + get '/' + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 0000000..8bf1192 --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,13 @@ +ENV["RAILS_ENV"] = "test" +require File.expand_path('../../config/environment', __FILE__) +require 'rails/test_help' + +class ActiveSupport::TestCase + # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. + # + # Note: You'll currently still have to declare fixtures explicitly in integration tests + # -- they do not yet inherit this setting + fixtures :all + + # Add more helper methods to be used by all tests here... +end diff --git a/test/unit/.gitkeep b/test/unit/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/unit/category_test.rb b/test/unit/category_test.rb new file mode 100644 index 0000000..4733541 --- /dev/null +++ b/test/unit/category_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class CategoryTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/categroy_test.rb b/test/unit/categroy_test.rb new file mode 100644 index 0000000..3b97f27 --- /dev/null +++ b/test/unit/categroy_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class CategroyTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/event_category_test.rb b/test/unit/event_category_test.rb new file mode 100644 index 0000000..9baa64b --- /dev/null +++ b/test/unit/event_category_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class EventCategoryTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/event_helper_test.rb b/test/unit/event_helper_test.rb new file mode 100644 index 0000000..976d766 --- /dev/null +++ b/test/unit/event_helper_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class EventHelperTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/event_orga_test.rb b/test/unit/event_orga_test.rb new file mode 100644 index 0000000..7d7d75d --- /dev/null +++ b/test/unit/event_orga_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class EventOrgaTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/event_test.rb b/test/unit/event_test.rb new file mode 100644 index 0000000..c6f1566 --- /dev/null +++ b/test/unit/event_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class EventTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/helpers/categories_helper_test.rb b/test/unit/helpers/categories_helper_test.rb new file mode 100644 index 0000000..0b03c47 --- /dev/null +++ b/test/unit/helpers/categories_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class CategoriesHelperTest < ActionView::TestCase +end diff --git a/test/unit/helpers/categroys_helper_test.rb b/test/unit/helpers/categroys_helper_test.rb new file mode 100644 index 0000000..02a85e9 --- /dev/null +++ b/test/unit/helpers/categroys_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class CategroysHelperTest < ActionView::TestCase +end diff --git a/test/unit/helpers/event_categories_helper_test.rb b/test/unit/helpers/event_categories_helper_test.rb new file mode 100644 index 0000000..ea35d1a --- /dev/null +++ b/test/unit/helpers/event_categories_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class EventCategoriesHelperTest < ActionView::TestCase +end diff --git a/test/unit/helpers/event_helpers_helper_test.rb b/test/unit/helpers/event_helpers_helper_test.rb new file mode 100644 index 0000000..c2ae0b0 --- /dev/null +++ b/test/unit/helpers/event_helpers_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class EventHelpersHelperTest < ActionView::TestCase +end diff --git a/test/unit/helpers/event_orgas_helper_test.rb b/test/unit/helpers/event_orgas_helper_test.rb new file mode 100644 index 0000000..de73152 --- /dev/null +++ b/test/unit/helpers/event_orgas_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class EventOrgasHelperTest < ActionView::TestCase +end diff --git a/test/unit/helpers/events_helper_test.rb b/test/unit/helpers/events_helper_test.rb new file mode 100644 index 0000000..2e7567e --- /dev/null +++ b/test/unit/helpers/events_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class EventsHelperTest < ActionView::TestCase +end diff --git a/test/unit/helpers/users_helper_test.rb b/test/unit/helpers/users_helper_test.rb new file mode 100644 index 0000000..96af37a --- /dev/null +++ b/test/unit/helpers/users_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class UsersHelperTest < ActionView::TestCase +end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb new file mode 100644 index 0000000..82f61e0 --- /dev/null +++ b/test/unit/user_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class UserTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/vendor/assets/javascripts/.gitkeep b/vendor/assets/javascripts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vendor/assets/stylesheets/.gitkeep b/vendor/assets/stylesheets/.gitkeep new file mode 100644 index 0000000..e69de29